XINU
|
キュー操作API(キューの追加、キューの削除)を提供する。 More...
#include <xinu.h>
Go to the source code of this file.
Functions | |
pid32 | dequeue (qid16 q) |
プロセスキューテーブルからキューを削除し、リスト先頭のプロセスIDを返す。 More... | |
pid32 | enqueue (pid32 pid, qid16 q) |
プロセスをプロセスキューテーブルの末尾に挿入する。 More... | |
Variables | |
struct qentry | queuetab [NQENT] |
プロセスキューテーブルからキューを削除し、リスト先頭のプロセスIDを返す。
[in] | q | 使用するキューID |
Definition at line 78 of file queue.c.
References EMPTY, getfirst(), isbadqid, isempty, qentry::qnext, qentry::qprev, queuetab, and SYSERR.
Referenced by resched(), signal(), signaln(), and wakeup().
プロセスをプロセスキューテーブルの末尾に挿入する。
[in] | pid | 挿入するプロセスID |
[in] | q | 使用するキューID |
Definition at line 53 of file queue.c.
References isbadpid, isbadqid, qentry::qnext, qentry::qprev, queuetab, queuetail, and SYSERR.
Referenced by wait().
プロセスキューテーブル(全てのプロセスがアクセス可能な変数)。
NPROC-1より小さいインデックスは、プロセスIDに対応する。
queuetab[NPROC]〜queuetab[NQENT]の範囲は、キューIDと呼ばれ、
・リスト先頭
・リスト末尾
のポインタを保持するために使用される。
あるリストの先頭/末尾ノードは、queuetab配列のインデックスNPROC以降に配置し、
必ず連続した配置となる(例:先頭ノード→末尾ノード→先頭ノード→末尾ノード…)
XINU内では、リストは先頭ノードのインデックスで識別および操作する仕様である。
Definition at line 45 of file queue.c.
Referenced by clkhandler(), dequeue(), enqueue(), getfirst(), getitem(), getlast(), insert(), insertd(), newqueue(), and unsleep().