mirror of
https://gitlab.com/niansa/policytoolgui-oss.git
synced 2025-03-06 20:53:31 +01:00
25 lines
873 B
C
25 lines
873 B
C
#define STR2(x) #x
|
|
#define STR(x) STR2(x)
|
|
|
|
#ifdef _WIN32
|
|
#define INCBIN_SECTION ".rdata, \"dr\""
|
|
#else
|
|
#define INCBIN_SECTION ".rodata"
|
|
#endif
|
|
|
|
// this aligns start address to 16 and terminates byte array with explict 0
|
|
// which is not really needed, feel free to change it to whatever you want/need
|
|
#define INCBIN(name, file) \
|
|
__asm__(".section " INCBIN_SECTION "\n" \
|
|
".global incbin_" STR(name) "_start\n" \
|
|
".balign 16\n" \
|
|
"incbin_" STR(name) "_start:\n" \
|
|
".incbin \"" file "\"\n" \
|
|
\
|
|
".global incbin_" STR(name) "_end\n" \
|
|
".balign 1\n" \
|
|
"incbin_" STR(name) "_end:\n" \
|
|
".byte 0\n" \
|
|
); \
|
|
extern __attribute__((aligned(16))) const char incbin_ ## name ## _start[]; \
|
|
extern const char incbin_ ## name ## _end[]
|