diff --git a/test/agent/src/bindings/bindings.h b/test/agent/src/bindings/bindings.h index fc88c69edd3adec0ecb28513085e7c6558749bdf..2ac76e1f319cc0ddce8e317d61a03de45a578ad3 100644 --- a/test/agent/src/bindings/bindings.h +++ b/test/agent/src/bindings/bindings.h @@ -26,5 +26,15 @@ /* Agent */ #include "utils.h" +#define DEFINE_AND_EXPORT(NAME, VALUE, TYPE) \ + do { \ + scm_c_define(NAME, TYPE(VALUE)); \ + scm_c_export(NAME, NULL); \ + } while (0) + +#define DEFINE_INT(NAME) DEFINE_AND_EXPORT(#NAME, NAME, scm_from_int) +#define DEFINE_UINT(NAME) DEFINE_AND_EXPORT(#NAME, NAME, scm_from_uint) +#define DEFINE_UINT32(NAME) DEFINE_AND_EXPORT(#NAME, NAME, scm_from_uint32) + extern void define_primitive(const char* name, int req, int opt, int rst, void* func); extern void install_scheme_primitives();