|
|
1.1 ! root 1: /* @(#)semsys.c 1.1 */ ! 2: #include <sys/types.h> ! 3: #include <sys/time.h> ! 4: #include <sys/ipc.h> ! 5: #include <sys/sem.h> ! 6: ! 7: #define SEMSYS 153 ! 8: ! 9: #define SEMCTL 0 ! 10: #define SEMGET 1 ! 11: #define SEMOP 2 ! 12: ! 13: semctl(semid, semnum, cmd, arg) ! 14: int semid, cmd; ! 15: int semnum; ! 16: union semun { ! 17: int val; ! 18: struct semid_ds *buf; ! 19: ushort array[1]; ! 20: } arg; ! 21: { ! 22: return(syscall(SEMSYS, SEMCTL, semid, semnum, cmd, arg)); ! 23: } ! 24: ! 25: semget(key, nsems, semflg) ! 26: key_t key; ! 27: int nsems, semflg; ! 28: { ! 29: return(syscall(SEMSYS, SEMGET, key, nsems, semflg)); ! 30: } ! 31: ! 32: semop(semid, sops, nsops) ! 33: int semid; ! 34: struct sembuf (*sops)[]; ! 35: int nsops; ! 36: { ! 37: return(syscall(SEMSYS, SEMOP, semid, sops, nsops)); ! 38: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.