19 #ifndef _RTEMS_SCORE_THREADQ_H 20 #define _RTEMS_SCORE_THREADQ_H 85 #if defined(RTEMS_MULTIPROCESSING) 96 typedef void ( *Thread_queue_MP_callout )(
102 #if defined(RTEMS_SMP) 116 Atomic_Uint go_ahead;
127 #if defined(RTEMS_SMP) 137 Thread_queue_Gate Gate;
147 #if defined(RTEMS_SMP) 235 #if defined(RTEMS_SMP) 255 Thread_queue_Link Start;
261 Thread_queue_Link Deadlock;
301 #if defined(RTEMS_MULTIPROCESSING) 312 Thread_queue_MP_callout mp_callout;
320 #if defined(RTEMS_SMP) 369 #if !defined(RTEMS_SMP) 389 #if defined(RTEMS_SMP) 410 #if defined(RTEMS_SMP) 411 SMP_ticket_lock_Control Lock;
548 #if defined(RTEMS_SMP) 549 #if defined(RTEMS_DEBUG) 564 #if defined(RTEMS_PROFILING) 571 SMP_lock_Stats Lock_stats;
Watchdog_Interval ticks
The timeout in ticks.
Definition: threadq.h:227
Thread_Control * owner
The thread queue owner.
Definition: threadq.h:426
The priority aggregation.
Definition: priority.h:129
Definition: threadq.h:120
Thread queue context for the thread queue methods.
Definition: threadq.h:193
Priority_Actions Actions
A priority action list.
Definition: threadq.h:273
Thread_queue_Enqueue_callout enqueue_callout
The enqueue callout for _Thread_queue_Enqueue().
Definition: threadq.h:216
Thread priority queue.
Definition: threadq.h:319
Constants and Structures Associated with the Object Handler.
Thread_queue_Deadlock_callout deadlock_callout
Invoked in case of a detected deadlock.
Definition: threadq.h:299
A list of priority actions.
Definition: priority.h:189
Thread Execution State Information.
Definition: threadq.h:547
struct _Thread_queue_Heads Thread_queue_Heads
Thread queue heads.
void(* Thread_queue_Priority_actions_operation)(Thread_queue_Queue *queue, Priority_Actions *priority_actions)
Thread queue action operation.
Definition: threadq.h:443
Thread_queue_First_operation first
Thread queue first operation.
Definition: threadq.h:540
void(* Thread_queue_Deadlock_callout)(Thread_Control *the_thread)
Thread queue deadlock callout.
Definition: threadq.h:81
Red-black tree node.
Definition: rbtree.h:50
Thread_queue_Priority_queue Priority
This is the set of threads for priority discipline waiting.
Definition: threadq.h:373
Definition: threadq.h:397
Thread queue operations.
Definition: threadq.h:512
size_t update_count
Count of threads to update the priority via _Thread_Priority_update().
Definition: threadq.h:279
Thread_queue_Queue Queue
The actual thread queue.
Definition: threadq.h:578
Thread_queue_Heads * heads
Lock to protect this thread queue.
Definition: threadq.h:421
Thread queue heads.
Definition: threadq.h:355
Chain_Control Free_chain
A chain with free thread queue heads providing the spare thread queue heads for a thread once it is d...
Definition: threadq.h:381
Priority_Aggregation Queue
The actual thread priority queue.
Definition: threadq.h:333
Thread_queue_Surrender_operation surrender
Thread queue surrender operation.
Definition: threadq.h:535
Per CPU Core Structure.
Definition: percpu.h:290
const char * name
The thread queue name.
Definition: threadq.h:431
Thread_queue_Lock_context Lock_context
The lock context for the thread queue acquire and release operations.
Definition: threadq.h:198
Thread_queue_Priority_actions_operation priority_actions
Thread queue priority actions operation.
Definition: threadq.h:516
Thread_Control *(* Thread_queue_First_operation)(Thread_queue_Heads *heads)
Thread queue first operation.
Definition: threadq.h:503
Thread_queue_Extract_operation extract
Thread queue extract operation.
Definition: threadq.h:530
void(* Thread_queue_Extract_operation)(Thread_queue_Queue *queue, Thread_Control *the_thread, Thread_queue_Context *queue_context)
Thread queue extract operation.
Definition: threadq.h:470
void(* Thread_queue_Enqueue_callout)(Thread_queue_Queue *queue, Thread_Control *the_thread, struct Per_CPU_Control *cpu_self, Thread_queue_Context *queue_context)
Thread queue enqueue callout.
Definition: threadq.h:67
Constants and Structures Associated with the Red-Black Tree Handler.
uint32_t States_Control
Definition: states.h:41
States_Control thread_state
The thread state for _Thread_queue_Enqueue().
Definition: threadq.h:203
uint32_t Watchdog_Interval
Type is used to specify the length of intervals.
Definition: watchdogticks.h:36
Chain_Node Free_node
A chain node to add these thread queue heads to the free chain of the thread queue heads dedicated to...
Definition: threadq.h:387
Thread_queue_Enqueue_operation enqueue
Thread queue enqueue operation.
Definition: threadq.h:523
Scheduler node for per-thread data.
Definition: schedulernode.h:65
struct Scheduler_Node * scheduler_node
This priority queue is added to a scheduler node of the owner in case of priority inheritance...
Definition: threadq.h:339
const void * arg
The timeout argument, e.g. pointer to struct timespec.
Definition: threadq.h:232
void(* Thread_queue_Enqueue_operation)(Thread_queue_Queue *queue, Thread_Control *the_thread, Thread_queue_Context *queue_context)
Thread queue enqueue operation.
Definition: threadq.h:458
Local ISR lock context for acquire and release pairs.
Definition: isrlock.h:65
ISR_lock_Context Lock_context
The lock context for the thread queue acquire and release operations.
Definition: threadq.h:125
uint32_t Objects_Id
Definition: object.h:75
Chain_Control Fifo
This is the FIFO discipline list.
Definition: threadq.h:367
Thread_Control *(* Thread_queue_Surrender_operation)(Thread_queue_Queue *queue, Thread_queue_Heads *heads, Thread_Control *previous_owner, Thread_queue_Context *queue_context)
Thread queue surrender operation.
Definition: threadq.h:487