From ad85c00966451ee793ced8ee1141a55b3911394f Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 14 Feb 2020 13:48:18 +0100 Subject: config: Add _Workspace_Is_unified Move the unified workspace configuration constant out of the configuration table. Provide a default definition of the unified workspace constant. Update #3875. --- cpukit/include/rtems/confdefs.h | 9 ++++----- cpukit/include/rtems/config.h | 10 +--------- cpukit/include/rtems/score/wkspacedata.h | 8 ++++++++ 3 files changed, 13 insertions(+), 14 deletions(-) (limited to 'cpukit/include') diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h index 6057bf4ac5..33b1aa67d4 100644 --- a/cpukit/include/rtems/confdefs.h +++ b/cpukit/include/rtems/confdefs.h @@ -2637,11 +2637,6 @@ struct _reent *__getreent(void) * This is the primary Configuration Table for this application. */ const rtems_configuration_table Configuration = { - #ifdef CONFIGURE_UNIFIED_WORK_AREAS /* true for unified work areas */ - true, - #else - false, - #endif #ifdef RTEMS_SMP #ifdef _CONFIGURE_SMP_APPLICATION true, @@ -2656,6 +2651,10 @@ struct _reent *__getreent(void) const uintptr_t _Workspace_Size = CONFIGURE_EXECUTIVE_RAM_SIZE; + #ifdef CONFIGURE_UNIFIED_WORK_AREAS + const bool _Workspace_Is_unified = true; + #endif + #ifdef CONFIGURE_DIRTY_MEMORY RTEMS_SYSINIT_ITEM( _Memory_Dirty_free_areas, diff --git a/cpukit/include/rtems/config.h b/cpukit/include/rtems/config.h index 0b5527c76d..6489e4e4e8 100644 --- a/cpukit/include/rtems/config.h +++ b/cpukit/include/rtems/config.h @@ -83,14 +83,6 @@ typedef Stack_Allocator_free rtems_stack_free_hook; * + required number of each object type for each API configured */ typedef struct { - /** - * @brief Specifies if a unified work area is used or not. - * - * If this element is @a true, then the RTEMS Workspace and the C Program - * Heap use the same heap, otherwise they use separate heaps. - */ - bool unified_work_area; - #ifdef RTEMS_SMP bool smp_enabled; #endif @@ -111,7 +103,7 @@ extern const rtems_configuration_table Configuration; */ #define rtems_configuration_get_unified_work_area() \ - (Configuration.unified_work_area) + (_Workspace_Is_unified) /** * @brief Return if the stack allocator avoids the work space. diff --git a/cpukit/include/rtems/score/wkspacedata.h b/cpukit/include/rtems/score/wkspacedata.h index d4b5dd1c3b..613a320dfe 100644 --- a/cpukit/include/rtems/score/wkspacedata.h +++ b/cpukit/include/rtems/score/wkspacedata.h @@ -57,6 +57,14 @@ extern "C" { */ extern const uintptr_t _Workspace_Size; +/** + * @brief Indicates if the workspace and C program heap are unified. + * + * This constant is defined by the application configuration via + * . + */ +extern const bool _Workspace_Is_unified; + /** @} */ #ifdef __cplusplus -- cgit v1.2.3