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