52 lines
1.7 KiB
C
52 lines
1.7 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_DATA_SEGMENT(name) \
|
|
extern u32 name ## _DATA_START[]; \
|
|
extern u32 name ## _DATA_END[]; \
|
|
extern u32 name ## _DATA_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_DATA_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_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))
|
|
|
|
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);
|
|
|
|
|
|
#endif // SEGMENT_SYMBOLS_H
|