📄 tslp_tsk.c
字号:
/* ------------------------------------------------------------------------ *//* Hyper Operating System V4 μITRON4.0慌屯 Real-Time OS *//* ITRONカ〖ネル タスク烧掳票袋怠墙 *//* *//* Copyright (C) 1998-2002 by Project HOS *//* http://sourceforge.jp/projects/hos/ *//* ------------------------------------------------------------------------ */#include "knl_tsk.h"/* タスクの弹静略ち(タイムアウトあり) */ER tslp_tsk( TMO tmout){ T_KERNEL_TCB_RAM *tcb_ram; ER ercd; /* パラメ〖タ〖チェック */#ifdef HOS_ERCHK_E_PAR if ( tmout != TMO_FEVR && tmout < 0 ) { return E_PAR; }#endif mknl_loc_sys(); /* システムのロック */ /* コンテキストチェック */#ifdef HOS_ERCHK_E_CTX if ( mknl_sns_wai() ) { mknl_unl_sys(); /* システムのロック豺近 */ return E_CTX; /* コンテキスト稍赖 */ }#endif /* タスクコントロ〖ルブロック艰评 */ tcb_ram = kernel_get_run_tsk(); /* 弹静妥滇キュ〖イングのチェック */ if ( tcb_ram->wupcnt > 0 ) { tcb_ram->wupcnt--; mknl_unl_sys(); /* システムのロック豺近 */ return E_OK; } /* ポ〖リング回年ならタイムアウト */ if ( tmout == TMO_POL ) { mknl_unl_sys(); /* システムのロック豺近 */ return E_TMOUT; } /* 略ち觉轮に肋年 */ mknl_wai_tsk(&tcb_ram->mtcb, TTW_SLP); /* タイムアウト略ち乖误に纳裁 */ if ( tmout != TMO_FEVR ) { mknl_add_tmout(&tcb_ram->mtcb, (RELTIM)tmout); } ercd = (ER)mknl_exe_dsp(); /* タスクディスパッチの悸乖 */ mknl_exe_tex(); /* 毋嘲借妄の悸乖 */ mknl_unl_sys(); /* システムのロック豺近 */ return ercd;}/* ------------------------------------------------------------------------ *//* Copyright (C) 1998-2002 by Project HOS *//* ------------------------------------------------------------------------ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -