summaryrefslogtreecommitdiff
path: root/src/kernel/memorymanagement.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/memorymanagement.h')
-rw-r--r--src/kernel/memorymanagement.h14
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