#include <queue.h>
データ構造 | |
struct | eventflag_initialization_block |
struct | eventflag_control_block |
struct | eventflag_waiting_information |
マクロ定義 | |
#define | FLGID(p_flgcb) ((ID)(((p_flgcb) - flgcb_table) + TMIN_FLGID)) |
型定義 | |
typedef struct eventflag_initialization_block | FLGINIB |
typedef struct eventflag_control_block | FLGCB |
typedef struct eventflag_waiting_information | WINFO_FLG |
関数 | |
void | initialize_eventflag (void) |
bool_t | check_flg_cond (FLGCB *p_flgcb, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn) |
変数 | |
const ID | tmax_flgid |
const FLGINIB | flginib_table [] |
FLGCB | flgcb_table [] |
#define FLGID | ( | p_flgcb | ) | ((ID)(((p_flgcb) - flgcb_table) + TMIN_FLGID)) |
typedef struct eventflag_control_block FLGCB |
typedef struct eventflag_initialization_block FLGINIB |
typedef struct eventflag_waiting_information WINFO_FLG |
eventflag.c の 157 行で定義されています。
参照先 eventflag_initialization_block::flgatr, eventflag_control_block::flgptn, eventflag_control_block::p_flginib, TA_CLR, と TWF_ORW.
参照元 iset_flg(), pol_flg(), set_flg(), twai_flg(), と wai_flg().
00158 { 00159 if ((wfmode & TWF_ORW) != 0U ? (p_flgcb->flgptn & waiptn) != 0U 00160 : (p_flgcb->flgptn & waiptn) == waiptn) { 00161 *p_flgptn = p_flgcb->flgptn; 00162 if ((p_flgcb->p_flginib->flgatr & TA_CLR) != 0U) { 00163 p_flgcb->flgptn = 0U; 00164 } 00165 return(true); 00166 } 00167 return(false); 00168 }
void initialize_eventflag | ( | void | ) |
eventflag.c の 137 行で定義されています。
参照先 flgcb_table, flginib_table, eventflag_control_block::flgptn, eventflag_initialization_block::iflgptn, eventflag_control_block::p_flginib, queue_initialize(), tnum_flg, と eventflag_control_block::wait_queue.
00138 { 00139 uint_t i; 00140 FLGCB *p_flgcb; 00141 00142 for (p_flgcb = flgcb_table, i = 0; i < tnum_flg; p_flgcb++, i++) { 00143 queue_initialize(&(p_flgcb->wait_queue)); 00144 p_flgcb->p_flginib = &(flginib_table[i]); 00145 p_flgcb->flgptn = p_flgcb->p_flginib->iflgptn; 00146 } 00147 }
const FLGINIB flginib_table[] |
const ID tmax_flgid |
Copyright © 2008 by Kijineko Inc.