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

📄 madp_que.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"



/* タスク庭黎刨界で纳裁 */
void mknl_adp_que(
		T_MKNL_QUE *que,	/* 纳裁するキュ〖 */
		T_MKNL_TCB *mtcb)	/* 纳裁するタスク */
{
	T_MKNL_TCB *mtcb_head;
	T_MKNL_TCB *mtcb_tail;
	
	mtcb->que = que;
	if ( que->head == NULL )
	{
		/* キュ〖にタスクが痰ければ黎片に肋年 */
		que->head  = mtcb;
		mtcb->next = mtcb;
		mtcb->prev = mtcb;
	}
	else
	{
		mtcb_head = que->head;
		mtcb_tail = mtcb_head->prev;
		do {
			/* キュ〖を琐萨から浮瑚 */
			if ( mtcb->tskpri >= mtcb_tail->tskpri )
			{
				/* 极尸より庭黎刨が光いタスクがあればその稿ろに赁掐 */
				mtcb->next      = mtcb_tail;
				mtcb->prev      = mtcb_tail->prev;
				mtcb_tail->prev = mtcb;

				return;
			}
		} while ( mtcb_tail != mtcb_head );

		/* 极尸より庭黎刨が光いタスクが痰ければ黎片に赁掐 */
		mtcb->next      = mtcb_head;
		mtcb->prev      = mtcb_head->prev;
		mtcb_tail->prev = mtcb;
		que->head       = mtcb;
	}
}


/* ------------------------------------------------------------------------ */
/*  Copyright (C) 1998-2002 by Project HOS                                  */
/* ------------------------------------------------------------------------ */

⌨️ 快捷键说明

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