summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cpukit/include/rtems/score/scheduler.h59
-rw-r--r--cpukit/score/src/schedulerdefaultaskforhelp.c61
-rw-r--r--spec/build/cpukit/objsmp.yml1
3 files changed, 13 insertions, 108 deletions
diff --git a/cpukit/include/rtems/score/scheduler.h b/cpukit/include/rtems/score/scheduler.h
index 36fc1fd39c..df9477fbeb 100644
--- a/cpukit/include/rtems/score/scheduler.h
+++ b/cpukit/include/rtems/score/scheduler.h
@@ -403,49 +403,6 @@ Priority_Control _Scheduler_default_Unmap_priority(
/**
* @brief Does nothing.
*
- * @param scheduler This parameter is unused.
- * @param the_thread This parameter is unused.
- * @param node This parameter is unused.
- *
- * @return Always returns false.
- */
- bool _Scheduler_default_Ask_for_help(
- const Scheduler_Control *scheduler,
- Thread_Control *the_thread,
- Scheduler_Node *node
- );
-
- /**
- * @brief Does nothing.
- *
- * @param scheduler This parameter is unused.
- * @param the_thread This parameter is unused.
- * @param node This parameter is unused.
- */
- void _Scheduler_default_Reconsider_help_request(
- const Scheduler_Control *scheduler,
- Thread_Control *the_thread,
- Scheduler_Node *node
- );
-
- /**
- * @brief Does nothing.
- *
- * @param scheduler This parameter is unused.
- * @param the_thread This parameter is unused..
- * @param node This parameter is unused.
- * @param next_state This parameter is unused.
- */
- void _Scheduler_default_Withdraw_node(
- const Scheduler_Control *scheduler,
- Thread_Control *the_thread,
- Scheduler_Node *node,
- Thread_Scheduler_state next_state
- );
-
- /**
- * @brief Does nothing.
- *
* This default implementation for the thread pin or unpin operations should
* be used by uniprocessor schedulers if SMP support is enabled.
*
@@ -489,12 +446,22 @@ Priority_Control _Scheduler_default_Unmap_priority(
* schedulers shall implement the operations properly.
*
* If SMP support is disabled, the define evaluates to nothing.
+ *
+ * If SMP support is enabled and the system has exactly one processor, then it
+ * may use an uniprocessor scheduler. The ask for help, reconsider help
+ * request, and withdraw node operations are NULL, since they are only used if
+ * a thread has at least one helping scheduler node. At least two schedulers
+ * are required to get a helping node and each scheduler involved must own at
+ * least one processor. This is not possible on a system with exactly one
+ * processor. The processor add operation is NULL, since there is no other
+ * processor to add. The processor remove operation is NULL, since the one and
+ * only processor cannot be removed.
*/
#if defined(RTEMS_SMP)
#define SCHEDULER_DEFAULT_SMP_OPERATIONS \
- _Scheduler_default_Ask_for_help, \
- _Scheduler_default_Reconsider_help_request, \
- _Scheduler_default_Withdraw_node, \
+ NULL, \
+ NULL, \
+ NULL, \
_Scheduler_default_Pin_or_unpin_do_nothing, \
_Scheduler_default_Pin_or_unpin_do_nothing, \
NULL, \
diff --git a/cpukit/score/src/schedulerdefaultaskforhelp.c b/cpukit/score/src/schedulerdefaultaskforhelp.c
deleted file mode 100644
index 17c222eafb..0000000000
--- a/cpukit/score/src/schedulerdefaultaskforhelp.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * @file
- *
- * @ingroup RTEMSScoreScheduler
- *
- * @brief This source file contains the implementation of
- * _Scheduler_default_Ask_for_help(),
- * _Scheduler_default_Reconsider_help_request(), and
- * _Scheduler_default_Withdraw_node().
- */
-
-/*
- * Copyright (c) 2014, 2016 embedded brains GmbH
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <rtems/score/scheduler.h>
-
-bool _Scheduler_default_Ask_for_help(
- const Scheduler_Control *scheduler,
- Thread_Control *the_thread,
- Scheduler_Node *node
-)
-{
- (void) scheduler;
- (void) the_thread;
- (void) node;
-
- return false;
-}
-
-void _Scheduler_default_Reconsider_help_request(
- const Scheduler_Control *scheduler,
- Thread_Control *the_thread,
- Scheduler_Node *node
-)
-{
- (void) scheduler;
- (void) the_thread;
- (void) node;
-}
-
-void _Scheduler_default_Withdraw_node(
- const Scheduler_Control *scheduler,
- Thread_Control *the_thread,
- Scheduler_Node *node,
- Thread_Scheduler_state next_state
-)
-{
- (void) scheduler;
- (void) the_thread;
- (void) node;
- (void) next_state;
-}
diff --git a/spec/build/cpukit/objsmp.yml b/spec/build/cpukit/objsmp.yml
index c1b0611d0c..1a55708638 100644
--- a/spec/build/cpukit/objsmp.yml
+++ b/spec/build/cpukit/objsmp.yml
@@ -13,7 +13,6 @@ source:
- cpukit/score/src/percpujobs.c
- cpukit/score/src/percpustatewait.c
- cpukit/score/src/profilingsmplock.c
-- cpukit/score/src/schedulerdefaultaskforhelp.c
- cpukit/score/src/schedulerdefaultpinunpin.c
- cpukit/score/src/schedulerdefaultpinunpindonothing.c
- cpukit/score/src/schedulerdefaultsetaffinity.c