diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-07-04 09:57:30 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-07-10 07:49:36 +0200 |
commit | 34487537ceb62ee2e2fabc0667e65c43a1319855 (patch) | |
tree | 4b0258e35e14f0ad1474b66e83159bb4394cecb8 /cpukit/sapi/include | |
parent | score: Pass scheduler nodes to processor allocator (diff) | |
download | rtems-34487537ceb62ee2e2fabc0667e65c43a1319855.tar.bz2 |
score: Add simple affinity support to EDF SMP
Update #3059.
Diffstat (limited to 'cpukit/sapi/include')
-rwxr-xr-x | cpukit/sapi/include/confdefs.h | 3 | ||||
-rw-r--r-- | cpukit/sapi/include/rtems/scheduler.h | 9 |
2 files changed, 8 insertions, 4 deletions
diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h index 77b80d1cce..d01c927014 100755 --- a/cpukit/sapi/include/confdefs.h +++ b/cpukit/sapi/include/confdefs.h @@ -992,7 +992,8 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #if !defined(CONFIGURE_SCHEDULER_CONTROLS) /** Configure the context needed by the scheduler instance */ - #define CONFIGURE_SCHEDULER_CONTEXT RTEMS_SCHEDULER_CONTEXT_EDF_SMP(dflt) + #define CONFIGURE_SCHEDULER_CONTEXT \ + RTEMS_SCHEDULER_CONTEXT_EDF_SMP(dflt, CONFIGURE_MAXIMUM_PROCESSORS) /** Configure the controls for this scheduler instance */ #define CONFIGURE_SCHEDULER_CONTROLS \ diff --git a/cpukit/sapi/include/rtems/scheduler.h b/cpukit/sapi/include/rtems/scheduler.h index fae0db4913..8684b798f7 100644 --- a/cpukit/sapi/include/rtems/scheduler.h +++ b/cpukit/sapi/include/rtems/scheduler.h @@ -99,12 +99,15 @@ #define RTEMS_SCHEDULER_CONTEXT_EDF_SMP_NAME( name ) \ RTEMS_SCHEDULER_CONTEXT_NAME( EDF_SMP_ ## name ) - #define RTEMS_SCHEDULER_CONTEXT_EDF_SMP( name ) \ - static Scheduler_EDF_SMP_Context RTEMS_SCHEDULER_CONTEXT_EDF_SMP_NAME( name ) + #define RTEMS_SCHEDULER_CONTEXT_EDF_SMP( name, max_cpu_count ) \ + static struct { \ + Scheduler_EDF_SMP_Context Base; \ + Scheduler_EDF_SMP_Ready_queue Ready[ ( max_cpu_count ) + 1 ]; \ + } RTEMS_SCHEDULER_CONTEXT_EDF_SMP_NAME( name ) #define RTEMS_SCHEDULER_CONTROL_EDF_SMP( name, obj_name ) \ { \ - &RTEMS_SCHEDULER_CONTEXT_EDF_SMP_NAME( name ).Base.Base, \ + &RTEMS_SCHEDULER_CONTEXT_EDF_SMP_NAME( name ).Base.Base.Base, \ SCHEDULER_EDF_SMP_ENTRY_POINTS, \ SCHEDULER_EDF_MAXIMUM_PRIORITY, \ ( obj_name ) \ |