summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi/include
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-07-04 09:57:30 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-07-10 07:49:36 +0200
commit34487537ceb62ee2e2fabc0667e65c43a1319855 (patch)
tree4b0258e35e14f0ad1474b66e83159bb4394cecb8 /cpukit/sapi/include
parentscore: Pass scheduler nodes to processor allocator (diff)
downloadrtems-34487537ceb62ee2e2fabc0667e65c43a1319855.tar.bz2
score: Add simple affinity support to EDF SMP
Update #3059.
Diffstat (limited to 'cpukit/sapi/include')
-rwxr-xr-xcpukit/sapi/include/confdefs.h3
-rw-r--r--cpukit/sapi/include/rtems/scheduler.h9
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 ) \