#ifndef _KERNEL_DEBUG_HEAPS_H
#define _KERNEL_DEBUG_HEAPS_H
#include <OS.h>
struct kernel_heap_implementation {
const char* name;
const size_t initial_size;
const size_t grow_size;
status_t (*init)(struct kernel_args* args, addr_t base, size_t size);
status_t (*init_post_area)();
status_t (*init_post_sem)();
status_t (*init_post_thread)();
void* (*memalign)(size_t alignment, size_t size, uint32 flags);
void* (*realloc)(void* address, size_t newSize, uint32 flags);
void (*free)(void* address, uint32 flags);
};
extern kernel_heap_implementation kernel_slab_heap;
extern kernel_heap_implementation kernel_guarded_heap;
extern kernel_heap_implementation kernel_debug_heap;
bool guarded_heap_replaces_object_cache(const char* name);
#endif