Lines Matching refs:suptr

299 		struct sem_undo *suptr = SEMU(i);  in seminit()  local
300 suptr->un_proc = NULL; in seminit()
301 LIST_INSERT_HEAD(&semu_free_list, suptr, un_next); in seminit()
412 struct sem_undo *suptr; in semu_alloc() local
415 if ((suptr = LIST_FIRST(&semu_free_list)) == NULL) in semu_alloc()
417 LIST_REMOVE(suptr, un_next); in semu_alloc()
418 LIST_INSERT_HEAD(&semu_list, suptr, un_next); in semu_alloc()
419 suptr->un_cnt = 0; in semu_alloc()
420 suptr->un_proc = td->td_proc; in semu_alloc()
421 return (suptr); in semu_alloc()
425 semu_try_free(struct sem_undo *suptr) in semu_try_free() argument
430 if (suptr->un_cnt != 0) in semu_try_free()
432 LIST_REMOVE(suptr, un_next); in semu_try_free()
433 LIST_INSERT_HEAD(&semu_free_list, suptr, un_next); in semu_try_free()
446 struct sem_undo *suptr; in semundo_adjust() local
454 suptr = *supptr; in semundo_adjust()
455 if (suptr == NULL) { in semundo_adjust()
456 LIST_FOREACH(suptr, &semu_list, un_next) { in semundo_adjust()
457 if (suptr->un_proc == p) { in semundo_adjust()
458 *supptr = suptr; in semundo_adjust()
462 if (suptr == NULL) { in semundo_adjust()
465 suptr = semu_alloc(td); in semundo_adjust()
466 if (suptr == NULL) in semundo_adjust()
468 *supptr = suptr; in semundo_adjust()
476 sunptr = &suptr->un_ent[0]; in semundo_adjust()
477 for (i = 0; i < suptr->un_cnt; i++, sunptr++) { in semundo_adjust()
487 suptr->un_cnt--; in semundo_adjust()
488 if (i < suptr->un_cnt) in semundo_adjust()
489 suptr->un_ent[i] = in semundo_adjust()
490 suptr->un_ent[suptr->un_cnt]; in semundo_adjust()
491 if (suptr->un_cnt == 0) in semundo_adjust()
492 semu_try_free(suptr); in semundo_adjust()
502 if (suptr->un_cnt != seminfo.semume) { in semundo_adjust()
503 sunptr = &suptr->un_ent[suptr->un_cnt]; in semundo_adjust()
504 suptr->un_cnt++; in semundo_adjust()
517 struct sem_undo *suptr, *suptr1; in semundo_clear() local
522 LIST_FOREACH_SAFE(suptr, &semu_list, un_next, suptr1) { in semundo_clear()
523 sunptr = &suptr->un_ent[0]; in semundo_clear()
524 for (i = 0; i < suptr->un_cnt; i++, sunptr++) { in semundo_clear()
528 suptr->un_cnt--; in semundo_clear()
529 if (i < suptr->un_cnt) { in semundo_clear()
530 suptr->un_ent[i] = in semundo_clear()
531 suptr->un_ent[suptr->un_cnt]; in semundo_clear()
534 semu_try_free(suptr); in semundo_clear()
1114 struct sem_undo *suptr; in kern_semop() local
1361 suptr = NULL; in kern_semop()
1374 error = semundo_adjust(td, &suptr, semid, seq, in kern_semop()
1395 if (semundo_adjust(td, &suptr, semid, seq, in kern_semop()
1444 struct sem_undo *suptr; in semexit_myhook() local
1457 LIST_FOREACH(suptr, &semu_list, un_next) { in semexit_myhook()
1458 if (suptr->un_proc == p) in semexit_myhook()
1461 if (suptr == NULL) { in semexit_myhook()
1465 LIST_REMOVE(suptr, un_next); in semexit_myhook()
1468 suptr->un_cnt)); in semexit_myhook()
1473 if (suptr->un_cnt > 0) { in semexit_myhook()
1475 for (ix = 0; ix < suptr->un_cnt; ix++) { in semexit_myhook()
1476 semid = suptr->un_ent[ix].un_id; in semexit_myhook()
1477 semnum = suptr->un_ent[ix].un_num; in semexit_myhook()
1478 adjval = suptr->un_ent[ix].un_adjval; in semexit_myhook()
1479 seq = suptr->un_ent[ix].un_seq; in semexit_myhook()
1494 suptr->un_proc, suptr->un_ent[ix].un_id, in semexit_myhook()
1495 suptr->un_ent[ix].un_num, in semexit_myhook()
1496 suptr->un_ent[ix].un_adjval, in semexit_myhook()
1516 suptr->un_proc = NULL; in semexit_myhook()
1517 suptr->un_cnt = 0; in semexit_myhook()
1518 LIST_INSERT_HEAD(&semu_free_list, suptr, un_next); in semexit_myhook()