26 _Per_CPU_Acquire( cpu, &per_cpu_lock_context );
33 _Per_CPU_Release( cpu, &per_cpu_lock_context );
static __inline__ bool _Chain_Is_node_off_chain(const Chain_Node *node)
Checks if the node is off chain.
Thread_Scheduler_control Scheduler
Scheduler related control.
Chain_Control Threads_in_need_for_help
Chain of threads in need for help.
static __inline__ void _Chain_Append_unprotected(Chain_Control *the_chain, Chain_Node *the_node)
Appends a node (unprotected).
static __inline__ void _Thread_Dispatch_request(Per_CPU_Control *cpu_self, Per_CPU_Control *cpu_target)
Requests a thread dispatch on the target processor.
Chain_Node Help_node
Node for the Per_CPU_Control::Threads_in_need_for_help chain.
SMP Scheduler Implementation.
static __inline__ void _Thread_Scheduler_acquire_critical(Thread_Control *the_thread, ISR_lock_Context *lock_context)
Acquires the lock context in a critical section.
static __inline__ void _Thread_Scheduler_release_critical(Thread_Control *the_thread, ISR_lock_Context *lock_context)
Releases the lock context in a critical section.
static __inline__ Per_CPU_Control * _Thread_Get_CPU(const Thread_Control *thread)
Gets the cpu of the thread's scheduler.
Local ISR lock context for acquire and release pairs.