XINU
newqueue.c
Go to the documentation of this file.
1 
5 #include <xinu.h>
6 
16 {
17  static qid16 nextqid = NPROC; /* Next list in queuetab to use */
18  qid16 q; /* ID of allocated queue */
19 
20  q = nextqid;
21  if (q >= NQENT)
22  { /* Check for table overflow */
23  return SYSERR;
24  }
25 
26  nextqid += 2; /* Increment index for next call*/
27 
28  /* Initialize head and tail nodes to form an empty queue */
29 
36  return q;
37 }
struct qentry queuetab[]
Definition: queue.c:45
全てのシステムヘッダファイルをインクルードする。
#define SYSERR
処理が失敗した場合
Definition: kernel.h:79
#define MINKEY
キューの中に格納できるキーの最小値
Definition: queue.h:27
#define queuehead(q)
キューの先頭を返す。
Definition: queue.h:53
#define EMPTY
次のキューインデックスもしくは前のキューインデックスがNULL値
Definition: queue.h:23
qid16 qnext
次のプロセスか末尾のプロセスのインデックス。
Definition: queue.h:39
int32 qkey
キュー順序を決定するキー(優先度)。
Definition: queue.h:37
qid16 qprev
前のプロセスか先頭のプロセスのインデックス。
Definition: queue.h:41
#define NPROC
Definition: conf.h:79
#define NQENT
Definition: queue.h:19
int16 qid16
キューID
Definition: kernel.h:24
qid16 newqueue(void)
グローバルキューテーブルにキューを割り当て、テーブルを初期化する。
Definition: newqueue.c:15
#define queuetail(q)
キューの末尾を返す。
Definition: queue.h:61
#define MAXKEY
キューの中に格納できるキーの最大値
Definition: queue.h:25