summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2017-07-13 15:58:03 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2017-07-13 15:58:03 +0200
commit7162c5eed91a8e22a4b768110011df28bfd86455 (patch)
tree759c67681e777f9848a136ccc5ba9924fbb4db3e
parentebb0e5f9fe6707133dacbe70f80831cd1aa5c974 (diff)
downloadabaos-7162c5eed91a8e22a4b768110011df28bfd86455.tar.gz
abaos-7162c5eed91a8e22a4b768110011df28bfd86455.tar.bz2
forgot to add test_malloc.c
remove buffer memory functions again (can be done with a simple cast in the caller)
-rw-r--r--src/kernel/memorymanagement.c10
-rw-r--r--src/kernel/memorymanagement.h1
-rw-r--r--tests/libc/test_malloc.c24
3 files changed, 24 insertions, 11 deletions
diff --git a/src/kernel/memorymanagement.c b/src/kernel/memorymanagement.c
index bc7252e..c56d2b9 100644
--- a/src/kernel/memorymanagement.c
+++ b/src/kernel/memorymanagement.c
@@ -14,16 +14,6 @@ void memory_manager_init( memory_manager_t *memory_manager, size_t offset, size_
memory_manager->prev_ptr = 0xFFFFFFFF;
}
-void memory_manager_init_with_buf( memory_manager_t *memory_manager, void *buf, size_t size )
-{
- memset( memory_manager, 0, sizeof( memory_manager_t ) );
-
- memory_manager->offset = (uint32_t)buf;
- memory_manager->size = size;
- memory_manager->free_ptr = memory_manager->offset;
- memory_manager->prev_ptr = 0xFFFFFFFF;
-}
-
void *memory_manager_allocate( memory_manager_t *memory_manager, size_t size )
{
void *p = NULL;
diff --git a/src/kernel/memorymanagement.h b/src/kernel/memorymanagement.h
index 5ea2618..647c05d 100644
--- a/src/kernel/memorymanagement.h
+++ b/src/kernel/memorymanagement.h
@@ -11,7 +11,6 @@ typedef struct {
} memory_manager_t;
void memory_manager_init( memory_manager_t *memory_manager, size_t offset, size_t size );
-void memory_manager_init_with_buf( memory_manager_t *memory_manager, void *buf, 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 );
diff --git a/tests/libc/test_malloc.c b/tests/libc/test_malloc.c
new file mode 100644
index 0000000..0f74fad
--- /dev/null
+++ b/tests/libc/test_malloc.c
@@ -0,0 +1,24 @@
+#include "stdlib.h"
+#include "string.h"
+
+#define HEAP_SIZE 128 * 1024
+
+int main( void )
+{
+ memory_manager_t memory_manager;
+ char buf[HEAP_SIZE];
+ uint32_t heap_offset = (uint32_t)&buf;
+ size_t heap_size = HEAP_SIZE;
+ memory_manager_init( &memory_manager, heap_offset, heap_size );
+ __stdlib_set_memory_manager( &memory_manager );
+
+ char *s;
+ char *s1 = "test_string";
+
+ s = (char *)malloc( strlen( s1 ) + 1 );
+ size_t n = strlcpy( s, s1, strlen( s1 ) + 1 );
+ if( n != 11 ) return 1;
+ if( strcmp( s, s1 ) != 0 ) return 1;
+
+ return 0;
+}