XINU
queue.h
Go to the documentation of this file.
1 
11 #ifndef NQENT
12 
19 #define NQENT (NPROC + 4 + NSEM + NSEM)
20 #endif
21 
23 #define EMPTY (-1)
24 #define MAXKEY 0x7FFFFFFF
26 #define MINKEY 0x80000000
28 
34 struct qentry
35 {
42 };
43 
45 extern struct qentry queuetab[];
46 
53 #define queuehead(q) (q)
54 
61 #define queuetail(q) ((q) + 1)
62 
70 #define firstid(q) (queuetab[queuehead(q)].qnext)
71 
79 #define lastid(q) (queuetab[queuetail(q)].qprev)
80 
89 #define isempty(q) (firstid(q) >= NPROC)
90 
99 #define nonempty(q) (firstid(q) < NPROC)
100 
107 #define firstkey(q) (queuetab[firstid(q)].qkey)
108 
115 #define lastkey(q) (queuetab[lastid(q)].qkey)
116 
132 #define isbadqid(x) (((int32)(x) < NPROC) || (int32)(x) >= NQENT - 1)
struct qentry queuetab[]
Definition: queue.c:45
プロセスエントリであり、本構造体の配列(長さNQENT)がプロセスキューテーブルとなる。 ...
Definition: queue.h:34
qid16 qnext
次のプロセスか末尾のプロセスのインデックス。
Definition: queue.h:39
int32 qkey
キュー順序を決定するキー(優先度)。
Definition: queue.h:37
qid16 qprev
前のプロセスか先頭のプロセスのインデックス。
Definition: queue.h:41
int int32
符号あり32ビット整数(int)
Definition: kernel.h:11
int16 qid16
キューID
Definition: kernel.h:24