#include "kernel_impl.h"
#include "check.h"
#include "task.h"
#define LOG_DIS_DSP_ENTER | ( | ) |
#define LOG_DIS_DSP_LEAVE | ( | ercd | ) |
#define LOG_ENA_DSP_ENTER | ( | ) |
#define LOG_ENA_DSP_LEAVE | ( | ercd | ) |
#define LOG_GET_TID_ENTER | ( | p_tskid | ) |
#define LOG_GET_TID_LEAVE | ( | ercd, | |||
tskid | ) |
#define LOG_IGET_TID_ENTER | ( | p_tskid | ) |
#define LOG_IGET_TID_LEAVE | ( | ercd, | |||
tskid | ) |
#define LOG_ILOC_CPU_ENTER | ( | ) |
#define LOG_ILOC_CPU_LEAVE | ( | ercd | ) |
#define LOG_IROT_RDQ_ENTER | ( | tskpri | ) |
#define LOG_IROT_RDQ_LEAVE | ( | ercd | ) |
#define LOG_IUNL_CPU_ENTER | ( | ) |
#define LOG_IUNL_CPU_LEAVE | ( | ercd | ) |
#define LOG_LOC_CPU_ENTER | ( | ) |
#define LOG_LOC_CPU_LEAVE | ( | ercd | ) |
#define LOG_ROT_RDQ_ENTER | ( | tskpri | ) |
#define LOG_ROT_RDQ_LEAVE | ( | ercd | ) |
#define LOG_SNS_CTX_ENTER | ( | ) |
#define LOG_SNS_CTX_LEAVE | ( | state | ) |
#define LOG_SNS_DPN_ENTER | ( | ) |
#define LOG_SNS_DPN_LEAVE | ( | state | ) |
#define LOG_SNS_DSP_ENTER | ( | ) |
#define LOG_SNS_DSP_LEAVE | ( | state | ) |
#define LOG_SNS_KER_ENTER | ( | ) |
#define LOG_SNS_KER_LEAVE | ( | state | ) |
#define LOG_SNS_LOC_ENTER | ( | ) |
#define LOG_SNS_LOC_LEAVE | ( | state | ) |
#define LOG_UNL_CPU_ENTER | ( | ) |
#define LOG_UNL_CPU_LEAVE | ( | ercd | ) |
ER dis_dsp | ( | void | ) |
sys_manage.c の 396 行で定義されています。
参照先 CHECK_TSKCTX_UNL, disdsp, dspflg, E_OK, LOG_DIS_DSP_ENTER, LOG_DIS_DSP_LEAVE, t_lock_cpu, と t_unlock_cpu.
参照元 serial_cls_por(), と serial_opn_por().
00397 { 00398 ER ercd; 00399 00400 LOG_DIS_DSP_ENTER(); 00401 CHECK_TSKCTX_UNL(); 00402 00403 t_lock_cpu(); 00404 disdsp = true; 00405 dspflg = false; 00406 ercd = E_OK; 00407 t_unlock_cpu(); 00408 00409 error_exit: 00410 LOG_DIS_DSP_LEAVE(ercd); 00411 return(ercd); 00412 }
ER ena_dsp | ( | void | ) |
sys_manage.c の 422 行で定義されています。
参照先 CHECK_TSKCTX_UNL, disdsp, dispatch, dspflg, E_OK, LOG_ENA_DSP_ENTER, LOG_ENA_DSP_LEAVE, p_runtsk, p_schedtsk, t_get_ipm, t_lock_cpu, t_unlock_cpu, と TIPM_ENAALL.
参照元 serial_cls_por(), と serial_opn_por().
00423 { 00424 ER ercd; 00425 00426 LOG_ENA_DSP_ENTER(); 00427 CHECK_TSKCTX_UNL(); 00428 00429 t_lock_cpu(); 00430 disdsp = false; 00431 if (t_get_ipm() == TIPM_ENAALL) { 00432 dspflg = true; 00433 if (p_runtsk != p_schedtsk) { 00434 dispatch(); 00435 } 00436 } 00437 ercd = E_OK; 00438 t_unlock_cpu(); 00439 00440 error_exit: 00441 LOG_ENA_DSP_LEAVE(ercd); 00442 return(ercd); 00443 }
sys_manage.c の 238 行で定義されています。
参照先 CHECK_TSKCTX_UNL, E_OK, LOG_GET_TID_ENTER, LOG_GET_TID_LEAVE, p_runtsk, t_lock_cpu, t_unlock_cpu, と TSKID.
00239 { 00240 ER ercd; 00241 00242 LOG_GET_TID_ENTER(p_tskid); 00243 CHECK_TSKCTX_UNL(); 00244 00245 t_lock_cpu(); 00246 *p_tskid = TSKID(p_runtsk); 00247 ercd = E_OK; 00248 t_unlock_cpu(); 00249 00250 error_exit: 00251 LOG_GET_TID_LEAVE(ercd, *p_tskid); 00252 return(ercd); 00253 }
sys_manage.c の 263 行で定義されています。
参照先 CHECK_INTCTX_UNL, E_OK, i_lock_cpu, i_unlock_cpu, LOG_IGET_TID_ENTER, LOG_IGET_TID_LEAVE, NULL, p_runtsk, TSK_NONE, と TSKID.
00264 { 00265 ER ercd; 00266 00267 LOG_IGET_TID_ENTER(p_tskid); 00268 CHECK_INTCTX_UNL(); 00269 00270 i_lock_cpu(); 00271 *p_tskid = (p_runtsk == NULL) ? TSK_NONE : TSKID(p_runtsk); 00272 ercd = E_OK; 00273 i_unlock_cpu(); 00274 00275 error_exit: 00276 LOG_IGET_TID_LEAVE(ercd, *p_tskid); 00277 return(ercd); 00278 }
ER iloc_cpu | ( | void | ) |
sys_manage.c の 313 行で定義されています。
参照先 CHECK_INTCTX, E_OK, i_lock_cpu, i_sense_lock, LOG_ILOC_CPU_ENTER, と LOG_ILOC_CPU_LEAVE.
00314 { 00315 ER ercd; 00316 00317 LOG_ILOC_CPU_ENTER(); 00318 CHECK_INTCTX(); 00319 00320 if (!i_sense_lock()) { 00321 i_lock_cpu(); 00322 } 00323 ercd = E_OK; 00324 00325 error_exit: 00326 LOG_ILOC_CPU_LEAVE(ercd); 00327 return(ercd); 00328 }
sys_manage.c の 210 行で定義されています。
参照先 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.
参照元 alarm_handler(), と cyclic_handler().
00211 { 00212 ER ercd; 00213 00214 LOG_IROT_RDQ_ENTER(tskpri); 00215 CHECK_INTCTX_UNL(); 00216 CHECK_TPRI(tskpri); 00217 00218 i_lock_cpu(); 00219 if (rotate_ready_queue(INT_PRIORITY(tskpri))) { 00220 reqflg = true; 00221 } 00222 ercd = E_OK; 00223 i_unlock_cpu(); 00224 00225 error_exit: 00226 LOG_IROT_RDQ_LEAVE(ercd); 00227 return(ercd); 00228 }
ER iunl_cpu | ( | void | ) |
sys_manage.c の 371 行で定義されています。
参照先 CHECK_INTCTX, E_OK, i_sense_lock, i_unlock_cpu, LOG_IUNL_CPU_ENTER, と LOG_IUNL_CPU_LEAVE.
00372 { 00373 ER ercd; 00374 00375 LOG_IUNL_CPU_ENTER(); 00376 CHECK_INTCTX(); 00377 00378 if (i_sense_lock()) { 00379 i_unlock_cpu(); 00380 } 00381 ercd = E_OK; 00382 00383 error_exit: 00384 LOG_IUNL_CPU_LEAVE(ercd); 00385 return(ercd); 00386 }
ER loc_cpu | ( | void | ) |
sys_manage.c の 288 行で定義されています。
参照先 CHECK_TSKCTX, E_OK, LOG_LOC_CPU_ENTER, LOG_LOC_CPU_LEAVE, t_lock_cpu, と t_sense_lock.
参照元 main_task(), serial_cls_por(), serial_opn_por(), serial_rea_chr(), serial_wri_chr(), と task().
00289 { 00290 ER ercd; 00291 00292 LOG_LOC_CPU_ENTER(); 00293 CHECK_TSKCTX(); 00294 00295 if (!t_sense_lock()) { 00296 t_lock_cpu(); 00297 } 00298 ercd = E_OK; 00299 00300 error_exit: 00301 LOG_LOC_CPU_LEAVE(ercd); 00302 return(ercd); 00303 }
sys_manage.c の 180 行で定義されています。
参照先 CHECK_TPRI_SELF, CHECK_TSKCTX_UNL, dispatch, E_OK, INT_PRIORITY, LOG_ROT_RDQ_ENTER, LOG_ROT_RDQ_LEAVE, p_runtsk, rotate_ready_queue, t_lock_cpu, t_unlock_cpu, と TPRI_SELF.
参照元 main_task().
00181 { 00182 uint_t pri; 00183 ER ercd; 00184 00185 LOG_ROT_RDQ_ENTER(tskpri); 00186 CHECK_TSKCTX_UNL(); 00187 CHECK_TPRI_SELF(tskpri); 00188 00189 t_lock_cpu(); 00190 pri = (tskpri == TPRI_SELF) ? p_runtsk->priority : INT_PRIORITY(tskpri); 00191 if (rotate_ready_queue(pri)) { 00192 dispatch(); 00193 } 00194 ercd = E_OK; 00195 t_unlock_cpu(); 00196 00197 error_exit: 00198 LOG_ROT_RDQ_LEAVE(ercd); 00199 return(ercd); 00200 }
bool_t sns_ctx | ( | void | ) |
sys_manage.c の 453 行で定義されています。
参照先 LOG_SNS_CTX_ENTER, LOG_SNS_CTX_LEAVE, と sense_context().
00454 { 00455 bool_t state; 00456 00457 LOG_SNS_CTX_ENTER(); 00458 state = sense_context() ? true : false; 00459 LOG_SNS_CTX_LEAVE(state); 00460 return(state); 00461 }
bool_t sns_dpn | ( | void | ) |
sys_manage.c の 507 行で定義されています。
参照先 dspflg, LOG_SNS_DPN_ENTER, LOG_SNS_DPN_LEAVE, sense_context(), と t_sense_lock.
参照元 logtask_flush(), serial_cls_por(), serial_ctl_por(), serial_opn_por(), serial_rea_dat(), serial_ref_por(), と serial_wri_dat().
00508 { 00509 bool_t state; 00510 00511 LOG_SNS_DPN_ENTER(); 00512 state = (sense_context() || t_sense_lock() || !dspflg) ? true : false; 00513 LOG_SNS_DPN_LEAVE(state); 00514 return(state); 00515 }
bool_t sns_dsp | ( | void | ) |
sys_manage.c の 489 行で定義されています。
参照先 disdsp, LOG_SNS_DSP_ENTER, と LOG_SNS_DSP_LEAVE.
00490 { 00491 bool_t state; 00492 00493 LOG_SNS_DSP_ENTER(); 00494 state = disdsp; 00495 LOG_SNS_DSP_LEAVE(state); 00496 return(state); 00497 }
bool_t sns_ker | ( | void | ) |
sys_manage.c の 525 行で定義されています。
参照先 kerflg, LOG_SNS_KER_ENTER, と LOG_SNS_KER_LEAVE.
00526 { 00527 bool_t state; 00528 00529 LOG_SNS_KER_ENTER(); 00530 state = kerflg ? false : true; 00531 LOG_SNS_KER_LEAVE(state); 00532 return(state); 00533 }
bool_t sns_loc | ( | void | ) |
sys_manage.c の 471 行で定義されています。
参照先 LOG_SNS_LOC_ENTER, LOG_SNS_LOC_LEAVE, と x_sense_lock().
00472 { 00473 bool_t state; 00474 00475 LOG_SNS_LOC_ENTER(); 00476 state = x_sense_lock() ? true : false; 00477 LOG_SNS_LOC_LEAVE(state); 00478 return(state); 00479 }
ER unl_cpu | ( | void | ) |
sys_manage.c の 342 行で定義されています。
参照先 CHECK_TSKCTX, E_OK, LOG_UNL_CPU_ENTER, LOG_UNL_CPU_LEAVE, t_sense_lock, と t_unlock_cpu.
参照元 main_task(), serial_cls_por(), serial_opn_por(), serial_rea_chr(), serial_wri_chr(), と task().
00343 { 00344 ER ercd; 00345 00346 LOG_UNL_CPU_ENTER(); 00347 CHECK_TSKCTX(); 00348 00349 if (t_sense_lock()) { 00350 t_unlock_cpu(); 00351 } 00352 ercd = E_OK; 00353 00354 error_exit: 00355 LOG_UNL_CPU_LEAVE(ercd); 00356 return(ercd); 00357 }
Copyright © 2008 by Kijineko Inc.