#pragma once #include "module/ModuleData.h" #include #include #include extern uint8_t gInitCalled; extern MEMHeapHandle gHeapHandle; extern module_information_t gModuleInformation; extern std::vector> gLoadedModules; extern std::unique_ptr gModuleDataInfo; #define MEMORY_REGION_START 0x00800000 #define MEMORY_REGION_SIZE 0x00800000 #define CUSTOM_RPX_LOADER_RETURN_CODE 0x00009000 // We have to skip the first 0x00009000 bytes because it's still used #define RELOCATOR_SIZE 0x130000 // Maximum size of the wumsloader, needs to match the one defined in link.ld #define ENVIRONMENT_PATH_LENGTH 0x100 // Length of the EnvironmentPath. #define MEMORY_REGION_ENVIRONMENT_STRING_ADRR (MEMORY_REGION_START + CUSTOM_RPX_LOADER_RETURN_CODE + RELOCATOR_SIZE) #define MEMORY_REGION_USABLE_HEAP_START (MEMORY_REGION_ENVIRONMENT_STRING_ADRR + ENVIRONMENT_PATH_LENGTH) #define MEMORY_REGION_USABLE_HEAP_END (0x00FFF000) // We need to leave space for the BAT hook #define ENVRIONMENT_STRING ((char *) MEMORY_REGION_ENVIRONMENT_STRING_ADRR)