#ifndef MEMORYMANAGEMENT_H #define MEMORYMANAGEMENT_H #include #include #include "stdint.h" typedef struct memory_chunk_t { struct memory_chunk_t *next; struct memory_chunk_t *prev; bool allocated; size_t size; } memory_chunk_t; typedef struct { size_t offset; size_t size; memory_chunk_t *first; } memory_manager_t; void memory_manager_init( memory_manager_t *memory_manager, size_t offset, size_t size ); void *memory_manager_allocate( memory_manager_t *memory_manager, size_t size ); void memory_manager_deallocate( memory_manager_t *memory_manager, void **p ); size_t memory_manager_stats_used( memory_manager_t *memory_manager ); size_t memory_manager_stats_free( memory_manager_t *memory_manager ); #endif // MEMORYMANAGEMENT_H