void OSEnableOverlayArena(uint32_t unk, be_val<uint32_t> *addr, be_val<uint32_t> *size) { if (!sOverlayArenaEnabled) { auto bounds = kernel::initialiseOverlayArena(); sOverlayArenaBase = bounds.start; sOverlayArenaSize = bounds.size; sOverlayArenaEnabled = true; } OSGetOverlayArenaRange(addr, size); }
void OSEnableOverlayArena(uint32_t unk, be_val<uint32_t> *addr, be_val<uint32_t> *size) { if (!sOverlayArenaEnabled) { if (!mem::commit(mem::OverlayArenaBase, mem::OverlayArenaSize)) { decaf_abort("Failed to allocate loader overlay memory"); } sOverlayArenaEnabled = true; } OSGetOverlayArenaRange(addr, size); }