From 006e923a3d1d0e2fc9af3cf2ba7ab8ffba584051 Mon Sep 17 00:00:00 2001 From: gijs Date: Thu, 28 Sep 2023 23:37:58 +0200 Subject: [PATCH] Added a couple `_SEGMENT_` macros --- include/segment_symbols.h | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/include/segment_symbols.h b/include/segment_symbols.h index 7c413cf..a279d08 100644 --- a/include/segment_symbols.h +++ b/include/segment_symbols.h @@ -12,11 +12,21 @@ extern u32 name ## _ROM_START[]; \ extern u32 name ## _ROM_END[] +#define DECLARE_TEXT_SEGMENT(name) \ + extern u32 name ## _TEXT_START[]; \ + extern u32 name ## _TEXT_END[]; \ + extern u32 name ## _TEXT_SIZE + #define DECLARE_DATA_SEGMENT(name) \ extern u32 name ## _DATA_START[]; \ extern u32 name ## _DATA_END[]; \ extern u32 name ## _DATA_SIZE +#define DECLARE_RODATA_SEGMENT(name) \ + extern u32 name ## _RODATA_START[]; \ + extern u32 name ## _RODATA_END[]; \ + extern u32 name ## _RODATA_SIZE + #define DECLARE_BSS_SEGMENT(name) \ extern u32 name ## _BSS_START[]; \ extern u32 name ## _BSS_END[] @@ -24,22 +34,22 @@ #define DECLARE_SEGMENT(name) \ DECLARE_VRAM_SEGMENT(name); \ DECLARE_ROM_SEGMENT(name); \ + DECLARE_TEXT_SEGMENT(name); \ DECLARE_DATA_SEGMENT(name); \ + DECLARE_RODATA_SEGMENT(name); \ DECLARE_BSS_SEGMENT(name) #define SEGMENT_VRAM_START(segment) (segment ## _VRAM) #define SEGMENT_VRAM_END(segment) (segment ## _VRAM_END) -#define SEGMENT_VRAM_SIZE(segment) ((uintptr_t)SEGMENT_VRAM_END(segment) - (uintptr_t)SEGMENT_VRAM_START(segment)) +#define SEGMENT_VRAM_SIZE(segment) ((void*)SEGMENT_VRAM_END(segment) - (void*)SEGMENT_VRAM_START(segment)) #define SEGMENT_ROM_START(segment) ((void*)segment ## _ROM_START) #define SEGMENT_ROM_END(segment) ((void*)segment ## _ROM_END) #define SEGMENT_ROM_SIZE(segment) (SEGMENT_ROM_END(segment) - SEGMENT_ROM_START(segment)) -#define SEGMENT_DATA_SIZE_CONST(segment) ((RomOffset)segment ## _DATA_SIZE) - -#define SEGMENT_BSS_START(segment) (segment ## _BSS_START) -#define SEGMENT_BSS_END(segment) (segment ## _BSS_END) -#define SEGMENT_BSS_SIZE(segment) ((uintptr_t)SEGMENT_BSS_END(segment) - (uintptr_t)SEGMENT_BSS_START(segment)) +#define SEGMENT_BSS_START(segment) ((void*)segment ## _BSS_START) +#define SEGMENT_BSS_END(segment) ((void*)segment ## _BSS_END) +#define SEGMENT_BSS_SIZE(segment) (SEGMENT_BSS_END(segment) - SEGMENT_BSS_START(segment)) DECLARE_ROM_SEGMENT(n64_ptr_tables_v2_00); DECLARE_ROM_SEGMENT(n64_ptr_tables_v2_01); @@ -48,5 +58,7 @@ DECLARE_ROM_SEGMENT(n64_wave_data); DECLARE_ROM_SEGMENT(n64_wave_table_00); DECLARE_ROM_SEGMENT(n64_wave_table_01); +DECLARE_SEGMENT(overlay_71280); + #endif // SEGMENT_SYMBOLS_H \ No newline at end of file