1333fc21eSDavid E. O'Brien #include <sys/cdefs.h> 2333fc21eSDavid E. O'Brien __FBSDID("$FreeBSD$"); 3333fc21eSDavid E. O'Brien 45b65bca2SDoug Rabson #include <sys/types.h> 55b65bca2SDoug Rabson #include <sys/ipc.h> 65b65bca2SDoug Rabson #include <sys/sem.h> 73f58cad6SSteve Price #include <stdarg.h> 83f58cad6SSteve Price #include <stdlib.h> 95b65bca2SDoug Rabson 103f58cad6SSteve Price int semctl(int semid, int semnum, int cmd, ...) 115b65bca2SDoug Rabson { 123f58cad6SSteve Price va_list ap; 133f58cad6SSteve Price union semun semun; 143f58cad6SSteve Price union semun *semun_ptr; 15a82bbc73SAlfred Perlstein 163f58cad6SSteve Price va_start(ap, cmd); 173f58cad6SSteve Price if (cmd == IPC_SET || cmd == IPC_STAT || cmd == GETALL 183f58cad6SSteve Price || cmd == SETVAL || cmd == SETALL) { 193f58cad6SSteve Price semun = va_arg(ap, union semun); 203f58cad6SSteve Price semun_ptr = &semun; 213f58cad6SSteve Price } else { 223f58cad6SSteve Price semun_ptr = NULL; 233f58cad6SSteve Price } 243f58cad6SSteve Price va_end(ap); 253f58cad6SSteve Price 263f58cad6SSteve Price return (__semctl(semid, semnum, cmd, semun_ptr)); 275b65bca2SDoug Rabson } 28