|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
システム状態管理機能
関数
ディスパッチの禁止
sys_manage.c の 269 行で定義されています。 参照先 CHECK_TSKCTX_UNL・E_OK・enadsp・FALSE・LOG_DIS_DSP_ENTER・LOG_DIS_DSP_LEAVE・t_lock_cpu()・t_unlock_cpu(). 00270 { 00271 ER ercd; 00272 00273 LOG_DIS_DSP_ENTER(); 00274 CHECK_TSKCTX_UNL(); 00275 00276 t_lock_cpu(); 00277 enadsp = FALSE; 00278 ercd = E_OK; 00279 t_unlock_cpu(); 00280 00281 exit: 00282 LOG_DIS_DSP_LEAVE(ercd); 00283 return(ercd); 00284 }
関数の呼び出しグラフ: ![]()
ディスパッチの許可
sys_manage.c の 294 行で定義されています。 参照先 CHECK_TSKCTX_UNL・dispatch・E_OK・enadsp・LOG_ENA_DSP_ENTER・LOG_ENA_DSP_LEAVE・runtsk・schedtsk・t_lock_cpu()・t_unlock_cpu()・TRUE. 00295 { 00296 ER ercd; 00297 00298 LOG_ENA_DSP_ENTER(); 00299 CHECK_TSKCTX_UNL(); 00300 00301 t_lock_cpu(); 00302 enadsp = TRUE; 00303 if (runtsk != schedtsk) { 00304 dispatch(); 00305 } 00306 ercd = E_OK; 00307 t_unlock_cpu(); 00308 00309 exit: 00310 LOG_ENA_DSP_LEAVE(ercd); 00311 return(ercd); 00312 }
関数の呼び出しグラフ: ![]() 実行状態のタスクIDの参照
sys_manage.c の 111 行で定義されています。 参照先 CHECK_TSKCTX_UNL・E_OK・LOG_GET_TID_ENTER・LOG_GET_TID_LEAVE・runtsk・t_lock_cpu()・t_unlock_cpu()・TSKID. 00112 { 00113 ER ercd; 00114 00115 LOG_GET_TID_ENTER(p_tskid); 00116 CHECK_TSKCTX_UNL(); 00117 00118 t_lock_cpu(); 00119 *p_tskid = TSKID(runtsk); 00120 ercd = E_OK; 00121 t_unlock_cpu(); 00122 00123 exit: 00124 LOG_GET_TID_LEAVE(ercd, *p_tskid); 00125 return(ercd); 00126 }
関数の呼び出しグラフ: ![]() 実行状態のタスクIDの参照 (非タスクコンテキスト用)
sys_manage.c の 136 行で定義されています。 参照先 CHECK_INTCTX_UNL・E_OK・i_lock_cpu()・i_unlock_cpu()・LOG_IGET_TID_ENTER・LOG_IGET_TID_LEAVE・NULL・runtsk・TSK_NONE・TSKID. 00137 { 00138 ER ercd; 00139 00140 LOG_IGET_TID_ENTER(p_tskid); 00141 CHECK_INTCTX_UNL(); 00142 00143 i_lock_cpu(); 00144 *p_tskid = (runtsk == NULL) ? TSK_NONE : TSKID(runtsk); 00145 ercd = E_OK; 00146 i_unlock_cpu(); 00147 00148 exit: 00149 LOG_IGET_TID_LEAVE(ercd, *p_tskid); 00150 return(ercd); 00151 }
関数の呼び出しグラフ: ![]()
CPUロック状態への移行 (非タスクコンテキスト用)
sys_manage.c の 186 行で定義されています。 参照先 CHECK_INTCTX・E_OK・i_lock_cpu()・i_sense_lock・LOG_ILOC_CPU_ENTER・LOG_ILOC_CPU_LEAVE. 00187 { 00188 ER ercd; 00189 00190 LOG_ILOC_CPU_ENTER(); 00191 CHECK_INTCTX(); 00192 00193 if (!(i_sense_lock())) { 00194 i_lock_cpu(); 00195 } 00196 ercd = E_OK; 00197 00198 exit: 00199 LOG_ILOC_CPU_LEAVE(ercd); 00200 return(ercd); 00201 }
関数の呼び出しグラフ: ![]() タスクの優先順位の回転 (非タスクコンテキスト用)
sys_manage.c の 83 行で定義されています。 参照先 CHECK_INTCTX_UNL・CHECK_TPRI・E_OK・i_lock_cpu()・i_unlock_cpu()・INT_PRIORITY・LOG_IROT_RDQ_ENTER・LOG_IROT_RDQ_LEAVE・reqflg・rotate_ready_queue()・TRUE. 00084 { 00085 ER ercd; 00086 00087 LOG_IROT_RDQ_ENTER(tskpri); 00088 CHECK_INTCTX_UNL(); 00089 CHECK_TPRI(tskpri); 00090 00091 i_lock_cpu(); 00092 if (rotate_ready_queue(INT_PRIORITY(tskpri))) { 00093 reqflg = TRUE; 00094 } 00095 ercd = E_OK; 00096 i_unlock_cpu(); 00097 00098 exit: 00099 LOG_IROT_RDQ_LEAVE(ercd); 00100 return(ercd); 00101 }
関数の呼び出しグラフ: ![]()
CPUロック状態の解除 (非タスクコンテキスト用)
sys_manage.c の 244 行で定義されています。 参照先 CHECK_INTCTX・E_OK・i_sense_lock・i_unlock_cpu()・LOG_IUNL_CPU_ENTER・LOG_IUNL_CPU_LEAVE. 00245 { 00246 ER ercd; 00247 00248 LOG_IUNL_CPU_ENTER(); 00249 CHECK_INTCTX(); 00250 00251 if (i_sense_lock()) { 00252 i_unlock_cpu(); 00253 } 00254 ercd = E_OK; 00255 00256 exit: 00257 LOG_IUNL_CPU_LEAVE(ercd); 00258 return(ercd); 00259 }
関数の呼び出しグラフ: ![]()
CPUロック状態への移行
sys_manage.c の 161 行で定義されています。 参照先 CHECK_TSKCTX・E_OK・LOG_LOC_CPU_ENTER・LOG_LOC_CPU_LEAVE・t_lock_cpu()・t_sense_lock. 参照元 serial_cls_por()・serial_opn_por()・serial_rea_chr()・serial_wri_chr(). 00162 { 00163 ER ercd; 00164 00165 LOG_LOC_CPU_ENTER(); 00166 CHECK_TSKCTX(); 00167 00168 if (!(t_sense_lock())) { 00169 t_lock_cpu(); 00170 } 00171 ercd = E_OK; 00172 00173 exit: 00174 LOG_LOC_CPU_LEAVE(ercd); 00175 return(ercd); 00176 }
関数の呼び出しグラフ: ![]() タスクの優先順位の回転
sys_manage.c の 53 行で定義されています。 参照先 CHECK_TPRI_SELF・CHECK_TSKCTX_UNL・dispatch・E_OK・INT_PRIORITY・LOG_ROT_RDQ_ENTER・LOG_ROT_RDQ_LEAVE・task_control_block::priority・rotate_ready_queue()・runtsk・t_lock_cpu()・t_unlock_cpu()・TPRI_SELF. 00054 { 00055 UINT pri; 00056 ER ercd; 00057 00058 LOG_ROT_RDQ_ENTER(tskpri); 00059 CHECK_TSKCTX_UNL(); 00060 CHECK_TPRI_SELF(tskpri); 00061 00062 t_lock_cpu(); 00063 pri = (tskpri == TPRI_SELF) ? runtsk->priority : INT_PRIORITY(tskpri); 00064 if (rotate_ready_queue(pri)) { 00065 dispatch(); 00066 } 00067 ercd = E_OK; 00068 t_unlock_cpu(); 00069 00070 exit: 00071 LOG_ROT_RDQ_LEAVE(ercd); 00072 return(ercd); 00073 }
関数の呼び出しグラフ: ![]()
コンテキストの参照
sys_manage.c の 322 行で定義されています。 参照先 FALSE・LOG_SNS_CTX_ENTER・LOG_SNS_CTX_LEAVE・sense_context()・TRUE. 参照元 serial_cls_por()・serial_ctl_por()・serial_opn_por()・serial_ref_por(). 00323 { 00324 BOOL state; 00325 00326 LOG_SNS_CTX_ENTER(); 00327 state = sense_context() ? TRUE : FALSE; 00328 LOG_SNS_CTX_LEAVE(state); 00329 return(state); 00330 }
関数の呼び出しグラフ: ![]()
ディスパッチ保留状態状態の参照
sys_manage.c の 376 行で定義されています。 参照先 enadsp・FALSE・LOG_SNS_DPN_ENTER・LOG_SNS_DPN_LEAVE・sense_context()・sense_lock()・TRUE. 参照元 serial_rea_dat()・serial_wri_dat(). 00377 { 00378 BOOL state; 00379 00380 LOG_SNS_DPN_ENTER(); 00381 state = (sense_context() || sense_lock() || !(enadsp)) ? TRUE : FALSE; 00382 LOG_SNS_DPN_LEAVE(state); 00383 return(state); 00384 }
関数の呼び出しグラフ: ![]()
ディスパッチ禁止状態の参照
sys_manage.c の 358 行で定義されています。 参照先 enadsp・FALSE・LOG_SNS_DSP_ENTER・LOG_SNS_DSP_LEAVE・TRUE. 00359 { 00360 BOOL state; 00361 00362 LOG_SNS_DSP_ENTER(); 00363 state = !(enadsp) ? TRUE : FALSE; 00364 LOG_SNS_DSP_LEAVE(state); 00365 return(state); 00366 }
CPUロック状態の参照
sys_manage.c の 340 行で定義されています。 参照先 FALSE・LOG_SNS_LOC_ENTER・LOG_SNS_LOC_LEAVE・sense_lock()・TRUE. 00341 { 00342 BOOL state; 00343 00344 LOG_SNS_LOC_ENTER(); 00345 state = sense_lock() ? TRUE : FALSE; 00346 LOG_SNS_LOC_LEAVE(state); 00347 return(state); 00348 }
関数の呼び出しグラフ: ![]()
CPUロック状態の解除
sys_manage.c の 215 行で定義されています。 参照先 CHECK_TSKCTX・E_OK・LOG_UNL_CPU_ENTER・LOG_UNL_CPU_LEAVE・t_sense_lock・t_unlock_cpu(). 参照元 serial_cls_por()・serial_opn_por()・serial_rea_chr()・serial_wri_chr(). 00216 { 00217 ER ercd; 00218 00219 LOG_UNL_CPU_ENTER(); 00220 CHECK_TSKCTX(); 00221 00222 if (t_sense_lock()) { 00223 t_unlock_cpu(); 00224 } 00225 ercd = E_OK; 00226 00227 exit: 00228 LOG_UNL_CPU_LEAVE(ercd); 00229 return(ercd); 00230 }
関数の呼び出しグラフ: ![]()
カーネル動作状態の参照
カーネルの初期化完了前や終了処理開始後というのは,以下のような状況を想定している.
sys_manage.c の 394 行で定義されています。 参照先 FALSE・iniflg・LOG_VSNS_INI_ENTER・LOG_VSNS_INI_LEAVE・TRUE. 00395 { 00396 BOOL state; 00397 00398 LOG_VSNS_INI_ENTER(); 00399 state = !(iniflg) ? TRUE : FALSE; 00400 LOG_VSNS_INI_LEAVE(state); 00401 return(state); 00402 }
Copyright © 2006 by TAKAGI Nobuhisa. Copyright © 2006 by Kijineko Inc.. このページは Mon Dec 18 17:23:45 2006 に Doxygen によって生成されました。 データ入力からプログラム開発まで!様々なスキルを持ったメンバーが登録しています【@SOHO】 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||