Lines Matching defs:semnum
860 * @semnum: semaphore that was modified.
865 * be called with semnum = -1, as well as with the number of each modified
871 static int wake_const_ops(struct sem_array *sma, int semnum, struct wake_q_head *wake_q)
877 if (semnum == -1) {
880 pending_list = &sma->sems[semnum].pending_const;
954 * @semnum: semaphore that was modified.
959 * be called with semnum = -1, as well as with the number of each modified
967 static int update_queue(struct sem_array *sma, int semnum, struct wake_q_head *wake_q)
973 if (semnum == -1) {
976 pending_list = &sma->sems[semnum].pending_alter;
991 if (semnum != -1 && sma->sems[semnum].semval == 0) {
1091 * check_qop: Test if a queued operation sleeps on the semaphore semnum
1093 static int check_qop(struct sem_array *sma, int semnum, struct sem_queue *q, bool count_zero)
1108 if (sop->sem_num != semnum) {
1129 static int count_semcnt(struct sem_array *sma, ushort semnum, bool count_zero)
1138 l = &sma->sems[semnum].pending_const;
1140 l = &sma->sems[semnum].pending_alter;
1154 semcnt += check_qop(sma, semnum, q, count_zero);
1159 semcnt += check_qop(sma, semnum, q, count_zero);
1376 static int semctl_setval(struct ipc_namespace *ns, int semid, int semnum, int val)
1395 if (semnum < 0 || semnum >= sma->sem_nsems) {
1419 semnum = array_index_nospec(semnum, sma->sem_nsems);
1420 curr = &sma->sems[semnum];
1423 list_for_each_entry(un, &sma->list_id, list_id) un->semadj[semnum] = 0;
1436 static int semctl_main(struct ipc_namespace *ns, int semid, int semnum, int cmd, void __user *p)
1565 if (semnum < 0 || semnum >= nsems) {
1575 semnum = array_index_nospec(semnum, nsems);
1576 curr = &sma->sems[semnum];
1586 err = count_semcnt(sma, semnum, 0);
1589 err = count_semcnt(sma, semnum, 1);
1686 static long ksys_semctl(int semid, int semnum, int cmd, unsigned long arg, int version)
1720 return semctl_main(ns, semid, semnum, cmd, p);
1730 return semctl_setval(ns, semid, semnum, val);
1744 SYSCALL_DEFINE4(semctl, int, semid, int, semnum, int, cmd, unsigned long, arg)
1746 return ksys_semctl(semid, semnum, cmd, arg, IPC_64);
1750 long ksys_old_semctl(int semid, int semnum, int cmd, unsigned long arg)
1754 return ksys_semctl(semid, semnum, cmd, arg, version);
1757 SYSCALL_DEFINE4(old_semctl, int, semid, int, semnum, int, cmd, unsigned long, arg)
1759 return ksys_old_semctl(semid, semnum, cmd, arg);
1811 static long compat_ksys_semctl(int semid, int semnum, int cmd, int arg, int version)
1845 return semctl_main(ns, semid, semnum, cmd, p);
1847 return semctl_setval(ns, semid, semnum, arg);
1860 COMPAT_SYSCALL_DEFINE4(semctl, int, semid, int, semnum, int, cmd, int, arg)
1862 return compat_ksys_semctl(semid, semnum, cmd, arg, IPC_64);
1866 long compat_ksys_old_semctl(int semid, int semnum, int cmd, int arg)
1870 return compat_ksys_semctl(semid, semnum, cmd, arg, version);
1873 COMPAT_SYSCALL_DEFINE4(old_semctl, int, semid, int, semnum, int, cmd, int, arg)
1875 return compat_ksys_old_semctl(semid, semnum, cmd, arg);