summaryrefslogtreecommitdiff
path: root/wrap.h
diff options
context:
space:
mode:
Diffstat (limited to 'wrap.h')
-rw-r--r--wrap.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/wrap.h b/wrap.h
new file mode 100644
index 0000000..2053efd
--- /dev/null
+++ b/wrap.h
@@ -0,0 +1,21 @@
+#ifndef WRAP_H
+#define WRAP_H
+
+#include <dlfcn.h>
+
+#include "defines.h"
+
+#define _REAL(n) __real_##n
+#define REAL(n) \
+ ({ \
+ if (!_REAL(n)) \
+ _REAL(n) = dlsym(RTLD_NEXT, XSTR(n)); \
+ _REAL(n); \
+ })
+
+extern void *(*_REAL(malloc))(size_t size);
+extern void (*_REAL(free))(void *ptr);
+extern void *(*_REAL(calloc))(size_t nmemb, size_t size);
+extern void *(*_REAL(realloc))(void *ptr, size_t size);
+
+#endif /* WRAP_H */