semctl.c 363 B

123456789101112131415161718
  1. #include <sys/sem.h>
  2. #include <stdarg.h>
  3. #include "syscall.h"
  4. #include "ipc.h"
  5. int semctl(int id, int num, int cmd, ...)
  6. {
  7. long arg;
  8. va_list ap;
  9. va_start(ap, cmd);
  10. arg = va_arg(ap, long);
  11. va_end(ap);
  12. #ifdef SYS_semctl
  13. return syscall(SYS_semctl, id, num, cmd | 0x100, arg);
  14. #else
  15. return syscall(SYS_ipc, IPCOP_semctl, id, num, cmd | 0x100, &arg);
  16. #endif
  17. }