|
@@ -63,15 +63,23 @@ to your Makefile and declare |
|
|
at the root of a .c or .cpp source file. Note that special characters are replaced with "_". Then use |
|
|
at the root of a .c or .cpp source file. Note that special characters are replaced with "_". Then use |
|
|
BINARY_START(Test_dat) |
|
|
BINARY_START(Test_dat) |
|
|
BINARY_END(Test_dat) |
|
|
BINARY_END(Test_dat) |
|
|
to reference the data beginning and end as a void* array and |
|
|
|
|
|
|
|
|
to reference the data as a char array and |
|
|
BINARY_SIZE(Test_dat) |
|
|
BINARY_SIZE(Test_dat) |
|
|
to get its size in bytes. |
|
|
to get its size in bytes. |
|
|
*/ |
|
|
*/ |
|
|
#define BINARY(sym) extern char _binary_##sym##_start, _binary_##sym##_end, _binary_##sym##_size |
|
|
|
|
|
#define BINARY_START(sym) ((void *) &_binary_##sym##_start) |
|
|
|
|
|
#define BINARY_END(sym) ((void *) &_binary_##sym##_end) |
|
|
|
|
|
// The symbol "_binary_##sym##_size" doesn't seem to be valid after a plugin is dynamically loaded, so simply take the difference between the two addresses. |
|
|
|
|
|
#define BINARY_SIZE(sym) ((size_t) (&_binary_##sym##_end - &_binary_##sym##_start)) |
|
|
|
|
|
|
|
|
#ifdef ARCH_MAC |
|
|
|
|
|
// Use output from `xxd -i` |
|
|
|
|
|
#define BINARY(sym) extern unsigned char sym[]; extern unsigned int sym##len |
|
|
|
|
|
#define BINARY_START(sym) ((void*) sym) |
|
|
|
|
|
#define BINARY_END(sym) ((void*) sym + sym##len) |
|
|
|
|
|
#define BINARY_SIZE(sym) (sym##len) |
|
|
|
|
|
#else |
|
|
|
|
|
#define BINARY(sym) extern char _binary_##sym##_start, _binary_##sym##_end, _binary_##sym##_size |
|
|
|
|
|
#define BINARY_START(sym) ((void*) &_binary_##sym##_start) |
|
|
|
|
|
#define BINARY_END(sym) ((void*) &_binary_##sym##_end) |
|
|
|
|
|
// The symbol "_binary_##sym##_size" doesn't seem to be valid after a plugin is dynamically loaded, so simply take the difference between the two addresses. |
|
|
|
|
|
#define BINARY_SIZE(sym) ((size_t) (&_binary_##sym##_end - &_binary_##sym##_start)) |
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "util/math.hpp" |
|
|
#include "util/math.hpp" |
|
|