|
|
1.1 root 1: /* receive.c - receive */
2:
3: #include <conf.h>
4: #include <kernel.h>
5: #include <proc.h>
6:
7: /*------------------------------------------------------------------------
8: * receive - wait for a message and return it
9: *------------------------------------------------------------------------
10: */
11: SYSCALL receive()
12: {
13: struct pentry *pptr;
14: int msg;
15: PStype ps;
16:
17: disable(ps);
18: pptr = &proctab[currpid];
19: if ( !pptr->phasmsg ) { /* if no message, wait for one */
20: pptr->pstate = PRRECV;
21: resched();
22: }
23: msg = pptr->pmsg; /* retrieve message */
24: pptr->phasmsg = FALSE;
25: restore(ps);
26: return(msg);
27: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.