+#ifdef XNU_KERNEL_PRIVATE
+
+#include <mach/vm_types.h>
+
+#define MALLOC(space, cast, size, type, flags) \
+ ({ VM_ALLOC_SITE_STATIC(0, 0); \
+ (space) = (cast)__MALLOC(size, type, flags, &site); })
+
+#define REALLOC(space, cast, addr, size, type, flags) \
+ ({ VM_ALLOC_SITE_STATIC(0, 0); \
+ (space) = (cast)__REALLOC(addr, size, type, flags, &site); })
+
+#define _MALLOC(size, type, flags) \
+ ({ VM_ALLOC_SITE_STATIC(0, 0); \
+ __MALLOC(size, type, flags, &site); })
+#define _REALLOC(addr, size, type, flags) \
+ ({ VM_ALLOC_SITE_STATIC(0, 0); \
+ __REALLOC(addr, size, type, flags, &site); })
+
+#define _MALLOC_ZONE(size, type, flags) \
+ ({ VM_ALLOC_SITE_STATIC(0, 0); \
+ __MALLOC_ZONE(size, type, flags, &site); })
+
+#define FREE(addr, type) \
+ _FREE((void *)addr, type)
+
+#define MALLOC_ZONE(space, cast, size, type, flags) \
+ (space) = (cast)_MALLOC_ZONE(size, type, flags)
+
+#define FREE_ZONE(addr, size, type) \
+ _FREE_ZONE((void *)addr, size, type)
+
+extern void *__MALLOC(
+ size_t size,
+ int type,
+ int flags,
+ vm_allocation_site_t *site) __attribute__((alloc_size(1)));
+
+extern void _FREE(
+ void *addr,
+ int type);
+
+extern void *__REALLOC(
+ void *addr,
+ size_t size,
+ int type,
+ int flags,
+ vm_allocation_site_t *site) __attribute__((alloc_size(2)));
+
+extern void *__MALLOC_ZONE(
+ size_t size,
+ int type,
+ int flags,
+ vm_allocation_site_t *site);
+
+extern void _FREE_ZONE(
+ void *elem,
+ size_t size,
+ int type);
+
+#else /* XNU_KERNEL_PRIVATE */
+