forked from Imagelibrary/rtems
config: Initialize task stack allocator on demand
Register a custom task stack allocator initialization handler only if necessary.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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() );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user