Commit | Line | Data |
79072805 |
1 | int |
2 | do_ipcget(optype, arglast) |
3 | int optype; |
4 | int *arglast; |
5 | { |
6 | register STR **st = stack->ary_array; |
7 | register int sp = arglast[0]; |
8 | key_t key; |
9 | int n, flags; |
10 | |
11 | key = (key_t)str_gnum(st[++sp]); |
12 | n = (optype == O_MSGGET) ? 0 : (int)str_gnum(st[++sp]); |
13 | flags = (int)str_gnum(st[++sp]); |
14 | errno = 0; |
15 | switch (optype) |
16 | { |
17 | #ifdef HAS_MSG |
18 | case O_MSGGET: |
19 | return msgget(key, flags); |
20 | #endif |
21 | #ifdef HAS_SEM |
22 | case O_SEMGET: |
23 | return semget(key, n, flags); |
24 | #endif |
25 | #ifdef HAS_SHM |
26 | case O_SHMGET: |
27 | return shmget(key, n, flags); |
28 | #endif |
29 | #if !defined(HAS_MSG) || !defined(HAS_SEM) || !defined(HAS_SHM) |
30 | default: |
31 | fatal("%s not implemented", opname[optype]); |
32 | #endif |
33 | } |
34 | return -1; /* should never happen */ |
35 | } |
36 | |