From 5bf13c7f48fe91c7902ce50250bc1a5a2398a2ae Mon Sep 17 00:00:00 2001 From: red031000 Date: Fri, 23 Jul 2021 01:11:15 +0100 Subject: separate out libs to libc, libnns and NitroSDK --- arm9/lib/src/OS_arena.c | 168 ------------------------------------------------ 1 file changed, 168 deletions(-) delete mode 100644 arm9/lib/src/OS_arena.c (limited to 'arm9/lib/src/OS_arena.c') diff --git a/arm9/lib/src/OS_arena.c b/arm9/lib/src/OS_arena.c deleted file mode 100644 index de7cb9fe..00000000 --- a/arm9/lib/src/OS_arena.c +++ /dev/null @@ -1,168 +0,0 @@ -#include "OS_arena.h" - -#include "global.h" -#include "OS_protectionRegion.h" -#include "OS_emulator.h" -#include "mmap.h" - -static BOOL OSi_Initialized = FALSE; -static BOOL OSi_MainExArenaEnabled = FALSE; - -void SDK_MAIN_ARENA_LO(); // TODO: technically this should be defined in the lcf -extern void SDK_SECTION_ARENA_EX_START(); // TODO: technically this should be defined in the lcf -extern void SDK_SECTION_ARENA_ITCM_START(); // TODO: technically this should be defined in the lcf -extern void SDK_SECTION_ARENA_DTCM_START(); // TODO: technically this should be defined in the lcf -extern void SDK_IRQ_STACKSIZE(); // TODO: technically this should be defined in the lcf -extern void SDK_SYS_STACKSIZE(); // TODO: technically this should be defined in the lcf - -ARM_FUNC void OS_InitArena(void) { - if (OSi_Initialized) { - return; - } - OSi_Initialized = TRUE; - - OS_SetArenaHi(OS_ARENA_MAIN, OS_GetInitArenaHi(OS_ARENA_MAIN)); - OS_SetArenaLo(OS_ARENA_MAIN, OS_GetInitArenaLo(OS_ARENA_MAIN)); - - OS_SetArenaLo(OS_ARENA_MAINEX, (void *)0); - OS_SetArenaHi(OS_ARENA_MAINEX, (void *)0); - - OS_SetArenaHi(OS_ARENA_ITCM, OS_GetInitArenaHi(OS_ARENA_ITCM)); - OS_SetArenaLo(OS_ARENA_ITCM, OS_GetInitArenaLo(OS_ARENA_ITCM)); - - OS_SetArenaHi(OS_ARENA_DTCM, OS_GetInitArenaHi(OS_ARENA_DTCM)); - OS_SetArenaLo(OS_ARENA_DTCM, OS_GetInitArenaLo(OS_ARENA_DTCM)); - - OS_SetArenaHi(OS_ARENA_SHARED, OS_GetInitArenaHi(OS_ARENA_SHARED)); - OS_SetArenaLo(OS_ARENA_SHARED, OS_GetInitArenaLo(OS_ARENA_SHARED)); - - OS_SetArenaHi(OS_ARENA_WRAM_MAIN, OS_GetInitArenaHi(OS_ARENA_WRAM_MAIN)); - OS_SetArenaLo(OS_ARENA_WRAM_MAIN, OS_GetInitArenaLo(OS_ARENA_WRAM_MAIN)); -} - -ARM_FUNC void OS_InitArenaEx(void) { - OS_SetArenaHi(OS_ARENA_MAINEX, OS_GetInitArenaHi(OS_ARENA_MAINEX)); - OS_SetArenaLo(OS_ARENA_MAINEX, OS_GetInitArenaLo(OS_ARENA_MAINEX)); - - if (!OSi_MainExArenaEnabled || (OS_GetConsoleType() & OS_CONSOLE_SIZE_MASK) == OS_CONSOLE_SIZE_4MB) { - OS_SetProtectionRegion(1, HW_MAIN_MEM, 4MB); - OS_SetProtectionRegion(2, HW_MAIN_MEM_MAIN_END, 128KB); - } -} - -ARM_FUNC void* OS_GetArenaHi(OSArenaId id) { - return OSi_GetArenaInfo().hi[id]; -} - -ARM_FUNC void* OS_GetArenaLo(OSArenaId id) { - return OSi_GetArenaInfo().lo[id]; -} - -ARM_FUNC void* OS_GetInitArenaHi(OSArenaId id) { - switch (id) { - case OS_ARENA_MAIN: - return (void *)OSi_MAIN_ARENA_HI_DEFAULT; - case OS_ARENA_MAINEX: - if (!OSi_MainExArenaEnabled || (OS_GetConsoleType() & OS_CONSOLE_SIZE_MASK) == OS_CONSOLE_SIZE_4MB) { - return (void *)0; - } else { - return (void *)OSi_MAINEX_ARENA_HI_DEFAULT; - } - case OS_ARENA_ITCM: - return (void *)HW_ITCM_ARENA_HI_DEFAULT; - case OS_ARENA_DTCM: - { - u32 irqStackLo = (u32) HW_DTCM_IRQ_STACK_END - (s32) SDK_IRQ_STACKSIZE; - u32 sysStackLo; - - if (!(s32) SDK_SYS_STACKSIZE) { - sysStackLo = HW_DTCM; - if (sysStackLo < (u32) SDK_SECTION_ARENA_DTCM_START) { - sysStackLo = (u32) SDK_SECTION_ARENA_DTCM_START; - } - } else if ((s32) SDK_SYS_STACKSIZE < 0) { - sysStackLo = (u32) SDK_SECTION_ARENA_DTCM_START - (s32) SDK_SYS_STACKSIZE; - } else { - sysStackLo = irqStackLo - (s32) SDK_SYS_STACKSIZE; - } - return (void *) sysStackLo; - } - case OS_ARENA_SHARED: - return (void *)HW_SHARED_ARENA_HI_DEFAULT; - case OS_ARENA_WRAM_MAIN: - return (void *)OSi_WRAM_MAIN_ARENA_HI_DEFAULT; - default: - return NULL; - } -} - -ARM_FUNC void* OS_GetInitArenaLo(OSArenaId id) { - switch (id) { - case OS_ARENA_MAIN: - return (void *)SDK_MAIN_ARENA_LO; - case OS_ARENA_MAINEX: - if (!OSi_MainExArenaEnabled || (OS_GetConsoleType() & OS_CONSOLE_SIZE_MASK) == OS_CONSOLE_SIZE_4MB) { - return NULL; - } else { - return (void *)SDK_SECTION_ARENA_EX_START; - } - case OS_ARENA_ITCM: - return (void *)SDK_SECTION_ARENA_ITCM_START; - case OS_ARENA_DTCM: - return (void *)SDK_SECTION_ARENA_DTCM_START; - case OS_ARENA_SHARED: - return (void *)HW_SHARED_ARENA_LO_DEFAULT; - case OS_ARENA_WRAM_MAIN: - return (void *)OSi_WRAM_MAIN_ARENA_LO_DEFAULT; - default: - return NULL; - } -} - -ARM_FUNC void OS_SetArenaHi(OSArenaId id, void* newHi) { - OSi_GetArenaInfo().hi[id] = newHi; -} - -ARM_FUNC void OS_SetArenaLo(OSArenaId id, void* newLo) { - OSi_GetArenaInfo().lo[id] = newLo; -} - -ARM_FUNC void* OS_AllocFromArenaLo(OSArenaId id, u32 size, u32 align) { - void* ptr; - u8* arenaLo; - ptr = OS_GetArenaLo(id); - if (!ptr) { - return NULL; - } - arenaLo = ptr = (void *)OSi_ROUND(ptr, align); - arenaLo += size; - arenaLo = (u8 *)OSi_ROUND(arenaLo, align); - if (arenaLo > (u8*)OS_GetArenaHi(id)) { - return NULL; - } - OS_SetArenaLo(id, arenaLo); - - return ptr; -} - -ARM_FUNC void* OS_AllocFromArenaHi(OSArenaId id, u32 size, u32 align) { - void* ptr; - u8* arenaHi; - - arenaHi = OS_GetArenaHi(id); - if (!arenaHi) { - return NULL; - } - - arenaHi = (u8 *)OSi_TRUNC(arenaHi, align); - arenaHi -= size; - arenaHi = ptr = (void *)OSi_TRUNC(arenaHi, align); - - if (arenaHi < (u8*)OS_GetArenaLo(id)) { - return NULL; - } - - OS_SetArenaHi(id, arenaHi); - - return ptr; -} -- cgit v1.2.3