Index: usr.bin/ipcrm/ipcrm.c =================================================================== --- usr.bin/ipcrm/ipcrm.c +++ usr.bin/ipcrm/ipcrm.c @@ -50,32 +50,35 @@ #include "ipc.h" -int signaled; -int errflg; -int rmverbose = 0; +static int signaled; +static int errflg; +static int rmverbose = 0; void usage(void); - int msgrm(key_t, int); int shmrm(key_t, int); int semrm(key_t, int); void not_configured(int); +extern int semctl(int, int, int, ...); +extern int semget(key_t, int, int); +extern int shmget(key_t, size_t, int); +extern int shmctl(int, int, struct shmid_ds *); +extern int msgctl(int, int, struct msqid_ds *); +extern int msgget(key_t, int); + void usage(void) { - fprintf(stderr, "usage: ipcrm [-W] [-v[v]]\n" " [-q msqid] [-m shmid] [-s semid]\n" " [-Q msgkey] [-M shmkey] [-S semkey] ...\n"); - exit(1); } int msgrm(key_t key, int id) { - if (key == -1 || id == -1) { struct msqid_kernel *kxmsqids; size_t kxmsqids_len; @@ -116,7 +119,6 @@ int shmrm(key_t key, int id) { - if (key == -1 || id == -1) { struct shmid_kernel *kxshmids; size_t kxshmids_len; @@ -173,7 +175,7 @@ if ((kxsema[num].u.sem_perm.mode & SEM_ALLOC) != 0) { id = IXSEQ_TO_IPCID(num, kxsema[num].u.sem_perm); - if (semctl(id, IPC_RMID, NULL) < 0) { + if (semctl(id, 0, IPC_RMID, NULL) < 0) { if (rmverbose > 1) warn("semid(%d): ", id); errflg++; @@ -199,7 +201,6 @@ void not_configured(int signo __unused) { - signaled++; } @@ -210,7 +211,6 @@ key_t target_key; while ((c = getopt(argc, argv, "q:m:s:Q:M:S:vWy")) != -1) { - signaled = 0; switch (c) { case 'v': @@ -226,7 +226,6 @@ errflg = 0; signal(SIGSYS, not_configured); while ((c = getopt(argc, argv, "q:m:s:Q:M:S:vWy")) != -1) { - signaled = 0; switch (c) { case 'q':