Commit | Line | Data |
79072805 |
1 | int |
2 | do_msgsnd(arglast) |
3 | int *arglast; |
4 | { |
5 | #ifdef HAS_MSG |
6 | register STR **st = stack->ary_array; |
7 | register int sp = arglast[0]; |
8 | STR *mstr; |
9 | char *mbuf; |
10 | int id, msize, flags; |
11 | |
12 | id = (int)str_gnum(st[++sp]); |
13 | mstr = st[++sp]; |
14 | flags = (int)str_gnum(st[++sp]); |
15 | mbuf = str_get(mstr); |
16 | if ((msize = mstr->str_cur - sizeof(long)) < 0) { |
17 | errno = EINVAL; |
18 | return -1; |
19 | } |
20 | errno = 0; |
21 | return msgsnd(id, (struct msgbuf *)mbuf, msize, flags); |
22 | #else |
23 | fatal("msgsnd not implemented"); |
24 | #endif |
25 | } |
26 | |