Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include "black_magic.h"
- typedef int (*func) (void *, void *, size_t);
- #define NFUNCS 3
- int f0(void *dst, void *src, size_t n) { ... }
- int f1(void *dst, void *src, size_t n) { ... }
- int f2(void *dst, void *src, size_t n) { ... }
- func funcs[NFUNCS] = {
- f0, f1, f2
- };
- int _wrapper(void *dst, void *src, size_t n)
- {
- printf("%p %p %lu\n", dst, src, n);
- return ((func)black_magic_get_wrapped())(dst, src, n);
- }
- void init()
- {
- for (int i = 0; i < NFUNCS; i++) {
- black_magic_wrap(funcs[i], _wrapper);
- }
- }
- int main(void)
- {
- int x = 13;
- int y;
- init();
- ((func)(funcs[1]))(&y, &x, sizeof(int));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement