#pragma once #include #include #define MAGIC_COOKIE_BYTES 32 #define ADDRESS_BITS (8 * sizeof(void*)) void init_buddy(uint8_t *base, size_t size, uint8_t magic[MAGIC_COOKIE_BYTES]); void *allocate(size_t size); void liberate(void *base, size_t size); void debug_buddy(void); // "advanced features" void *reallocate(void *old, size_t old_size, size_t new_size); int reserve(void *start, size_t size);