#include <stdint.h>
typedef uint32_t uid_t;

#ifdef __APPLE__
  struct dyld_interpose {
    const void * replacement;
    const void * replacee;
  };
  #define WRAPPER(ret, name) static ret _fakeroot_wrapper_##name
  #define WRAPPER_DEF(name) \
    __attribute__((used)) static struct dyld_interpose _fakeroot_interpose_##name \
      __attribute__((section("__DATA,__interpose"))) = { &_fakeroot_wrapper_##name, &name };
#else
  #define WRAPPER(ret, name) ret name
  #define WRAPPER_DEF(name)
#endif

WRAPPER(uid_t, geteuid)(const char * path, int flags, ...)
{
    return 0; // Fake root
}
WRAPPER_DEF(geteuid)

WRAPPER(uid_t, getuid)(const char * path, int flags, ...)
{
    return 0; // Fake root
}
WRAPPER_DEF(getuid)
