Home | History | Annotate | Download | only in kern

Lines Matching defs:sops

814 do_semop1(struct lwp *l, int usemid, struct sembuf *sops,
830 SEM_PRINTF(("do_semop1(%d, %p, %zu)\n", usemid, sops, nsops));
871 if (sops[i].sem_num >= semaptr->sem_nsems) {
890 sopptr = &sops[i];
939 semaptr->_sem_base[sops[i].sem_num].semval -=
940 sops[i].sem_op;
1012 if ((sops[i].sem_flg & SEM_UNDO) == 0)
1014 adjval = sops[i].sem_op;
1018 sops[i].sem_num, -adjval);
1032 if ((sops[i].sem_flg & SEM_UNDO) == 0)
1034 adjval = sops[i].sem_op;
1038 sops[i].sem_num, adjval) != 0)
1043 semaptr->_sem_base[sops[i].sem_num].semval -=
1044 sops[i].sem_op;
1049 } /* loop through the sops */
1054 sopptr = &sops[i];
1081 struct sembuf *sops;
1090 sops = small_sops;
1092 sops = kmem_alloc(nsops * sizeof(*sops), KM_SLEEP);
1094 SEM_PRINTF(("too many sops (max=%d, nsops=%zu)\n",
1099 error = copyin(usops, sops, nsops * sizeof(sops[0]));
1102 usops, &sops, nsops * sizeof(sops[0])));
1103 if (sops != small_sops)
1104 kmem_free(sops, nsops * sizeof(*sops));
1117 error = do_semop1(l, usemid, sops, nsops, utimeout ? &timeout : NULL,
1120 if (sops != small_sops)
1121 kmem_free(sops, nsops * sizeof(*sops));
1132 syscallarg(struct sembuf *) sops;
1137 struct sembuf *sops = SCARG(uap, sops);
1141 return do_semop(l, semid, sops, nsops, utimeout, retval);
1149 syscallarg(struct sembuf *) sops;
1153 struct sembuf *sops = SCARG(uap, sops);
1156 return do_semop(l, semid, sops, nsops, NULL, retval);