Lines Matching defs:semnum
841 * @semnum: semaphore that was modified.
846 * be called with semnum = -1, as well as with the number of each modified
852 static int wake_const_ops(struct sem_array *sma, int semnum,
859 if (semnum == -1)
862 pending_list = &sma->sems[semnum].pending_const;
934 * @semnum: semaphore that was modified.
939 * be called with semnum = -1, as well as with the number of each modified
947 static int update_queue(struct sem_array *sma, int semnum, struct wake_q_head *wake_q)
953 if (semnum == -1)
956 pending_list = &sma->sems[semnum].pending_alter;
969 if (semnum != -1 && sma->sems[semnum].semval == 0)
1068 * check_qop: Test if a queued operation sleeps on the semaphore semnum
1070 static int check_qop(struct sem_array *sma, int semnum, struct sem_queue *q,
1086 if (sop->sem_num != semnum)
1104 static int count_semcnt(struct sem_array *sma, ushort semnum,
1114 l = &sma->sems[semnum].pending_const;
1116 l = &sma->sems[semnum].pending_alter;
1127 semcnt += check_qop(sma, semnum, q, count_zero);
1131 semcnt += check_qop(sma, semnum, q, count_zero);
1341 static int semctl_setval(struct ipc_namespace *ns, int semid, int semnum,
1360 if (semnum < 0 || semnum >= sma->sem_nsems) {
1385 semnum = array_index_nospec(semnum, sma->sem_nsems);
1386 curr = &sma->sems[semnum];
1390 un->semadj[semnum] = 0;
1403 static int semctl_main(struct ipc_namespace *ns, int semid, int semnum,
1531 if (semnum < 0 || semnum >= nsems)
1540 semnum = array_index_nospec(semnum, nsems);
1541 curr = &sma->sems[semnum];
1551 err = count_semcnt(sma, semnum, 0);
1554 err = count_semcnt(sma, semnum, 1);
1650 static long ksys_semctl(int semid, int semnum, int cmd, unsigned long arg, int version)
1681 return semctl_main(ns, semid, semnum, cmd, p);
1691 return semctl_setval(ns, semid, semnum, val);
1704 SYSCALL_DEFINE4(semctl, int, semid, int, semnum, int, cmd, unsigned long, arg)
1706 return ksys_semctl(semid, semnum, cmd, arg, IPC_64);
1710 long ksys_old_semctl(int semid, int semnum, int cmd, unsigned long arg)
1714 return ksys_semctl(semid, semnum, cmd, arg, version);
1717 SYSCALL_DEFINE4(old_semctl, int, semid, int, semnum, int, cmd, unsigned long, arg)
1719 return ksys_old_semctl(semid, semnum, cmd, arg);
1773 static long compat_ksys_semctl(int semid, int semnum, int cmd, int arg, int version)
1804 return semctl_main(ns, semid, semnum, cmd, p);
1806 return semctl_setval(ns, semid, semnum, arg);
1818 COMPAT_SYSCALL_DEFINE4(semctl, int, semid, int, semnum, int, cmd, int, arg)
1820 return compat_ksys_semctl(semid, semnum, cmd, arg, IPC_64);
1824 long compat_ksys_old_semctl(int semid, int semnum, int cmd, int arg)
1828 return compat_ksys_semctl(semid, semnum, cmd, arg, version);
1831 COMPAT_SYSCALL_DEFINE4(old_semctl, int, semid, int, semnum, int, cmd, int, arg)
1833 return compat_ksys_old_semctl(semid, semnum, cmd, arg);