Changeset 334e1d2 in rtems


Ignore:
Timestamp:
Jul 30, 2018, 5:35:26 AM (16 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
d906ce3
Parents:
44c2d393
git-author:
Sebastian Huber <sebastian.huber@…> (07/30/18 05:35:26)
git-committer:
Sebastian Huber <sebastian.huber@…> (07/30/18 06:06:18)
Message:

confdefs: Fix uniprocessor configuration

Introduce a new internal define _CONFIGURE_MAXIMUM_PROCESSORS and ensure
that it is _CONFIGURE_MAXIMUM_PROCESSORS > 1 only in SMP configurations.

This avoids to allocate data structures for non-existing additional
processors in uniprocessor configuration.

Update #3459.

Location:
cpukit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpukit/include/rtems/confdefs.h

    r44c2d393 r334e1d2  
    179179#endif
    180180
    181 #ifndef CONFIGURE_MAXIMUM_PROCESSORS
    182   #define CONFIGURE_MAXIMUM_PROCESSORS 1
     181/* Ensure that _CONFIGURE_MAXIMUM_PROCESSORS > 1 only in SMP configurations */
     182#if defined(CONFIGURE_MAXIMUM_PROCESSORS) && defined(RTEMS_SMP)
     183  #define _CONFIGURE_MAXIMUM_PROCESSORS CONFIGURE_MAXIMUM_PROCESSORS
     184#else
     185  #define _CONFIGURE_MAXIMUM_PROCESSORS 1
    183186#endif
    184187
     
    190193  #if !defined(CONFIGURE_DISABLE_SMP_CONFIGURATION)
    191194    #define _CONFIGURE_SMP_APPLICATION
    192   #elif CONFIGURE_MAXIMUM_PROCESSORS > 1
     195  #elif _CONFIGURE_MAXIMUM_PROCESSORS > 1
    193196    #error "CONFIGURE_DISABLE_SMP_CONFIGURATION and CONFIGURE_MAXIMUM_PROCESSORS > 1 makes no sense"
    194197  #endif
     
    740743    !defined(CONFIGURE_SCHEDULER_EDF_SMP) && \
    741744    !defined(CONFIGURE_SCHEDULER_CBS)
    742   #if defined(RTEMS_SMP) && CONFIGURE_MAXIMUM_PROCESSORS > 1
     745  #if defined(RTEMS_SMP) && _CONFIGURE_MAXIMUM_PROCESSORS > 1
    743746    /**
    744747     * If no scheduler is specified in an SMP configuration, the
     
    925928    /** Configure the context needed by the scheduler instance */
    926929    #define CONFIGURE_SCHEDULER \
    927       RTEMS_SCHEDULER_EDF_SMP(dflt, CONFIGURE_MAXIMUM_PROCESSORS)
     930      RTEMS_SCHEDULER_EDF_SMP(dflt, _CONFIGURE_MAXIMUM_PROCESSORS)
    928931
    929932    /** Configure the controls for this scheduler instance */
     
    992995          )
    993996        _CONFIGURE_SCHEDULER_ASSIGN
    994         #if CONFIGURE_MAXIMUM_PROCESSORS >= 2
     997        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 2
    995998          , _CONFIGURE_SCHEDULER_ASSIGN
    996999        #endif
    997         #if CONFIGURE_MAXIMUM_PROCESSORS >= 3
     1000        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 3
    9981001          , _CONFIGURE_SCHEDULER_ASSIGN
    9991002        #endif
    1000         #if CONFIGURE_MAXIMUM_PROCESSORS >= 4
     1003        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 4
    10011004          , _CONFIGURE_SCHEDULER_ASSIGN
    10021005        #endif
    1003         #if CONFIGURE_MAXIMUM_PROCESSORS >= 5
     1006        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 5
    10041007          , _CONFIGURE_SCHEDULER_ASSIGN
    10051008        #endif
    1006         #if CONFIGURE_MAXIMUM_PROCESSORS >= 6
     1009        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 6
    10071010          , _CONFIGURE_SCHEDULER_ASSIGN
    10081011        #endif
    1009         #if CONFIGURE_MAXIMUM_PROCESSORS >= 7
     1012        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 7
    10101013          , _CONFIGURE_SCHEDULER_ASSIGN
    10111014        #endif
    1012         #if CONFIGURE_MAXIMUM_PROCESSORS >= 8
     1015        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 8
    10131016          , _CONFIGURE_SCHEDULER_ASSIGN
    10141017        #endif
    1015         #if CONFIGURE_MAXIMUM_PROCESSORS >= 9
     1018        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 9
    10161019          , _CONFIGURE_SCHEDULER_ASSIGN
    10171020        #endif
    1018         #if CONFIGURE_MAXIMUM_PROCESSORS >= 10
     1021        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 10
    10191022          , _CONFIGURE_SCHEDULER_ASSIGN
    10201023        #endif
    1021         #if CONFIGURE_MAXIMUM_PROCESSORS >= 11
     1024        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 11
    10221025          , _CONFIGURE_SCHEDULER_ASSIGN
    10231026        #endif
    1024         #if CONFIGURE_MAXIMUM_PROCESSORS >= 12
     1027        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 12
    10251028          , _CONFIGURE_SCHEDULER_ASSIGN
    10261029        #endif
    1027         #if CONFIGURE_MAXIMUM_PROCESSORS >= 13
     1030        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 13
    10281031          , _CONFIGURE_SCHEDULER_ASSIGN
    10291032        #endif
    1030         #if CONFIGURE_MAXIMUM_PROCESSORS >= 14
     1033        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 14
    10311034          , _CONFIGURE_SCHEDULER_ASSIGN
    10321035        #endif
    1033         #if CONFIGURE_MAXIMUM_PROCESSORS >= 15
     1036        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 15
    10341037          , _CONFIGURE_SCHEDULER_ASSIGN
    10351038        #endif
    1036         #if CONFIGURE_MAXIMUM_PROCESSORS >= 16
     1039        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 16
    10371040          , _CONFIGURE_SCHEDULER_ASSIGN
    10381041        #endif
    1039         #if CONFIGURE_MAXIMUM_PROCESSORS >= 17
     1042        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 17
    10401043          , _CONFIGURE_SCHEDULER_ASSIGN
    10411044        #endif
    1042         #if CONFIGURE_MAXIMUM_PROCESSORS >= 18
     1045        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 18
    10431046          , _CONFIGURE_SCHEDULER_ASSIGN
    10441047        #endif
    1045         #if CONFIGURE_MAXIMUM_PROCESSORS >= 19
     1048        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 19
    10461049          , _CONFIGURE_SCHEDULER_ASSIGN
    10471050        #endif
    1048         #if CONFIGURE_MAXIMUM_PROCESSORS >= 20
     1051        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 20
    10491052          , _CONFIGURE_SCHEDULER_ASSIGN
    10501053        #endif
    1051         #if CONFIGURE_MAXIMUM_PROCESSORS >= 21
     1054        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 21
    10521055          , _CONFIGURE_SCHEDULER_ASSIGN
    10531056        #endif
    1054         #if CONFIGURE_MAXIMUM_PROCESSORS >= 22
     1057        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 22
    10551058          , _CONFIGURE_SCHEDULER_ASSIGN
    10561059        #endif
    1057         #if CONFIGURE_MAXIMUM_PROCESSORS >= 23
     1060        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 23
    10581061          , _CONFIGURE_SCHEDULER_ASSIGN
    10591062        #endif
    1060         #if CONFIGURE_MAXIMUM_PROCESSORS >= 24
     1063        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 24
    10611064          , _CONFIGURE_SCHEDULER_ASSIGN
    10621065        #endif
    1063         #if CONFIGURE_MAXIMUM_PROCESSORS >= 25
     1066        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 25
    10641067          , _CONFIGURE_SCHEDULER_ASSIGN
    10651068        #endif
    1066         #if CONFIGURE_MAXIMUM_PROCESSORS >= 26
     1069        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 26
    10671070          , _CONFIGURE_SCHEDULER_ASSIGN
    10681071        #endif
    1069         #if CONFIGURE_MAXIMUM_PROCESSORS >= 27
     1072        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 27
    10701073          , _CONFIGURE_SCHEDULER_ASSIGN
    10711074        #endif
    1072         #if CONFIGURE_MAXIMUM_PROCESSORS >= 28
     1075        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 28
    10731076          , _CONFIGURE_SCHEDULER_ASSIGN
    10741077        #endif
    1075         #if CONFIGURE_MAXIMUM_PROCESSORS >= 29
     1078        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 29
    10761079          , _CONFIGURE_SCHEDULER_ASSIGN
    10771080        #endif
    1078         #if CONFIGURE_MAXIMUM_PROCESSORS >= 30
     1081        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 30
    10791082          , _CONFIGURE_SCHEDULER_ASSIGN
    10801083        #endif
    1081         #if CONFIGURE_MAXIMUM_PROCESSORS >= 31
     1084        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 31
    10821085          , _CONFIGURE_SCHEDULER_ASSIGN
    10831086        #endif
    1084         #if CONFIGURE_MAXIMUM_PROCESSORS >= 32
     1087        #if _CONFIGURE_MAXIMUM_PROCESSORS >= 32
    10851088          , _CONFIGURE_SCHEDULER_ASSIGN
    10861089        #endif
     
    10901093
    10911094    RTEMS_STATIC_ASSERT(
    1092       CONFIGURE_MAXIMUM_PROCESSORS
     1095      _CONFIGURE_MAXIMUM_PROCESSORS
    10931096        == RTEMS_ARRAY_SIZE( _Scheduler_Initial_assignments ),
    10941097      _Scheduler_Initial_assignments
     
    12091212
    12101213  char _Configuration_Interrupt_stack_area_begin[
    1211     CONFIGURE_MAXIMUM_PROCESSORS * CONFIGURE_INTERRUPT_STACK_SIZE
     1214    _CONFIGURE_MAXIMUM_PROCESSORS * CONFIGURE_INTERRUPT_STACK_SIZE
    12121215  ] RTEMS_ALIGNED( CPU_INTERRUPT_STACK_ALIGNMENT )
    12131216  RTEMS_SECTION( ".rtemsstack.interrupt.begin" );
     
    27032706 * In an SMP system, each CPU core has its own idle task.
    27042707 */
    2705 #define _CONFIGURE_IDLE_TASKS_COUNT CONFIGURE_MAXIMUM_PROCESSORS
     2708#define _CONFIGURE_IDLE_TASKS_COUNT _CONFIGURE_MAXIMUM_PROCESSORS
    27062709
    27072710/**
     
    31033106    #endif
    31043107    #ifdef RTEMS_SMP
    3105       CONFIGURE_MAXIMUM_PROCESSORS,
     3108      _CONFIGURE_MAXIMUM_PROCESSORS,
    31063109    #endif
    31073110  };
     
    31153118  */
    31163119 #if defined(CONFIGURE_INIT)
    3117    Per_CPU_Control_envelope _Per_CPU_Information[CONFIGURE_MAXIMUM_PROCESSORS];
     3120   Per_CPU_Control_envelope _Per_CPU_Information[_CONFIGURE_MAXIMUM_PROCESSORS];
    31183121 #endif
    31193122
  • cpukit/libmisc/dummy/default-configuration.c

    r44c2d393 r334e1d2  
    104104#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
    105105
    106 #if defined(RTEMS_SMP)
    107106#define CONFIGURE_MAXIMUM_PROCESSORS CPU_MAXIMUM_PROCESSORS
    108 #endif
    109107
    110108#define CONFIGURE_DISABLE_BSP_SETTINGS
Note: See TracChangeset for help on using the changeset viewer.