summaryrefslogtreecommitdiffstats
path: root/testsuites/libtests
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-12-13 06:18:36 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-02-04 06:06:41 +0100
commiteea21eaca117ecd98afea164e1808d6530ef487f (patch)
treeca4e15da28b71a5ecca5fc357798261a39b3f250 /testsuites/libtests
parentbsps: Remove uses of BSP_GET_WORK_AREA_DEBUG (diff)
downloadrtems-eea21eaca117ecd98afea164e1808d6530ef487f.tar.bz2
bsps: Rework work area initialization
The work area initialization was done by the BSP through bsp_work_area_initialize(). This approach predated the system initialization through the system initialization linker set. The workspace and C program heap were unconditionally initialized. The aim is to support RTEMS application configurations which do not need the workspace and C program heap. In these configurations, the workspace and C prgram heap should not get initialized. Change all bsp_work_area_initialize() to implement _Memory_Get() instead. Move the dirty memory, sbrk(), per-CPU data, workspace, and malloc() heap initialization into separate system initialization steps. This makes it also easier to test the individual initialization steps. This change adds a dependency to _Heap_Extend() to all BSPs. This dependency will be removed in a follow up change. Update #3838.
Diffstat (limited to 'testsuites/libtests')
-rw-r--r--testsuites/libtests/malloc04/init.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/testsuites/libtests/malloc04/init.c b/testsuites/libtests/malloc04/init.c
index 632ea28fc4..b568c83d85 100644
--- a/testsuites/libtests/malloc04/init.c
+++ b/testsuites/libtests/malloc04/init.c
@@ -78,7 +78,12 @@ rtems_task Init(
)
{
Heap_Control *real_heap;
- Heap_Area area;
+ Memory_Area area;
+ Memory_Information mem = {
+ .count = 0,
+ .areas = &area
+ };
+
void *p;
TEST_BEGIN();
@@ -93,9 +98,8 @@ rtems_task Init(
sbrk_count = 0;
offset = 256;
- area.begin = &Malloc_Heap [0];
- area.size = offset;
- RTEMS_Malloc_Initialize( &area, 1, NULL );
+ _Memory_Initialize_by_size( &area, &Malloc_Heap[ 0 ], offset );
+ RTEMS_Malloc_Initialize( &mem, NULL );
errno = 0;
p = malloc( 256 );
@@ -109,9 +113,8 @@ rtems_task Init(
sbrk_count = 0;
offset = 256;
- area.begin = &Malloc_Heap [0];
- area.size = offset;
- RTEMS_Malloc_Initialize( &area, 1, NULL );
+ _Memory_Initialize_by_size( &area, &Malloc_Heap[ 0 ], offset );
+ RTEMS_Malloc_Initialize( &mem, NULL );
p = malloc(1);
rtems_test_assert( p != NULL );
@@ -125,9 +128,8 @@ rtems_task Init(
sbrk_count = 0;
offset = 256;
- area.begin = &Malloc_Heap [0];
- area.size = offset;
- RTEMS_Malloc_Initialize( &area, 1, NULL );
+ _Memory_Initialize_by_size( &area, &Malloc_Heap[ 0 ], offset );
+ RTEMS_Malloc_Initialize( &mem, NULL );
errno = 0;
p = malloc( sizeof( Malloc_Heap ) );
@@ -139,9 +141,8 @@ rtems_task Init(
sbrk_count = 0;
offset = 256;
- area.begin = &Malloc_Heap [0];
- area.size = offset;
- RTEMS_Malloc_Initialize( &area, 1, NULL );
+ _Memory_Initialize_by_size( &area, &Malloc_Heap[ 0 ], offset );
+ RTEMS_Malloc_Initialize( &mem, NULL );
p = malloc( 128 );
rtems_test_assert( p != NULL );
@@ -155,9 +156,8 @@ rtems_task Init(
sbrk_count = -1;
offset = 256;
- area.begin = &Malloc_Heap [0];
- area.size = offset;
- RTEMS_Malloc_Initialize( &area, 1, NULL );
+ _Memory_Initialize_by_size( &area, &Malloc_Heap[ 0 ], offset );
+ RTEMS_Malloc_Initialize( &mem, NULL );
errno = 0;
p = malloc( 256 );