40 switch (bptr->
rd_op) {
47 msg.rd_status =
htons(0);
51 idfrom = rdptr->
rd_id;
52 while ( (*idto++ = *idfrom++) !=
NULLCH ) {
67 (
ntohs(resp.rd_status) != 0) ) {
68 panic(
"Failed to contact remote disk server");
110 if (qptr->
rd_blknum == bptr->rd_blknum) {
137 msg.rd_blk = bptr->rd_blknum;
138 msg.rd_status =
htons(0);
142 idfrom = rdptr->
rd_id;
143 while ( (*idto++ = *idfrom++) !=
NULLCH ) {
147 msg.rd_data[i] = bptr->rd_block[i];
182 (
ntohs(resp.rd_status) != 0) ) {
183 panic(
"failed to contact remote disk server");
struct rdbuff * rd_rtnext
syscall send(pid32, umsg32)
プロセスにメッセージを送信し、受信側が待機状態の場合はREADY状態にする。
#define TIMEOUT
システムコールがタイムアウトした場合
struct rdbuff * rd_rhnext
#define TRUE
Boolean True(1)
void rdsprocess(struct rdscblk *rdptr)
int int32
符号あり32ビット整数(int)
void * memset(void *, const int, int32)
指定のByteブロックに対して、同じ値をNバイト分書き込む。
void panic(char *)
Panic状態に陥った旨のメッセージを表示し、全てのプロセスを停止させる。
status rdscomm(struct rd_msg_hdr *, int32, struct rd_msg_hdr *, int32, struct rdscblk *)
struct rdbuff * rd_chnext
syscall signal(sid32)
セマフォにシグナルを送り、待機プロセスがある場合は解除する。
unsigned int uint32
符号なし32ビット整数(unsigned int)
#define NULLCH
NULL文字(NULL終端)