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 \
230 Thread_Scheduler_state next_state
#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
Scheduler control.
Definition: scheduler.h:335
This union represents a chain control block.
Definition: chain.h:96