Definition at line 12 of file rdsprocess.c.
References htons, memset(), ntohs, NULLCH, OK, panic(), rdscblk::rd_availsem, rdbuff::rd_blknum, RD_BLKSIZ, rdbuff::rd_block, rdscblk::rd_chnext, rdscblk::rd_free, rdscblk::rd_id, RD_IDLEN, RD_MSG_RREQ, RD_MSG_WREQ, rdbuff::rd_next, rdbuff::rd_op, RD_OP_READ, RD_OP_SYNC, RD_OP_WRITE, rdbuff::rd_pid, rdbuff::rd_prev, rdbuff::rd_refcnt, rdscblk::rd_reqsem, rdscblk::rd_rhnext, rdscblk::rd_rtnext, rdscomm(), send(), signal(), SYSERR, TIMEOUT, TRUE, and wait().
Referenced by rdsinit().
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");
138 msg.rd_status =
htons(0);
142 idfrom = rdptr->
rd_id;
143 while ( (*idto++ = *idfrom++) !=
NULLCH ) {
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)
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終端)