Lines Matching refs:sop

106 	struct list_head pending_alter; /* pending single-sop operations */
108 struct list_head pending_const; /* pending single-sop operations */
309 * It is necessary to achieve FIFO ordering for the pending single-sop
650 struct sembuf *sop;
659 for (sop = sops; sop < sops + nsops; sop++) {
660 int idx = array_index_nospec(sop->sem_num, sma->sem_nsems);
662 sem_op = sop->sem_op;
674 if (sop->sem_flg & SEM_UNDO) {
675 int undo = un->semadj[sop->sem_num] - sem_op;
679 un->semadj[sop->sem_num] = undo;
685 sop--;
687 while (sop >= sops) {
688 ipc_update_pid(&sma->sems[sop->sem_num].sempid, pid);
689 sop--;
699 q->blocking = sop;
701 if (sop->sem_flg & IPC_NOWAIT)
707 sop--;
708 while (sop >= sops) {
709 sem_op = sop->sem_op;
710 sma->sems[sop->sem_num].semval -= sem_op;
711 if (sop->sem_flg & SEM_UNDO)
712 un->semadj[sop->sem_num] += sem_op;
713 sop--;
722 struct sembuf *sop;
740 for (sop = sops; sop < sops + nsops; sop++) {
741 int idx = array_index_nospec(sop->sem_num, sma->sem_nsems);
744 sem_op = sop->sem_op;
757 if (sop->sem_flg & SEM_UNDO) {
758 int undo = un->semadj[sop->sem_num] - sem_op;
766 for (sop = sops; sop < sops + nsops; sop++) {
767 curr = &sma->sems[sop->sem_num];
768 sem_op = sop->sem_op;
770 if (sop->sem_flg & SEM_UNDO) {
771 int undo = un->semadj[sop->sem_num] - sem_op;
773 un->semadj[sop->sem_num] = undo;
782 q->blocking = sop;
783 return sop->sem_flg & IPC_NOWAIT ? -EAGAIN : 1;
964 /* If we are scanning the single sop, per-semaphore list of
1075 struct sembuf *sop = q->blocking;
1088 if (sop->sem_num != semnum)
1091 if (count_zero && sop->sem_op == 0)
1093 if (!count_zero && sop->sem_op < 0)
1989 struct sembuf *sop;
2013 for (sop = sops; sop < sops + nsops; sop++) {
2014 unsigned long mask = 1ULL << ((sop->sem_num) % BITS_PER_LONG);
2016 if (sop->sem_num >= max)
2017 max = sop->sem_num;
2018 if (sop->sem_flg & SEM_UNDO)
2029 if (sop->sem_op != 0) {