57 panic(
"Cannot create ip output queue semaphore");
93 panic(
"Cannot read from Ethernet\n");
102 switch (pkt->net_ethtype) {
#define NULL
連結リスト用のNULLポインタ
void eth_hton(struct netpacket *pktptr)
void arp_in(struct arppacket *)
void ip_in(struct netpacket *)
sid32 semcreate(int32)
未使用セマフォを割り当て、そのセマフォへのインデックス(セマフォID)を返す。
sid32 iqsem
パケット(pkts)をカウントするセマフォ
syscall read(did32, char *, uint32)
bpid32 mkbufpool(int32, int32)
バッファプール用のメモリを割り当て、バッファ同士をリンクする。
syscall control(did32, int32, int32, int32)
int32 iqhead
次に送信するパケットのインデックス
void eth_ntoh(struct netpacket *pktptr)
uint32 getticks(void)
CPUリセット以降のclock tick数を取得する。
struct iqentry ipoqueue
ネットワーク送信キュー
IP&Ethernet用のARPパケットフォーマット
int int32
符号あり32ビット整数(int)
unsigned short uint16
符号なし16ビット整数(unsigned short)
void * memset(void *, const int, int32)
指定のByteブロックに対して、同じ値をNバイト分書き込む。
pri16 resume(pid32)
プロセスを休止状態(サスペンド)からREADY状態に遷移させる。
char * getbuf(bpid32)
事前に確保されたバッファプールからバッファを取得する。
pid32 create(void *, uint32, pri16, char *, uint32,...)
関数の実行を開始するプロセスを作成する。
void panic(char *)
Panic状態に陥った旨のメッセージを表示し、全てのプロセスを停止させる。
syscall freebuf(char *)
バッファプールから取得したバッファを解放する。
int32 iqtail
次の空きスロットのインデックス。
unsigned int uint32
符号なし32ビット整数(unsigned int)
#define NULLCH
NULL文字(NULL終端)
int32 process
プロセスの最上位レベル関数 返り値の型