GBDK 2020 Docs  4.2.0
API Documentation for GBDK 2020
incbin.h
Go to the documentation of this file.
1 
10 #ifndef _INCBIN_H
11 #define _INCBIN_H
12 
13 #include <stdint.h>
14 
15 
25 #define INCBIN_EXTERN(VARNAME) extern const uint8_t VARNAME[]; \
26 extern const void __size_ ## VARNAME; \
27 extern const void __bank_ ## VARNAME;
28 
37 #define INCBIN_SIZE(VARNAME) ( (uint16_t) & __size_ ## VARNAME )
38 
47 #ifndef BANK
48 #define BANK(VARNAME) ( (uint8_t) & __bank_ ## VARNAME )
49 #endif
50 
68 #define INCBIN(VARNAME, FILEPATH) void __func_ ## VARNAME(void) __banked __naked { \
69 __asm \
70 _ ## VARNAME:: \
71 1$: \
72  .incbin FILEPATH \
73 2$: \
74  ___size_ ## VARNAME = (2$-1$) \
75  .globl ___size_ ## VARNAME \
76  .local b___func_ ## VARNAME \
77  ___bank_ ## VARNAME = b___func_ ## VARNAME \
78  .globl ___bank_ ## VARNAME \
79 __endasm; \
80 }
81 
82 #endif // _INCBIN_H