diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h index f8a4eb23cf..3741c9a706 100644 --- a/cpukit/include/rtems/confdefs.h +++ b/cpukit/include/rtems/confdefs.h @@ -2633,20 +2633,14 @@ struct _reent *__getreent(void) #error "CONFIGURE_TASK_STACK_ALLOCATOR and CONFIGURE_TASK_STACK_DEALLOCATOR must be both defined or both undefined" #endif - /** - * This is the primary Configuration Table for this application. - */ - const rtems_configuration_table Configuration = { - #ifdef RTEMS_SMP - #ifdef _CONFIGURE_SMP_APPLICATION - true - #else - false - #endif - #endif - }; - #ifdef RTEMS_SMP + const bool _SMP_Is_enabled = + #ifdef _CONFIGURE_SMP_APPLICATION + true; + #else + false; + #endif + const uint32_t _SMP_Processor_configured_maximum = _CONFIGURE_MAXIMUM_PROCESSORS; #endif diff --git a/cpukit/include/rtems/config.h b/cpukit/include/rtems/config.h index 5550397623..4811d0e704 100644 --- a/cpukit/include/rtems/config.h +++ b/cpukit/include/rtems/config.h @@ -72,28 +72,6 @@ typedef Stack_Allocator_allocate rtems_stack_allocate_hook; */ typedef Stack_Allocator_free rtems_stack_free_hook; -/* - * The following records define the Configuration Table. The - * information contained in this table is required in all - * RTEMS systems, whether single or multiprocessor. This - * table primarily defines the following: - * - * + location and size of the RTEMS Workspace - * + microseconds per clock tick - * + clock ticks per task timeslice - * + required number of each object type for each API configured - */ -typedef struct { - #ifdef RTEMS_SMP - bool smp_enabled; - #endif -} rtems_configuration_table; - -/** - * This is the configuration table generated by confdefs.h. - */ -extern const rtems_configuration_table Configuration; - /* * Some handy macros to avoid dependencies on either the BSP * or the exact format of the configuration table. @@ -182,13 +160,8 @@ uint32_t rtems_configuration_get_maximum_extensions( void ); * @retval true SMP mode of operation is enabled. * @retval false Otherwise. */ -#ifdef RTEMS_SMP - #define rtems_configuration_is_smp_enabled() \ - (Configuration.smp_enabled) -#else - #define rtems_configuration_is_smp_enabled() \ - false -#endif +#define rtems_configuration_is_smp_enabled() \ + (_SMP_Is_enabled) /** * @brief Returns the configured maximum count of processors. diff --git a/cpukit/include/rtems/score/smp.h b/cpukit/include/rtems/score/smp.h index 2722fbdcee..36cfd981ab 100644 --- a/cpukit/include/rtems/score/smp.h +++ b/cpukit/include/rtems/score/smp.h @@ -36,6 +36,19 @@ extern "C" { * @{ */ +/** + * @brief Indicates if SMP is enabled. + * + * In SMP configurations, this constant is defined by the application + * configuration via , otherwise it is a compile-time + * constant with the value false. + */ +#if defined(RTEMS_SMP) + extern const bool _SMP_Is_enabled; +#else + #define _SMP_Is_enabled false +#endif + /** * @brief The configured processor maximum. * diff --git a/cpukit/libmisc/monitor/mon-mpci.c b/cpukit/libmisc/monitor/mon-mpci.c index 9616518473..f6914aa525 100644 --- a/cpukit/libmisc/monitor/mon-mpci.c +++ b/cpukit/libmisc/monitor/mon-mpci.c @@ -75,7 +75,7 @@ rtems_monitor_mpci_next( _Objects_Allocator_lock(); *next_id += 1; - return &Configuration; + return (const void *) (uintptr_t) 1; failed: *next_id = RTEMS_OBJECT_ID_FINAL;