8eed98e2b048c3e1649870eb4d6507a04f274896
[perl.git] / do / ipcget
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