summaryrefslogtreecommitdiff
path: root/wrap.h
blob: 2053efd0af870eb398ab63d195e3c0e98a86e6cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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 */