u32 InitMem2Manager () { int size = (10*1024*1024); u32 level; _CPU_ISR_Disable(level); size &= ~0x1f; // round down, because otherwise we may exceed the area void *mem2_heap_ptr = (void *)((u32)SYS_GetArena2Hi()-size); SYS_SetArena2Hi(mem2_heap_ptr); _CPU_ISR_Restore(level); size = __lwp_heap_init(&mem2_heap, mem2_heap_ptr, size, 32); return size; }
void InitMem2Manager() { int size = (32*1024*1024)+(256*1024)+32; u32 level; _CPU_ISR_Disable(level); mem2_ptr = (u8*)((u32)SYS_GetArena2Hi()-size); SYS_SetArena2Hi(mem2_ptr); _CPU_ISR_Restore(level); mem2_size = size; Mem2ManagerReset(); #ifdef WII_NETTRACE net_print_string( NULL, 0, "InitMem2Manager: %d, %u\n", mem2_size, mem2_ptr ); #endif }
s32 USBStorage_Initialize() { u32 level; if(__inited) return IPC_OK; _CPU_ISR_Disable(level); LWP_InitQueue(&__usbstorage_waitq); if(!arena_ptr) { arena_ptr = (u8*)ROUNDDOWN32(((u32)SYS_GetArena2Hi() - HEAP_SIZE)); if((u32)arena_ptr < (u32)SYS_GetArena2Lo()) { _CPU_ISR_Restore(level); return IPC_ENOMEM; } SYS_SetArena2Hi(arena_ptr); } __lwp_heap_init(&__heap, arena_ptr, HEAP_SIZE, 32); __inited = true; _CPU_ISR_Restore(level); return IPC_OK; }