diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2017-07-05 13:53:42 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2017-07-05 13:53:42 +0200 |
commit | c55bc80baa51dc1028cbbae8a02540cfe4c56557 (patch) | |
tree | cc8f9e327d9e68eb6aee9ca781838c473074fa60 /src/libc/stdlib.c | |
parent | b281252aac949fe54057608edb20cdfbe20eaed0 (diff) | |
download | abaos-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/libc/stdlib.c')
-rw-r--r-- | src/libc/stdlib.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/libc/stdlib.c b/src/libc/stdlib.c index 46bdce8..9150431 100644 --- a/src/libc/stdlib.c +++ b/src/libc/stdlib.c @@ -45,4 +45,23 @@ char *itoa( int v, char *s, int base ) return s; } + +// TODO: we should have a global memory manager and one per +// user process later +static memory_manager_t *stdlib_memory_manager = NULL; +void *malloc( size_t size ) +{ + return memory_manager_allocate( stdlib_memory_manager, size ); +} + +void free( void *p ) +{ + memory_manager_deallocate( stdlib_memory_manager, &p ); +} + +void __stdlib_set_memory_manager( memory_manager_t *memory_manager ) +{ + stdlib_memory_manager = memory_manager; +} + |