9 extern void start(
void);
    14 extern void main(
void);
    34 #define CONSOLE_RESET " \033[0m\033[2J\033[;H"    65          memptr = memptr->
mnext)
    69     kprintf(
"%10d bytes of free memory.  Free list:\n", free_mem);
    72         kprintf(
"           [0x%08X to 0x%08X]\n",
    76     kprintf(
"%10d bytes of Xinu code.\n",
    78     kprintf(
"           [0x%08X to 0x%08X]\n",
    80     kprintf(
"%10d bytes of data.\n",
    82     kprintf(
"           [0x%08X to 0x%08X]\n\n",
    96                   "Startup process", 0, 
NULL));
   124         kprintf(
"Cannot obtain an IP address\n");
   131                 (ipaddr >> 24) & 0xff, (ipaddr >> 16) & 0xff,
   132                 (ipaddr >> 8) & 0xff, ipaddr & 0xff);
   134         kprintf(
"Obtained IP address  %s   (0x%08x)\n", str,
   140                   "Main process", 0, 
NULL));
   196     for (i = 0; i < 
NPROC; i++)
   218     for (i = 0; i < 
NSEM; i++)
   238     for (i = 0; i < 
NDEVS; i++)
   252     kprintf(
"looping... press reset\n");
 syscall kprintf(char *fmt,...)
ポーリングI/Oを使用して、フォーマットされた文字列をコンソールに出力する。 
#define NULL
連結リスト用のNULLポインタ 
struct defer Defer
defer構造体のextern宣言 
char * strncpy(char *, const char *, int32)
文字列s1に文字列s2をN文字(Byte)分コピーする。 
static void sysinit()
内部システムの初期化を行うsysinit()のextern宣言 
void meminit(void)
フリーメモリリストを初期化するmeminit()のextern宣言 
local process startup(void)
スタートアップタスクを完了するプロセス 
byte sstate
エントリ状態が利用可能(S_FREE)か、利用中(S_USED)かを表す。 
#define DELAY(n)
マイクロ秒単位で処理を遅らせる。 
セマフォテーブルエントリであり、本構造体の配列(長さNSEM)が静的に確保される。 
#define INITSTK
初期プロセススタックサイズ 
void start(void)
XINUコードの開始であるstart()のextern宣言 
struct memblk * mnext
次のフリーメモリブロックへのポインタ 
struct memblk memlist
フリーメモリブロックのリスト 
int ebss
BSSセグメントの終了アドレス(リンカが追加する) 
int32 sprintf(char *, char *,...)
int data
データセグメントの開始アドレス(リンカが追加する) 
int32 stop(char *s)
処理を停止させる。無限ループによる停止のため、復帰にはリセットが必要である。 
void nulluser()
システムの初期化を処理し、nullプロセスとなる。 
#define NULLPROC
NULLプロセスのID。NULLプロセスは、他に動かすプロセスがない時に動く空プロセス 
uint32 prstklen
Bytesで表されたスタックの長さ(最大値。Byte)。 
struct procent proctab[NPROC]
プロセステーブルエントリ 
qid16 readylist
READY状態のプロセスリストに対するグローバルID. 
pri16 prprio
プロセスのスケジューリング優先度。 
void enable(void)
割り込み許可(intr.Sに定義がある) 
#define PR_CURR
プロセスが現在動作中。 
int etext
テキストセグメントの終了アドレス(リンカが追加する) 
#define TRUE
Boolean True(1) 
char prname[PNMLEN]
プロセス名。 
#define NULLSTK
NULLプロセスのスタックサイズ 
char * prstkbase
ランタイムスタックの基点(メモリ領域で最上位のアドレス)。 
int int32
符号あり32ビット整数(int) 
int32 delay(int n)
マイクロ秒単位で処理を遅らせる。 
uint16 prstate
プロセス状態(PR_CURR, ..., etc)。 
#define PR_FREE
プロセステーブルエントリが使用されていない状態。 
pri16 resume(pid32)
プロセスを休止状態(サスペンド)からREADY状態に遷移させる。 
pid32 create(void *, uint32, pri16, char *, uint32,...)
関数の実行を開始するプロセスを作成する。 
uint32 mlength
memblk構造体のサイズを含むブロックサイズ 
qid16 squeue
セマフォ待機中プロセスのキュー 
status bufinit(void)
バッファプールデータ構造を初期化する。 
#define local
ローカル関数かローカル変数の宣言 
void main(void)
最初に生成されるmainプロセスのextern宣言 
int32 ndefers
未処理の延期プロセスの数 
pid32 currpid
現在実行中のプロセスのID 
qid16 newqueue(void)
グローバルキューテーブルにキューを割り当て、テーブルを初期化する。 
int text
テキストセグメントの開始アドレス(リンカが追加する) 
unsigned int uint32
符号なし32ビット整数(unsigned int) 
#define CONSOLE_RESET
コンソール(コンソールカラー、文字、ポジション)をリセットするためのエスケープシーケンス ...
struct sentry semtab[NSEM]
セマフォテーブルエントリ 
int32 scount
セマフォカウント(負の値(-N)の場合は、キューにN個の待機プロセスがある。それ以外はキューが空である) ...
#define S_FREE
セマフォテーブルエントリが利用可能 
#define NULLCH
NULL文字(NULL終端) 
char * getstk(uint32)
スタックメモリを割り当て、最上位のワードアドレスを返す。 
#define INITPRIO
初期プロセス優先度 
char * prstkptr
保存されたスタックポインタ。 
syscall init(did32)
デバイスとデバイスドライバを初期化する。 
int32 process
プロセスの最上位レベル関数 返り値の型