Lines Matching refs:semnum

843  * @semnum: semaphore that was modified.
848 * be called with semnum = -1, as well as with the number of each modified
854 static int wake_const_ops(struct sem_array *sma, int semnum,
861 if (semnum == -1)
864 pending_list = &sma->sems[semnum].pending_const;
936 * @semnum: semaphore that was modified.
941 * be called with semnum = -1, as well as with the number of each modified
949 static int update_queue(struct sem_array *sma, int semnum, struct wake_q_head *wake_q)
955 if (semnum == -1)
958 pending_list = &sma->sems[semnum].pending_alter;
971 if (semnum != -1 && sma->sems[semnum].semval == 0)
1070 * check_qop: Test if a queued operation sleeps on the semaphore semnum
1072 static int check_qop(struct sem_array *sma, int semnum, struct sem_queue *q,
1088 if (sop->sem_num != semnum)
1106 static int count_semcnt(struct sem_array *sma, ushort semnum,
1116 l = &sma->sems[semnum].pending_const;
1118 l = &sma->sems[semnum].pending_alter;
1129 semcnt += check_qop(sma, semnum, q, count_zero);
1133 semcnt += check_qop(sma, semnum, q, count_zero);
1343 static int semctl_setval(struct ipc_namespace *ns, int semid, int semnum,
1362 if (semnum < 0 || semnum >= sma->sem_nsems) {
1387 semnum = array_index_nospec(semnum, sma->sem_nsems);
1388 curr = &sma->sems[semnum];
1392 un->semadj[semnum] = 0;
1405 static int semctl_main(struct ipc_namespace *ns, int semid, int semnum,
1532 if (semnum < 0 || semnum >= nsems)
1541 semnum = array_index_nospec(semnum, nsems);
1542 curr = &sma->sems[semnum];
1552 err = count_semcnt(sma, semnum, 0);
1555 err = count_semcnt(sma, semnum, 1);
1651 static long ksys_semctl(int semid, int semnum, int cmd, unsigned long arg, int version)
1682 return semctl_main(ns, semid, semnum, cmd, p);
1692 return semctl_setval(ns, semid, semnum, val);
1705 SYSCALL_DEFINE4(semctl, int, semid, int, semnum, int, cmd, unsigned long, arg)
1707 return ksys_semctl(semid, semnum, cmd, arg, IPC_64);
1711 long ksys_old_semctl(int semid, int semnum, int cmd, unsigned long arg)
1715 return ksys_semctl(semid, semnum, cmd, arg, version);
1718 SYSCALL_DEFINE4(old_semctl, int, semid, int, semnum, int, cmd, unsigned long, arg)
1720 return ksys_old_semctl(semid, semnum, cmd, arg);
1774 static long compat_ksys_semctl(int semid, int semnum, int cmd, int arg, int version)
1805 return semctl_main(ns, semid, semnum, cmd, p);
1807 return semctl_setval(ns, semid, semnum, arg);
1819 COMPAT_SYSCALL_DEFINE4(semctl, int, semid, int, semnum, int, cmd, int, arg)
1821 return compat_ksys_semctl(semid, semnum, cmd, arg, IPC_64);
1825 long compat_ksys_old_semctl(int semid, int semnum, int cmd, int arg)
1829 return compat_ksys_semctl(semid, semnum, cmd, arg, version);
1832 COMPAT_SYSCALL_DEFINE4(old_semctl, int, semid, int, semnum, int, cmd, int, arg)
1834 return compat_ksys_old_semctl(semid, semnum, cmd, arg);