mtic_tmo.c

来自「Hyper Operating System。基于ITRON接口的实时操作系统。」· C语言 代码 · 共 79 行

C
79
字号
/* ------------------------------------------------------------------------ *//*  Hyper Operating System V4  μITRON4.0慌屯 Real-Time OS                  *//*    μカ〖ネル タイムアウトキュ〖瓷妄                                     *//*                                                                          *//*                                  Copyright (C) 1998-2002 by Project HOS  *//*                                  http://sourceforge.jp/projects/hos/     *//* ------------------------------------------------------------------------ */#include "mknl.h"/* グロ〖バル恃眶 */T_MKNL_TCB *mknl_timout_head;		/* タイムアウトキュ〖の黎片 *//* タイムアウトにタイムティック丁惦 */void mknl_tic_tmout(		RELTIM tictim)		/* 纳裁するタイムティック */{	register T_MKNL_TCB *mtcb;	/* ロ〖カルにコピ〖 */	mtcb = mknl_timout_head;	/* タイムアウトキュ〖が鄂ならリタ〖ン */	if ( mtcb == NULL )	{		return;	}	/* タイムアウトキュ〖の借妄 */	for ( ; ; )	{		/* タイムアウトに茫しないなら */		if ( tictim < mtcb->diftim )		{			mtcb->diftim -= tictim;		/* タイムアウト箕粗を负换 */			break;		}				tictim -= mtcb->diftim;			/* タイムティックを负换 */				mknl_wup_tsk(mtcb, E_TMOUT);	/* タイムアウト弹静 */		mknl_exe_dsp();					/* 觅变ディスパッチ徒腆を乖う */				/* キュ〖から嘲す */		if ( mtcb->tm_next == mtcb )	/* 呵稿の1つなら */		{			/* キュ〖を鄂にする */			mtcb->tm_prev = NULL;			mtcb          = NULL;			break;		}		else		{			/* キュ〖から艰り嘲す */			mtcb->tm_next->tm_prev = mtcb->tm_prev;			mtcb->tm_prev->tm_next = mtcb->tm_next;			mtcb->tm_prev = NULL;			mtcb = mtcb->tm_next;		}		/* ここで办刨、驴脚充り哈みの怠柴を涂える */		mknl_unl_sys();		/* システムのロック豺近 */		mknl_loc_sys();		/* システムのロック */	}		/* メモリに今き提す */	mknl_timout_head = mtcb;}/* ------------------------------------------------------------------------ *//*  Copyright (C) 1998-2002 by Project HOS                                  *//* ------------------------------------------------------------------------ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?