38#ifndef _RTEMS_SCORE_SCHEDULERPRIORITYSMP_H
39#define _RTEMS_SCORE_SCHEDULERPRIORITYSMP_H
97#define SCHEDULER_PRIORITY_SMP_ENTRY_POINTS \
99 _Scheduler_priority_SMP_Initialize, \
100 _Scheduler_default_Schedule, \
101 _Scheduler_priority_SMP_Yield, \
102 _Scheduler_priority_SMP_Block, \
103 _Scheduler_priority_SMP_Unblock, \
104 _Scheduler_priority_SMP_Update_priority, \
105 _Scheduler_default_Map_priority, \
106 _Scheduler_default_Unmap_priority, \
107 _Scheduler_priority_SMP_Ask_for_help, \
108 _Scheduler_priority_SMP_Reconsider_help_request, \
109 _Scheduler_priority_SMP_Withdraw_node, \
110 _Scheduler_priority_SMP_Make_sticky, \
111 _Scheduler_priority_SMP_Clean_sticky, \
112 _Scheduler_default_Pin_or_unpin_not_supported, \
113 _Scheduler_default_Pin_or_unpin_not_supported, \
114 _Scheduler_priority_SMP_Add_processor, \
115 _Scheduler_priority_SMP_Remove_processor, \
116 _Scheduler_priority_SMP_Node_initialize, \
117 _Scheduler_default_Node_destroy, \
118 _Scheduler_default_Release_job, \
119 _Scheduler_default_Cancel_job, \
120 _Scheduler_SMP_Start_idle \
121 SCHEDULER_DEFAULT_SET_AFFINITY_OPERATION \
142 const Scheduler_Control *scheduler,
144 Thread_Control *the_thread,
156 const Scheduler_Control *scheduler,
157 Thread_Control *thread,
169 const Scheduler_Control *scheduler,
170 Thread_Control *thread,
182 const Scheduler_Control *scheduler,
183 Thread_Control *the_thread,
198 const Scheduler_Control *scheduler,
199 Thread_Control *the_thread,
212 const Scheduler_Control *scheduler,
213 Thread_Control *the_thread,
227 const Scheduler_Control *scheduler,
228 Thread_Control *the_thread,
230 Thread_Scheduler_state next_state
243 const Scheduler_Control *scheduler,
244 Thread_Control *the_thread,
258 const Scheduler_Control *scheduler,
259 Thread_Control *the_thread,
270 const Scheduler_Control *scheduler,
283 const Scheduler_Control *scheduler,
295 const Scheduler_Control *scheduler,
296 Thread_Control *thread,
#define RTEMS_ZERO_LENGTH_ARRAY
This constant represents the element count of a zero-length array.
Definition basedefs.h:1032
uint64_t Priority_Control
The thread priority control.
Definition priority.h:91
void _Scheduler_priority_SMP_Unblock(const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node)
Unblocks the thread.
Definition schedulerprioritysmp.c:184
void _Scheduler_priority_SMP_Add_processor(const Scheduler_Control *scheduler, Thread_Control *idle)
Adds idle to scheduler.
Definition schedulerprioritysmp.c:328
void _Scheduler_priority_SMP_Yield(const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node)
Performs the yield of a thread.
Definition schedulerprioritysmp.c:362
void _Scheduler_priority_SMP_Withdraw_node(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, Thread_Scheduler_state next_state)
Withdraws node operation.
Definition schedulerprioritysmp.c:270
void _Scheduler_priority_SMP_Clean_sticky(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Cleans the sticky property from the node.
Definition schedulerprioritysmp.c:308
void _Scheduler_priority_SMP_Update_priority(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Updates the priority of the node.
Definition schedulerprioritysmp.c:222
void _Scheduler_priority_SMP_Initialize(const Scheduler_Control *scheduler)
Initializes the priority SMP scheduler.
Definition schedulerprioritysmp.c:60
void _Scheduler_priority_SMP_Reconsider_help_request(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Reconsiders help operation.
Definition schedulerprioritysmp.c:254
void _Scheduler_priority_SMP_Block(const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node)
Blocks the thread.
Definition schedulerprioritysmp.c:119
void _Scheduler_priority_SMP_Node_initialize(const Scheduler_Control *scheduler, Scheduler_Node *node, Thread_Control *the_thread, Priority_Control priority)
Initializes the node with the given priority.
Definition schedulerprioritysmp.c:74
Thread_Control * _Scheduler_priority_SMP_Remove_processor(const Scheduler_Control *scheduler, struct Per_CPU_Control *cpu)
Removes an idle thread from the given cpu.
Definition schedulerprioritysmp.c:344
bool _Scheduler_priority_SMP_Ask_for_help(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Asks for help operation.
Definition schedulerprioritysmp.c:243
void _Scheduler_priority_SMP_Make_sticky(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Makes the node sticky.
Definition schedulerprioritysmp.c:293
This header file provides interfaces of the Deterministic Priority Scheduler which are used by the im...
This header file provides interfaces of the SMP Scheduler which are used by the implementation and th...
This header file provides interfaces of the Scheduler Handler which are used by the implementation an...
Per CPU Core Structure.
Definition percpu.h:384
Definition prioritybitmap.h:60
Scheduler node for per-thread data.
Definition schedulernode.h:94
Scheduler context specialization for SMP schedulers.
Definition schedulersmp.h:61
Scheduler node specialization for SMP schedulers.
Definition schedulersmp.h:106
Data for ready queue operations.
Definition schedulerpriority.h:103
Scheduler context specialization for Deterministic Priority SMP schedulers.
Definition schedulerprioritysmp.h:71
Scheduler node specialization for Deterministic Priority SMP schedulers.
Definition schedulerprioritysmp.h:82
Scheduler_priority_Ready_queue Ready_queue
The associated ready queue of this node.
Definition schedulerprioritysmp.h:91
Scheduler_SMP_Node Base
SMP scheduler node.
Definition schedulerprioritysmp.h:86
This union represents a chain control block.
Definition chain.h:96