static void addItem(int color, List_Links *list) { Item *i; i = (Item *)malloc(sizeof(Item)); assert(i); List_Init((List_Links *)i); i->color = color; List_Insert((List_Links *)i, LIST_ATREAR(list)); assert(((Item *)List_Last(list))->color == color); return; }
/* * ---------------------------------------------------------------------------- * * VmStackInit -- * * Allocate and initialize the stack stuff. * * Results: * None. * * Side effects: * Stack information is allocated and initialization. * * ---------------------------------------------------------------------------- */ void VmStackInit() { Address addr; int i; Sync_LockInitDynamic(&stackLock, "Vm:stackLock"); stackListElements = (StackList *)Vm_BootAlloc(vmMaxProcesses * sizeof(StackList)); List_Init(activeList); List_Init(freeList); for (i = 0, addr = vmStackBaseAddr; addr < vmStackEndAddr; i++, addr += mach_KernStackSize) { stackListElements[i].startAddr = (Address) addr; List_Insert((List_Links *) &stackListElements[i], LIST_ATREAR(freeList)); } numStackPages = mach_KernStackSize >> vmPageShift; }