summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Dachsberger <andreas.dachsberger@embedded-brains.de>2019-04-12 13:26:40 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-05-13 07:42:04 +0200
commitd0839ddd986a39637a4a1efc798fd4663f4042ee (patch)
treed38a4d82359bad16d4753d029b907bc46fba26db
parentdoxygen: score: adjust doc in schedulersimple.h to doxygen guidelines (diff)
downloadrtems-d0839ddd986a39637a4a1efc798fd4663f4042ee.tar.bz2
doxygen: score: adjust doc in scheduleredfsmp.h to doxygen guidelines
Update #3706.
-rw-r--r--cpukit/include/rtems/score/scheduleredfsmp.h120
1 files changed, 120 insertions, 0 deletions
diff --git a/cpukit/include/rtems/score/scheduleredfsmp.h b/cpukit/include/rtems/score/scheduleredfsmp.h
index 961fa97f5f..bf759908f0 100644
--- a/cpukit/include/rtems/score/scheduleredfsmp.h
+++ b/cpukit/include/rtems/score/scheduleredfsmp.h
@@ -30,6 +30,8 @@ extern "C" {
*
* @ingroup RTEMSScoreSchedulerSMP
*
+ * @brief EDF Priority SMP Scheduler
+ *
* @{
*/
@@ -129,8 +131,21 @@ typedef struct {
_Scheduler_EDF_SMP_Set_affinity \
}
+/**
+ * @brief Initializes the context of the scheduler control.
+ *
+ * @param scheduler The scheduler control.
+ */
void _Scheduler_EDF_SMP_Initialize( const Scheduler_Control *scheduler );
+/**
+ * @brief Initializes the node with the given priority.
+ *
+ * @param scheduler The scheduler instance.
+ * @param[out] node The node to initialize.
+ * @param the_thread The thread of the scheduler node.
+ * @param priority The priority for the initialization.
+ */
void _Scheduler_EDF_SMP_Node_initialize(
const Scheduler_Control *scheduler,
Scheduler_Node *node,
@@ -138,36 +153,84 @@ void _Scheduler_EDF_SMP_Node_initialize(
Priority_Control priority
);
+/**
+ * @brief Blocks the thread.
+ *
+ * @param scheduler The scheduler instance.
+ * @param[in, out] the_thread The thread to block.
+ * @param[in, out] node The @a thread's scheduler node.
+ */
void _Scheduler_EDF_SMP_Block(
const Scheduler_Control *scheduler,
Thread_Control *thread,
Scheduler_Node *node
);
+/**
+ * @brief Unblocks the thread.
+ *
+ * @param scheduler The scheduler instance.
+ * @param[in, out] the_thread The thread to unblock.
+ * @param[in, out] node The @a thread's scheduler node.
+ */
void _Scheduler_EDF_SMP_Unblock(
const Scheduler_Control *scheduler,
Thread_Control *thread,
Scheduler_Node *node
);
+/**
+ * @brief Updates the priority of the node.
+ *
+ * @param scheduler The scheduler instance.
+ * @param the_thread The thread for the operation.
+ * @param node The thread's scheduler node.
+ */
void _Scheduler_EDF_SMP_Update_priority(
const Scheduler_Control *scheduler,
Thread_Control *the_thread,
Scheduler_Node *node
);
+/**
+ * @brief Asks for help operation.
+ *
+ * @param scheduler The scheduler instance to ask for help.
+ * @param the_thread The thread needing help.
+ * @param node The scheduler node.
+ *
+ * @retval true Ask for help was successful.
+ * @retval false Ask for help was not successful.
+ */
bool _Scheduler_EDF_SMP_Ask_for_help(
const Scheduler_Control *scheduler,
Thread_Control *the_thread,
Scheduler_Node *node
);
+/**
+ * @brief Reconsiders help operation.
+ *
+ * @param scheduler The scheduler instance to reconsider the help
+ * request.
+ * @param the_thread The thread reconsidering a help request.
+ * @param node The scheduler node.
+ */
void _Scheduler_EDF_SMP_Reconsider_help_request(
const Scheduler_Control *scheduler,
Thread_Control *the_thread,
Scheduler_Node *node
);
+/**
+ * @brief Withdraws node operation.
+ *
+ * @param scheduler The scheduler instance to withdraw the node.
+ * @param the_thread The thread using the node.
+ * @param node The scheduler node to withdraw.
+ * @param next_state The next thread scheduler state in case the node is
+ * scheduled.
+ */
void _Scheduler_EDF_SMP_Withdraw_node(
const Scheduler_Control *scheduler,
Thread_Control *the_thread,
@@ -175,6 +238,14 @@ void _Scheduler_EDF_SMP_Withdraw_node(
Thread_Scheduler_state next_state
);
+/**
+ * @brief Pin thread operation.
+ *
+ * @param scheduler The scheduler instance of the specified processor.
+ * @param the_thread The thread to pin.
+ * @param node The scheduler node of the thread.
+ * @param cpu The processor to pin the thread.
+ */
void _Scheduler_EDF_SMP_Pin(
const Scheduler_Control *scheduler,
Thread_Control *the_thread,
@@ -182,6 +253,14 @@ void _Scheduler_EDF_SMP_Pin(
struct Per_CPU_Control *cpu
);
+/**
+ * @brief Unpin thread operation.
+ *
+ * @param scheduler The scheduler instance of the specified processor.
+ * @param the_thread The thread to unpin.
+ * @param node The scheduler node of the thread.
+ * @param cpu The processor to unpin the thread.
+ */
void _Scheduler_EDF_SMP_Unpin(
const Scheduler_Control *scheduler,
Thread_Control *the_thread,
@@ -189,28 +268,69 @@ void _Scheduler_EDF_SMP_Unpin(
struct Per_CPU_Control *cpu
);
+/**
+ * @brief Adds processor.
+ *
+ * @param[in, out] scheduler The scheduler instance to add the processor to.
+ * @param idle The idle thread of the processor to add.
+ */
void _Scheduler_EDF_SMP_Add_processor(
const Scheduler_Control *scheduler,
Thread_Control *idle
);
+/**
+ * @brief Removes an idle thread from the given cpu.
+ *
+ * @param scheduler The scheduler instance.
+ * @param cpu The cpu control to remove from @a scheduler.
+ *
+ * @return The idle thread of the processor.
+ */
Thread_Control *_Scheduler_EDF_SMP_Remove_processor(
const Scheduler_Control *scheduler,
struct Per_CPU_Control *cpu
);
+/**
+ * @brief Performs the yield of a thread.
+ *
+ * @param scheduler The scheduler instance.
+ * @param[in, out] the_thread The thread that performed the yield operation.
+ * @param node The scheduler node of @a the_thread.
+ */
void _Scheduler_EDF_SMP_Yield(
const Scheduler_Control *scheduler,
Thread_Control *thread,
Scheduler_Node *node
);
+/**
+ * @brief Starts an idle thread.
+ *
+ * @param scheduler The scheduler instance.
+ * @param[in, out] the_thread An idle thread.
+ * @param cpu The cpu for the operation.
+ */
void _Scheduler_EDF_SMP_Start_idle(
const Scheduler_Control *scheduler,
Thread_Control *idle,
struct Per_CPU_Control *cpu
);
+/**
+ * @brief Checks if the processor set of the scheduler is the subset of the affinity set.
+ *
+ * Default implementation of the set affinity scheduler operation.
+ *
+ * @param scheduler This parameter is unused.
+ * @param thread This parameter is unused.
+ * @param node This parameter is unused.
+ * @param affinity The new processor affinity set for the thread.
+ *
+ * @retval true The processor set of the scheduler is a subset of the affinity set.
+ * @retval false The processor set of the scheduler is not a subset of the affinity set.
+ */
bool _Scheduler_EDF_SMP_Set_affinity(
const Scheduler_Control *scheduler,
Thread_Control *thread,