Lines Matching refs:suptr
300 struct sem_undo *suptr = SEMU(i); in seminit() local
301 suptr->un_proc = NULL; in seminit()
302 LIST_INSERT_HEAD(&semu_free_list, suptr, un_next); in seminit()
415 struct sem_undo *suptr; in semu_alloc() local
418 if ((suptr = LIST_FIRST(&semu_free_list)) == NULL) in semu_alloc()
420 LIST_REMOVE(suptr, un_next); in semu_alloc()
421 LIST_INSERT_HEAD(&semu_list, suptr, un_next); in semu_alloc()
422 suptr->un_cnt = 0; in semu_alloc()
423 suptr->un_proc = td->td_proc; in semu_alloc()
424 return (suptr); in semu_alloc()
428 semu_try_free(struct sem_undo *suptr) in semu_try_free() argument
433 if (suptr->un_cnt != 0) in semu_try_free()
435 LIST_REMOVE(suptr, un_next); in semu_try_free()
436 LIST_INSERT_HEAD(&semu_free_list, suptr, un_next); in semu_try_free()
449 struct sem_undo *suptr; in semundo_adjust() local
457 suptr = *supptr; in semundo_adjust()
458 if (suptr == NULL) { in semundo_adjust()
459 LIST_FOREACH(suptr, &semu_list, un_next) { in semundo_adjust()
460 if (suptr->un_proc == p) { in semundo_adjust()
461 *supptr = suptr; in semundo_adjust()
465 if (suptr == NULL) { in semundo_adjust()
468 suptr = semu_alloc(td); in semundo_adjust()
469 if (suptr == NULL) in semundo_adjust()
471 *supptr = suptr; in semundo_adjust()
479 sunptr = &suptr->un_ent[0]; in semundo_adjust()
480 for (i = 0; i < suptr->un_cnt; i++, sunptr++) { in semundo_adjust()
490 suptr->un_cnt--; in semundo_adjust()
491 if (i < suptr->un_cnt) in semundo_adjust()
492 suptr->un_ent[i] = in semundo_adjust()
493 suptr->un_ent[suptr->un_cnt]; in semundo_adjust()
494 if (suptr->un_cnt == 0) in semundo_adjust()
495 semu_try_free(suptr); in semundo_adjust()
505 if (suptr->un_cnt != seminfo.semume) { in semundo_adjust()
506 sunptr = &suptr->un_ent[suptr->un_cnt]; in semundo_adjust()
507 suptr->un_cnt++; in semundo_adjust()
520 struct sem_undo *suptr, *suptr1; in semundo_clear() local
525 LIST_FOREACH_SAFE(suptr, &semu_list, un_next, suptr1) { in semundo_clear()
526 sunptr = &suptr->un_ent[0]; in semundo_clear()
527 for (i = 0; i < suptr->un_cnt; i++, sunptr++) { in semundo_clear()
531 suptr->un_cnt--; in semundo_clear()
532 if (i < suptr->un_cnt) { in semundo_clear()
533 suptr->un_ent[i] = in semundo_clear()
534 suptr->un_ent[suptr->un_cnt]; in semundo_clear()
537 semu_try_free(suptr); in semundo_clear()
1096 struct sem_undo *suptr; in sys_semop() local
1324 suptr = NULL; in sys_semop()
1337 error = semundo_adjust(td, &suptr, semid, seq, in sys_semop()
1358 if (semundo_adjust(td, &suptr, semid, seq, in sys_semop()
1407 struct sem_undo *suptr; in semexit_myhook() local
1420 LIST_FOREACH(suptr, &semu_list, un_next) { in semexit_myhook()
1421 if (suptr->un_proc == p) in semexit_myhook()
1424 if (suptr == NULL) { in semexit_myhook()
1428 LIST_REMOVE(suptr, un_next); in semexit_myhook()
1431 suptr->un_cnt)); in semexit_myhook()
1436 if (suptr->un_cnt > 0) { in semexit_myhook()
1438 for (ix = 0; ix < suptr->un_cnt; ix++) { in semexit_myhook()
1439 semid = suptr->un_ent[ix].un_id; in semexit_myhook()
1440 semnum = suptr->un_ent[ix].un_num; in semexit_myhook()
1441 adjval = suptr->un_ent[ix].un_adjval; in semexit_myhook()
1442 seq = suptr->un_ent[ix].un_seq; in semexit_myhook()
1457 suptr->un_proc, suptr->un_ent[ix].un_id, in semexit_myhook()
1458 suptr->un_ent[ix].un_num, in semexit_myhook()
1459 suptr->un_ent[ix].un_adjval, in semexit_myhook()
1479 suptr->un_proc = NULL; in semexit_myhook()
1480 suptr->un_cnt = 0; in semexit_myhook()
1481 LIST_INSERT_HEAD(&semu_free_list, suptr, un_next); in semexit_myhook()