39#ifndef _RTEMS_SCORE_SCHEDULERSIMPLE_SMP_H
40#define _RTEMS_SCORE_SCHEDULERSIMPLE_SMP_H
79#define SCHEDULER_SIMPLE_SMP_MAXIMUM_PRIORITY 255
84#define SCHEDULER_SIMPLE_SMP_ENTRY_POINTS \
86 _Scheduler_simple_SMP_Initialize, \
87 _Scheduler_default_Schedule, \
88 _Scheduler_simple_SMP_Yield, \
89 _Scheduler_simple_SMP_Block, \
90 _Scheduler_simple_SMP_Unblock, \
91 _Scheduler_simple_SMP_Update_priority, \
92 _Scheduler_default_Map_priority, \
93 _Scheduler_default_Unmap_priority, \
94 _Scheduler_simple_SMP_Ask_for_help, \
95 _Scheduler_simple_SMP_Reconsider_help_request, \
96 _Scheduler_simple_SMP_Withdraw_node, \
97 _Scheduler_simple_SMP_Make_sticky, \
98 _Scheduler_simple_SMP_Clean_sticky, \
99 _Scheduler_default_Pin_or_unpin_not_supported, \
100 _Scheduler_default_Pin_or_unpin_not_supported, \
101 _Scheduler_simple_SMP_Add_processor, \
102 _Scheduler_simple_SMP_Remove_processor, \
103 _Scheduler_simple_SMP_Node_initialize, \
104 _Scheduler_default_Node_destroy, \
105 _Scheduler_default_Release_job, \
106 _Scheduler_default_Cancel_job, \
107 _Scheduler_SMP_Start_idle \
108 SCHEDULER_DEFAULT_SET_AFFINITY_OPERATION \
215 Thread_Scheduler_state next_state
uint64_t Priority_Control
The thread priority control.
Definition: priority.h:91
void _Scheduler_simple_SMP_Node_initialize(const Scheduler_Control *scheduler, Scheduler_Node *node, Thread_Control *the_thread, Priority_Control priority)
Initializes the node with the given attributes.
Definition: schedulersimplesmp.c:74
void _Scheduler_simple_SMP_Make_sticky(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Makes the node sticky.
Definition: schedulersimplesmp.c:392
bool _Scheduler_simple_SMP_Ask_for_help(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Asks for help.
Definition: schedulersimplesmp.c:342
void _Scheduler_simple_SMP_Yield(const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node)
Definition: schedulersimplesmp.c:461
void _Scheduler_simple_SMP_Block(const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node)
Blocks a thread.
Definition: schedulersimplesmp.c:218
Thread_Control * _Scheduler_simple_SMP_Remove_processor(const Scheduler_Control *scheduler, struct Per_CPU_Control *cpu)
Removes an idle thread from the given cpu.
Definition: schedulersimplesmp.c:443
void _Scheduler_simple_SMP_Reconsider_help_request(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Reconsiders help.
Definition: schedulersimplesmp.c:353
void _Scheduler_simple_SMP_Clean_sticky(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Cleans the sticky property from the node.
Definition: schedulersimplesmp.c:407
void _Scheduler_simple_SMP_Withdraw_node(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, Thread_Scheduler_state next_state)
Withdraws node.
Definition: schedulersimplesmp.c:369
void _Scheduler_simple_SMP_Unblock(const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node)
Unblocks a thread.
Definition: schedulersimplesmp.c:283
void _Scheduler_simple_SMP_Update_priority(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Updates the priority of the node.
Definition: schedulersimplesmp.c:321
void _Scheduler_simple_SMP_Initialize(const Scheduler_Control *scheduler)
Initializes the scheduler's context.
Definition: schedulersimplesmp.c:65
void _Scheduler_simple_SMP_Add_processor(const Scheduler_Control *scheduler, Thread_Control *idle)
Adds idle to scheduler.
Definition: schedulersimplesmp.c:427
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
Scheduler node for per-thread data.
Definition: schedulernode.h:94
Scheduler context specialization for SMP schedulers.
Definition: schedulersmp.h:61
Definition: schedulersimplesmp.h:74
Scheduler control.
Definition: scheduler.h:335
This union represents a chain control block.
Definition: chain.h:96