sem_undo
struct sem_undo *undos = NULL;
undos = (struct sem_undo *)addr;
size = sizeof(struct sem_undo) + (undos->un_cnt + 1) *
sizeof(struct sem_undo);
extern struct sem_undo *undos;
#define SEMUSZ(nent) SEM_ALIGN(offsetof(struct sem_undo, un_ent[nent]))
struct sem_undo *suptr;
static struct sem_undo *
struct sem_undo *semu;
struct sem_undo *suptr;
struct sem_undo *suptr;
struct sem_undo *sunext;
static struct sem_undo *semu_alloc (struct proc *p);
static TAILQ_HEAD(, sem_undo) semu_list = TAILQ_HEAD_INITIALIZER(semu_list);
TAILQ_ENTRY(sem_undo) un_entry; /* linked list for semundo_clear() */
struct sem_undo;
struct sem_undo *p_sem_undo; /* Fast semaphore tracking lookup */
struct sem_undo *suptr;
suptr = (struct sem_undo *)map_seg(undoid);