📄 madd_tmo.c
字号:
/* ------------------------------------------------------------------------ *//* Hyper Operating System V4 μITRON4.0慌屯 Real-Time OS *//* μカ〖ネル タイムアウトキュ〖瓷妄 *//* *//* Copyright (C) 1998-2002 by Project HOS *//* http://sourceforge.jp/projects/hos/ *//* ------------------------------------------------------------------------ */#include "mknl.h"/* タイムアウト略ち乖误にタスクを纳裁 */ER mknl_add_tmout( T_MKNL_TCB *mtcb, /* 略ち乖误に裁えるタスク */ RELTIM tmout) /* タイムアウトまでの箕粗 */{ T_MKNL_TCB* mtcb_tmp; /* 呵介の1つなら */ if ( mknl_timout_head == NULL ) { /* 呵介の1つをキュ〖に判峡 */ mtcb->tm_next = mtcb; mtcb->tm_prev = mtcb; mknl_timout_head = mtcb; /* タイムアウト箕癸を肋年 */ mtcb->diftim = tmout; return E_OK; } /* 赁掐眷疥を浮瑚 */ mtcb_tmp = mknl_timout_head; do { /* 箕粗孺秤 */ if ( tmout < mtcb_tmp->diftim ) { /* 箕粗の汗尸を肋年 */ mtcb_tmp->diftim -= tmout; mtcb->diftim = tmout; /* リストに赁掐 */ mtcb->tm_next = mtcb_tmp; mtcb->tm_prev = mtcb_tmp->tm_prev; mtcb->tm_next->tm_prev = mtcb; mtcb->tm_prev->tm_next = mtcb; /* 黎片なら */ if ( mtcb_tmp == mknl_timout_head ) { mknl_timout_head = mtcb; /* 黎片ポインタ构糠 */ } return E_OK; } tmout -= mtcb_tmp->diftim; /* 汗尸を负换 */ mtcb_tmp = mtcb_tmp->tm_next; /* 肌のTCBへ渴む */ } while ( mtcb_tmp != mknl_timout_head ); /* リストを办件するまでル〖プ */ /* 琐萨に纳裁 */ mtcb->tm_next = mtcb_tmp; mtcb->tm_prev = mtcb_tmp->tm_prev; mtcb->tm_next->tm_prev = mtcb; mtcb->tm_prev->tm_next = mtcb; /* 荒った汗尸を肋年 */ mtcb->diftim = tmout; return E_OK;}/* ------------------------------------------------------------------------ *//* Copyright (C) 1998-2002 by Project HOS *//* ------------------------------------------------------------------------ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -