summaryrefslogtreecommitdiff
path: root/src/kernel/memorymanagement.h
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2017-07-05 13:53:42 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2017-07-05 13:53:42 +0200
commitc55bc80baa51dc1028cbbae8a02540cfe4c56557 (patch)
treecc8f9e327d9e68eb6aee9ca781838c473074fa60 /src/kernel/memorymanagement.h
parentb281252aac949fe54057608edb20cdfbe20eaed0 (diff)
downloadabaos-c55bc80baa51dc1028cbbae8a02540cfe4c56557.tar.gz
abaos-c55bc80baa51dc1028cbbae8a02540cfe4c56557.tar.bz2
'mem' command shows memory usage of kernel heap now
implemented a malloc/free and memory manager (simplest possible implementation, just allocating linearly and never freeing)
Diffstat (limited to 'src/kernel/memorymanagement.h')
-rw-r--r--src/kernel/memorymanagement.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/kernel/memorymanagement.h b/src/kernel/memorymanagement.h
new file mode 100644
index 0000000..16f0b29
--- /dev/null
+++ b/src/kernel/memorymanagement.h
@@ -0,0 +1,16 @@
+#ifndef MEMORYMANAGEMENT_H
+#define MEMORYMANAGEMENT_H
+
+#include "stddef.h"
+
+typedef struct {
+ size_t offset;
+ size_t size;
+ uint32_t free_ptr;
+} 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 );
+
+#endif // MEMORYMANAGEMENT_H