diff options
Diffstat (limited to 'src/kernel/memorymanagement.h')
-rw-r--r-- | src/kernel/memorymanagement.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/kernel/memorymanagement.h b/src/kernel/memorymanagement.h index 299fa4c..6dee417 100644 --- a/src/kernel/memorymanagement.h +++ b/src/kernel/memorymanagement.h @@ -2,17 +2,27 @@ #define MEMORYMANAGEMENT_H #include <stddef.h> +#include <stdbool.h> + #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; - uint32_t prev_ptr; - uint32_t free_ptr; + 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 |