Defs: attributes
Macros
Section titled “Macros”GSECTION
Section titled “GSECTION”Objects from specific sections
#define GSECTION ((x)) __attribute__((section(x)))Objects from the gint’s uninitialized BSS section
#define GBSS __attribute__((section(".gint.bss")))GRODATA3
Section titled “GRODATA3”Additional sections that are only needed on SH3
#define GRODATA3 __attribute__((section(".gint.rodata.sh3")))GILRAM
Section titled “GILRAM”Objects for the ILRAM, XRAM and YRAM regions
#define GILRAM __attribute__((section(".ilram")))GUNUSED
Section titled “GUNUSED”Unused parameters or variables
#define GUNUSED __attribute__((unused))Used parameters or variables but invisible to the compiler
#define GUSED __attribute__((used))GINLINE
Section titled “GINLINE”Functions that must be inlined
#define GINLINE __attribute__((always_inline)) inlineGALIGNED
Section titled “GALIGNED”Aligned variables
#define GALIGNED ((x)) __attribute__((aligned(x)))GPACKED
Section titled “GPACKED”Packed structures. I require explicit alignment because if it’s unspecified, GCC cannot optimize access size, and reads to memory-mapped I/O with invalid access sizes silently fail - honestly you don’t want this to happen
#define GPACKED ((x)) __attribute__((packed, aligned(x)))GPACKEDENUM
Section titled “GPACKEDENUM”Packed enumerations
#define GPACKEDENUM __attribute__((packed))GTRANSPARENT
Section titled “GTRANSPARENT”Transparent unions
#define GTRANSPARENT __attribute__((transparent_union))GVISIBLE
Section titled “GVISIBLE”Functions and globals that are visible through whole-program optimization
#define GVISIBLE __attribute__((externally_visible))Weak symbols
#define GWEAK __attribute__((weak))GCONSTRUCTOR
Section titled “GCONSTRUCTOR”Constructors
#define GCONSTRUCTOR __attribute__((constructor))GNORETURN
Section titled “GNORETURN”Functions that do not return
#define GNORETURN __attribute__((noreturn))#define GDATA3 __attribute__((section(".gint.data.sh3")))#define GBSS3 __attribute__((section(".gint.bss.sh3")))#define GXRAM __attribute__((section(".xyram")))#define GYRAM __attribute__((section(".xyram")))#define GDESTRUCTOR __attribute__((destructor))