⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mtic_tmo.c

📁 itron
💻 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"



/* グロ〖バル恃眶 */
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -