sys/kern/sysv_sem.c
1111
struct sem_undo *suptr;
sys/kern/sysv_sem.c
1358
suptr = NULL;
sys/kern/sysv_sem.c
1371
error = semundo_adjust(td, &suptr, semid, seq,
sys/kern/sysv_sem.c
1392
if (semundo_adjust(td, &suptr, semid, seq,
sys/kern/sysv_sem.c
1441
struct sem_undo *suptr;
sys/kern/sysv_sem.c
1454
LIST_FOREACH(suptr, &semu_list, un_next) {
sys/kern/sysv_sem.c
1455
if (suptr->un_proc == p)
sys/kern/sysv_sem.c
1458
if (suptr == NULL) {
sys/kern/sysv_sem.c
1462
LIST_REMOVE(suptr, un_next);
sys/kern/sysv_sem.c
1465
suptr->un_cnt));
sys/kern/sysv_sem.c
1470
if (suptr->un_cnt > 0) {
sys/kern/sysv_sem.c
1472
for (ix = 0; ix < suptr->un_cnt; ix++) {
sys/kern/sysv_sem.c
1473
semid = suptr->un_ent[ix].un_id;
sys/kern/sysv_sem.c
1474
semnum = suptr->un_ent[ix].un_num;
sys/kern/sysv_sem.c
1475
adjval = suptr->un_ent[ix].un_adjval;
sys/kern/sysv_sem.c
1476
seq = suptr->un_ent[ix].un_seq;
sys/kern/sysv_sem.c
1490
suptr->un_proc, suptr->un_ent[ix].un_id,
sys/kern/sysv_sem.c
1491
suptr->un_ent[ix].un_num,
sys/kern/sysv_sem.c
1492
suptr->un_ent[ix].un_adjval,
sys/kern/sysv_sem.c
1512
suptr->un_proc = NULL;
sys/kern/sysv_sem.c
1513
suptr->un_cnt = 0;
sys/kern/sysv_sem.c
1514
LIST_INSERT_HEAD(&semu_free_list, suptr, un_next);
sys/kern/sysv_sem.c
299
struct sem_undo *suptr = SEMU(i);
sys/kern/sysv_sem.c
300
suptr->un_proc = NULL;
sys/kern/sysv_sem.c
301
LIST_INSERT_HEAD(&semu_free_list, suptr, un_next);
sys/kern/sysv_sem.c
412
struct sem_undo *suptr;
sys/kern/sysv_sem.c
415
if ((suptr = LIST_FIRST(&semu_free_list)) == NULL)
sys/kern/sysv_sem.c
417
LIST_REMOVE(suptr, un_next);
sys/kern/sysv_sem.c
418
LIST_INSERT_HEAD(&semu_list, suptr, un_next);
sys/kern/sysv_sem.c
419
suptr->un_cnt = 0;
sys/kern/sysv_sem.c
420
suptr->un_proc = td->td_proc;
sys/kern/sysv_sem.c
421
return (suptr);
sys/kern/sysv_sem.c
425
semu_try_free(struct sem_undo *suptr)
sys/kern/sysv_sem.c
430
if (suptr->un_cnt != 0)
sys/kern/sysv_sem.c
432
LIST_REMOVE(suptr, un_next);
sys/kern/sysv_sem.c
433
LIST_INSERT_HEAD(&semu_free_list, suptr, un_next);
sys/kern/sysv_sem.c
446
struct sem_undo *suptr;
sys/kern/sysv_sem.c
454
suptr = *supptr;
sys/kern/sysv_sem.c
455
if (suptr == NULL) {
sys/kern/sysv_sem.c
456
LIST_FOREACH(suptr, &semu_list, un_next) {
sys/kern/sysv_sem.c
457
if (suptr->un_proc == p) {
sys/kern/sysv_sem.c
458
*supptr = suptr;
sys/kern/sysv_sem.c
462
if (suptr == NULL) {
sys/kern/sysv_sem.c
465
suptr = semu_alloc(td);
sys/kern/sysv_sem.c
466
if (suptr == NULL)
sys/kern/sysv_sem.c
468
*supptr = suptr;
sys/kern/sysv_sem.c
476
sunptr = &suptr->un_ent[0];
sys/kern/sysv_sem.c
477
for (i = 0; i < suptr->un_cnt; i++, sunptr++) {
sys/kern/sysv_sem.c
487
suptr->un_cnt--;
sys/kern/sysv_sem.c
488
if (i < suptr->un_cnt)
sys/kern/sysv_sem.c
489
suptr->un_ent[i] =
sys/kern/sysv_sem.c
490
suptr->un_ent[suptr->un_cnt];
sys/kern/sysv_sem.c
491
if (suptr->un_cnt == 0)
sys/kern/sysv_sem.c
492
semu_try_free(suptr);
sys/kern/sysv_sem.c
502
if (suptr->un_cnt != seminfo.semume) {
sys/kern/sysv_sem.c
503
sunptr = &suptr->un_ent[suptr->un_cnt];
sys/kern/sysv_sem.c
504
suptr->un_cnt++;
sys/kern/sysv_sem.c
517
struct sem_undo *suptr, *suptr1;
sys/kern/sysv_sem.c
522
LIST_FOREACH_SAFE(suptr, &semu_list, un_next, suptr1) {
sys/kern/sysv_sem.c
523
sunptr = &suptr->un_ent[0];
sys/kern/sysv_sem.c
524
for (i = 0; i < suptr->un_cnt; i++, sunptr++) {
sys/kern/sysv_sem.c
528
suptr->un_cnt--;
sys/kern/sysv_sem.c
529
if (i < suptr->un_cnt) {
sys/kern/sysv_sem.c
530
suptr->un_ent[i] =
sys/kern/sysv_sem.c
531
suptr->un_ent[suptr->un_cnt];
sys/kern/sysv_sem.c
534
semu_try_free(suptr);
sys/sys/systm.h
374
__nodiscard int suptr(volatile void *base, intptr_t ptr);