16 #define roundew(x) ((x + 3) & ~0x3) 70 (pid =
newpid()) == SYSERR || priority < 1)
101 a = (
uint32 *)(&nargs + 1);
103 for (; nargs > 4; nargs--)
105 *--saddr = (long)procaddr;
106 for (i = 11; i >= 4; i--)
108 for (i = 4; i > 0; i--)
116 *--saddr = (long)0x00000053;
134 static pid32 nextpid = 1;
139 for (i = 0; i <
NPROC; i++)
pid32 prparent
このプロセスを作成したプロセスID(親プロセスID)。
int32 prcount
現在アクティブのプロセス。
#define MINSTK
最小のスタックサイズ(Byte)
#define PR_SUSP
プロセスがサスペンド(休止)させられた状態。
#define roundew(x)
4の倍数でスタックサイズを丸める。
local int newpid()
新しいプロセスIDを取得するnewpid()の宣言
#define INITRET
プロセスが戻るアドレス。
uint32 prstklen
Bytesで表されたスタックの長さ(最大値。Byte)。
pri16 prprio
プロセスのスケジューリング優先度。
#define FALSE
Boolean False(0)
sid32 prsem
プロセスが待機しているセマフォ。
char prname[PNMLEN]
プロセス名。
char * prstkbase
ランタイムスタックの基点(メモリ領域で最上位のアドレス)。
uint32 intmask
保存された割り込みマスク
int16 prdesc[NDESC]
プロセス用のデバイスディスクリプタ
int int32
符号あり32ビット整数(int)
uint16 prstate
プロセス状態(PR_CURR, ..., etc)。
#define STACKMAGIC
プロセススタックの最上位に配置するマーカ(オーバフロー検出に用いる)
#define PR_FREE
プロセステーブルエントリが使用されていない状態。
pid32 getpid(void)
現在実行中のプロセスIDを返す。
#define local
ローカル関数かローカル変数の宣言
struct procent proctab[]
プロセステーブル。
pid32 create(void *procaddr, uint32 ssize, pri16 priority, char *name, uint32 nargs,...)
関数の実行を開始するプロセスを作成する。
unsigned int uint32
符号なし32ビット整数(unsigned int)
bool8 prhasmsg
有効(Valid)メッセージの場合、非0となる。
#define NULLCH
NULL文字(NULL終端)
char * getstk(uint32)
スタックメモリを割り当て、最上位のワードアドレスを返す。
intmask disable(void)
割り込み禁止(intr.Sに定義がある)
char * prstkptr
保存されたスタックポインタ。