summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/score/scheduler.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/include/rtems/score/scheduler.h')
-rw-r--r--cpukit/include/rtems/score/scheduler.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/cpukit/include/rtems/score/scheduler.h b/cpukit/include/rtems/score/scheduler.h
index a6066c8e4a..fe6315daef 100644
--- a/cpukit/include/rtems/score/scheduler.h
+++ b/cpukit/include/rtems/score/scheduler.h
@@ -137,6 +137,36 @@ typedef struct {
);
/**
+ * @brief Pin thread operation.
+ *
+ * @param[in] scheduler The scheduler instance of the specified processor.
+ * @param[in] the_thread The thread to pin.
+ * @param[in] node The scheduler node of the thread.
+ * @param[in] cpu The processor to pin the thread.
+ */
+ void ( *pin )(
+ const Scheduler_Control *scheduler,
+ Thread_Control *the_thread,
+ Scheduler_Node *node,
+ struct Per_CPU_Control *cpu
+ );
+
+ /**
+ * @brief Unpin thread operation.
+ *
+ * @param[in] scheduler The scheduler instance of the specified processor.
+ * @param[in] the_thread The thread to unpin.
+ * @param[in] node The scheduler node of the thread.
+ * @param[in] cpu The processor to unpin the thread.
+ */
+ void ( *unpin )(
+ const Scheduler_Control *scheduler,
+ Thread_Control *the_thread,
+ Scheduler_Node *node,
+ struct Per_CPU_Control *cpu
+ );
+
+ /**
* @brief Add processor operation.
*
* @param[in] scheduler The scheduler instance to add the processor.
@@ -405,10 +435,28 @@ Priority_Control _Scheduler_default_Unmap_priority(
Thread_Scheduler_state next_state
);
+ /**
+ * @brief Does nothing in a single processor system, otherwise a fatal error
+ * is issued.
+ *
+ * @param[in] scheduler Unused.
+ * @param[in] the_thread Unused.
+ * @param[in] node Unused.
+ * @param[in] cpu Unused.
+ */
+ void _Scheduler_default_Pin_or_unpin(
+ const Scheduler_Control *scheduler,
+ Thread_Control *the_thread,
+ Scheduler_Node *node,
+ struct Per_CPU_Control *cpu
+ );
+
#define SCHEDULER_OPERATION_DEFAULT_ASK_FOR_HELP \
_Scheduler_default_Ask_for_help, \
_Scheduler_default_Reconsider_help_request, \
_Scheduler_default_Withdraw_node, \
+ _Scheduler_default_Pin_or_unpin, \
+ _Scheduler_default_Pin_or_unpin, \
NULL, \
NULL,
#else