prc_insn.h

ソースコードを見る。

マクロ定義

#define OMIT_BITMAP_SEARCH
#define PRIMAP_BIT(pri)   (0x8000U >> (pri))

関数

Inline uint16_t current_sr (void)
Inline void set_sr (uint16_t sr)
Inline void disint (void)
Inline void enaint (void)
Inline void * current_vbr (void)
Inline void set_vbr (void *vbr)
Inline uint_t bitmap_search (uint16_t bitmap)


マクロ定義

#define OMIT_BITMAP_SEARCH

prc_insn.h122 行で定義されています。

#define PRIMAP_BIT ( pri   )     (0x8000U >> (pri))

prc_insn.h123 行で定義されています。

参照元 primap_clear(), と primap_set().


関数

Inline uint_t bitmap_search ( uint16_t  bitmap  ) 

prc_insn.h126 行で定義されています。

参照先 Asm.

参照元 primap_search().

00127 {
00128     uint32_t    offset;
00129 
00130     Asm("bfffo %1{16,16}, %0" : "=d"(offset) : "d"((uint32_t) bitmap));
00131     return((uint_t)(offset - 16));
00132 }

Inline uint16_t current_sr ( void   ) 

prc_insn.h54 行で定義されています。

参照先 Asm.

参照元 current_iipm(), sense_context(), と set_iipm().

00055 {
00056     uint16_t    sr;
00057 
00058     Asm("move.w %%sr, %0" : "=g"(sr));
00059     return(sr);
00060 }

Inline void* current_vbr ( void   ) 

prc_insn.h99 行で定義されています。

参照先 Asm.

参照元 x_define_exc(), と x_define_inh().

00100 {
00101     void    *vbr;
00102 
00103     Asm("movec.l %%vbr, %0" : "=r"(vbr));
00104     return(vbr);
00105 }

Inline void disint ( void   ) 

prc_insn.h78 行で定義されています。

参照先 Asm.

参照元 x_lock_cpu().

00079 {
00080     Asm("or.w #0x0700, %sr");
00081 }

Inline void enaint ( void   ) 

prc_insn.h90 行で定義されています。

参照先 Asm.

00091 {
00092     Asm("and.w #~0x0700, %sr");
00093 }

Inline void set_sr ( uint16_t  sr  ) 

prc_insn.h66 行で定義されています。

参照先 Asm.

参照元 set_iipm().

00067 {
00068     Asm("move.w %0, %%sr" : : "g"(sr) : "cc");
00069 }

Inline void set_vbr ( void *  vbr  ) 

prc_insn.h111 行で定義されています。

参照先 Asm.

参照元 prc_initialize(), と prc_terminate().

00112 {
00113     Asm("movec.l %0, %%vbr" : : "r"(vbr));
00114 }


Copyright © 2008 by Kijineko Inc.

ホームページ制作