ogrebattle64/include/segment_symbols.h

91 lines
3.0 KiB
C

#ifndef SEGMENT_SYMBOLS_H
#define SEGMENT_SYMBOLS_H
#include <ultra64.h>
#include <libc/stdint.h>
#define DECLARE_VRAM_SEGMENT(name) \
extern u32 name ## _VRAM[]; \
extern u32 name ## _VRAM_END[]
#define DECLARE_ROM_SEGMENT(name) \
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[]
#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) ((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_TEXT_START(segment) ((void*)segment ## _TEXT_START)
#define SEGMENT_TEXT_END(segment) ((void*)segment ## _TEXT_END)
#define SEGMENT_TEXT_SIZE(segment) (SEGMENT_TEXT_END(segment) - SEGMENT_TEXT_START(segment))
#define SEGMENT_DATA_START(segment) ((void*)segment ## _DATA_START)
#define SEGMENT_DATA_END(segment) ((void*)segment ## _DATA_END)
#define SEGMENT_DATA_SIZE(segment) (SEGMENT_DATA_END(segment) - SEGMENT_DATA_START(segment))
#define SEGMENT_RODATA_START(segment) ((void*)segment ## _RODATA_START)
#define SEGMENT_RODATA_END(segment) ((void*)segment ## _RODATA_END)
#define SEGMENT_RODATA_SIZE(segment) (SEGMENT_RODATA_END(segment) - SEGMENT_RODATA_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);
DECLARE_ROM_SEGMENT(n64_wave_data);
DECLARE_ROM_SEGMENT(n64_wave_table_00);
DECLARE_ROM_SEGMENT(n64_wave_table_01);
DECLARE_SEGMENT(overlay_66E10);
DECLARE_SEGMENT(overlay_6E660);
DECLARE_SEGMENT(overlay_E48F0);
DECLARE_SEGMENT(overlay_EBBB0);
DECLARE_SEGMENT(overlay_F9FF0);
DECLARE_SEGMENT(overlay_FA5D0);
DECLARE_SEGMENT(overlay_FA5E0);
DECLARE_SEGMENT(overlay_145210);
DECLARE_SEGMENT(overlay_14EBE0);
DECLARE_SEGMENT(overlay_71280);
DECLARE_SEGMENT(overlay_79730);
DECLARE_SEGMENT(overlay_87200);
#endif // SEGMENT_SYMBOLS_H