config: Initialize task stack allocator on demand

Register a custom task stack allocator initialization handler only if
necessary.
This commit is contained in:
Sebastian Huber
2020-11-19 08:40:25 +01:00
parent c5af8aa070
commit 298b5ef162
2 changed files with 12 additions and 12 deletions

View File

@@ -150,10 +150,19 @@ const uintptr_t _Stack_Space_size = _CONFIGURE_STACK_SPACE_SIZE;
#endif
#ifdef CONFIGURE_TASK_STACK_ALLOCATOR_INIT
RTEMS_STATIC_ASSERT(
CONFIGURE_TASK_STACK_ALLOCATOR_INIT != NULL,
CONFIGURE_TASK_STACK_ALLOCATOR_INIT_MUST_NOT_BE_NULL
);
const Stack_Allocator_initialize _Stack_Allocator_initialize =
CONFIGURE_TASK_STACK_ALLOCATOR_INIT;
#else
const Stack_Allocator_initialize _Stack_Allocator_initialize = NULL;
RTEMS_SYSINIT_ITEM(
_Stack_Allocator_do_initialize,
RTEMS_SYSINIT_DIRTY_MEMORY,
RTEMS_SYSINIT_ORDER_MIDDLE
);
#endif
RTEMS_STATIC_ASSERT(
@@ -172,12 +181,6 @@ const uintptr_t _Stack_Space_size = _CONFIGURE_STACK_SPACE_SIZE;
const Stack_Allocator_free _Stack_Allocator_free =
CONFIGURE_TASK_STACK_DEALLOCATOR;
RTEMS_SYSINIT_ITEM(
_Stack_Allocator_do_initialize,
RTEMS_SYSINIT_DIRTY_MEMORY,
RTEMS_SYSINIT_ORDER_MIDDLE
);
#pragma GCC diagnostic pop
#elif defined(CONFIGURE_TASK_STACK_ALLOCATOR) \
|| defined(CONFIGURE_TASK_STACK_DEALLOCATOR)

View File

@@ -45,8 +45,5 @@ void _Stack_Allocator_do_initialize( void )
rtems_stack_allocate_init_hook init_hook;
init_hook = rtems_configuration_get_stack_allocate_init_hook();
if ( init_hook != NULL ) {
(*init_hook )( rtems_configuration_get_stack_space_size() );
}
( *init_hook )( rtems_configuration_get_stack_space_size() );
}