home *** CD-ROM | disk | FTP | other *** search
- int
- do_ipcget(optype, arglast)
- int optype;
- int *arglast;
- {
- register STR **st = stack->ary_array;
- register int sp = arglast[0];
- key_t key;
- int n, flags;
-
- key = (key_t)str_gnum(st[++sp]);
- n = (optype == O_MSGGET) ? 0 : (int)str_gnum(st[++sp]);
- flags = (int)str_gnum(st[++sp]);
- errno = 0;
- switch (optype)
- {
- #ifdef HAS_MSG
- case O_MSGGET:
- return msgget(key, flags);
- #endif
- #ifdef HAS_SEM
- case O_SEMGET:
- return semget(key, n, flags);
- #endif
- #ifdef HAS_SHM
- case O_SHMGET:
- return shmget(key, n, flags);
- #endif
- #if !defined(HAS_MSG) || !defined(HAS_SEM) || !defined(HAS_SHM)
- default:
- fatal("%s not implemented", opname[optype]);
- #endif
- }
- return -1; /* should never happen */
- }
-
-