Defines | |
| #define | THREAD_QUEUE_WAIT_FOREVER WATCHDOG_NO_TIMEOUT |
| #define | _Thread_queue_Enqueue(_the_thread_queue, _timeout) |
| Thread queue Enqueue Wrapper. | |
| #define | _Thread_queue_Extract_priority(_the_thread_queue, _the_thread) _Thread_queue_Extract_priority_helper( _the_thread_queue, _the_thread, FALSE ) |
| Thread queue Extract priority. | |
Typedefs | |
| typedef void(* | Thread_queue_Flush_callout )(Thread_Control *) |
| typedef void(* | Thread_queue_Timeout_callout )(Objects_Id, void *) |
Functions | |
| Thread_Control * | _Thread_queue_Dequeue (Thread_queue_Control *the_thread_queue) |
| Thread queue Dequeue. | |
| void | _Thread_queue_Enqueue_with_handler (Thread_queue_Control *the_thread_queue, Watchdog_Interval timeout, Thread_queue_Timeout_callout handler) |
| Thread queue Enqueue. | |
| void | _Thread_queue_Requeue (Thread_queue_Control *the_thread_queue, Thread_Control *the_thread) |
| Thread queue Requeue. | |
| void | _Thread_queue_Extract (Thread_queue_Control *the_thread_queue, Thread_Control *the_thread) |
| Thread queue Extract. | |
| boolean | _Thread_queue_Extract_with_proxy (Thread_Control *the_thread) |
| Thread queue Extract with proxy. | |
| Thread_Control * | _Thread_queue_First (Thread_queue_Control *the_thread_queue) |
| Thread queue First. | |
| void | _Thread_queue_Flush (Thread_queue_Control *the_thread_queue, Thread_queue_Flush_callout remote_extract_callout, uint32_t status) |
| Thread queue Flush. | |
| void | _Thread_queue_Initialize (Thread_queue_Control *the_thread_queue, Thread_queue_Disciplines the_discipline, States_Control state, uint32_t timeout_status) |
| Thread queue Initialize. | |
| Thread_Control * | _Thread_queue_Dequeue_priority (Thread_queue_Control *the_thread_queue) |
| Thread queue Dequeue priority. | |
| Thread_blocking_operation_States | _Thread_queue_Enqueue_priority (Thread_queue_Control *the_thread_queue, Thread_Control *the_thread, ISR_Level *level_p) |
| Thread queue Enqueue priority. | |
| void | _Thread_queue_Extract_priority_helper (Thread_queue_Control *the_thread_queue, Thread_Control *the_thread, boolean requeuing) |
| Thread queue Extract priority Helper. | |
| Thread_Control * | _Thread_queue_First_priority (Thread_queue_Control *the_thread_queue) |
| Thread queue First priority. | |
| Thread_Control * | _Thread_queue_Dequeue_fifo (Thread_queue_Control *the_thread_queue) |
| Thread queue Dequeue FIFO. | |
| Thread_blocking_operation_States | _Thread_queue_Enqueue_fifo (Thread_queue_Control *the_thread_queue, Thread_Control *the_thread, ISR_Level *level_p) |
| Thread queue Enqueue FIFO. | |
| void | _Thread_queue_Extract_fifo (Thread_queue_Control *the_thread_queue, Thread_Control *the_thread) |
| Thread queue Extract FIFO. | |
| Thread_Control * | _Thread_queue_First_fifo (Thread_queue_Control *the_thread_queue) |
| Thread queue First FIFO. | |
| void | _Thread_queue_Timeout (Objects_Id id, void *ignored) |
| Thread queue timeout. | |
| void | _Thread_queue_Process_timeout (Thread_Control *the_thread) |
| Process Thread Queue Timeout. | |
| RTEMS_INLINE_ROUTINE uint32_t | _Thread_queue_Header_number (Priority_Control the_priority) |
| RTEMS_INLINE_ROUTINE boolean | _Thread_queue_Is_reverse_search (Priority_Control the_priority) |
| RTEMS_INLINE_ROUTINE void | _Thread_queue_Enter_critical_section (Thread_queue_Control *the_thread_queue) |
| #define _Thread_queue_Enqueue | ( | _the_thread_queue, | |||
| _timeout | ) |
Value:
_Thread_queue_Enqueue_with_handler( \ _the_thread_queue, \ _timeout, \ _Thread_queue_Timeout )
This routine enqueues the currently executing thread on the_thread_queue with an optional timeout.
Referenced by _CORE_semaphore_Seize_isr_disable().
| #define _Thread_queue_Extract_priority | ( | _the_thread_queue, | |||
| _the_thread | ) | _Thread_queue_Extract_priority_helper( _the_thread_queue, _the_thread, FALSE ) |
Thread queue Extract priority.
This macro wraps the underlying call and hides the requeuing argument.
| #define THREAD_QUEUE_WAIT_FOREVER WATCHDOG_NO_TIMEOUT |
Constant for indefinite wait.
| typedef void( * Thread_queue_Flush_callout)(Thread_Control *) |
The following type defines the callout used when a remote task is extracted from a local thread queue.
| typedef void( * Thread_queue_Timeout_callout)(Objects_Id, void *) |
The following type defines the callout used for timeout processing methods.
| Thread_Control* _Thread_queue_Dequeue | ( | Thread_queue_Control * | the_thread_queue | ) |
Thread queue Dequeue.
This function returns a pointer to a thread waiting on the_thread_queue. The selection of this thread is based on the discipline of the_thread_queue. If no threads are waiting on the_thread_queue, then NULL is returned.
| Thread_Control* _Thread_queue_Dequeue_fifo | ( | Thread_queue_Control * | the_thread_queue | ) |
Thread queue Dequeue FIFO.
This function returns a pointer to the thread which has been waiting the longest on the_thread_queue. If no threads are waiting on the_thread_queue, then NULL is returned.
| Thread_Control* _Thread_queue_Dequeue_priority | ( | Thread_queue_Control * | the_thread_queue | ) |
Thread queue Dequeue priority.
This function returns a pointer to the highest priority thread waiting on the_thread_queue. If no threads are waiting on the_thread_queue, then NULL is returned.
| Thread_blocking_operation_States _Thread_queue_Enqueue_fifo | ( | Thread_queue_Control * | the_thread_queue, | |
| Thread_Control * | the_thread, | |||
| ISR_Level * | level_p | |||
| ) |
Thread queue Enqueue FIFO.
This routine enqueues the currently executing thread on the_thread_queue with an optional timeout using the FIFO discipline.
| Thread_blocking_operation_States _Thread_queue_Enqueue_priority | ( | Thread_queue_Control * | the_thread_queue, | |
| Thread_Control * | the_thread, | |||
| ISR_Level * | level_p | |||
| ) |
Thread queue Enqueue priority.
This routine enqueues the currently executing thread on the_thread_queue with an optional timeout using the priority discipline.
| void _Thread_queue_Enqueue_with_handler | ( | Thread_queue_Control * | the_thread_queue, | |
| Watchdog_Interval | timeout, | |||
| Thread_queue_Timeout_callout | handler | |||
| ) |
Thread queue Enqueue.
This routine enqueues the currently executing thread on the_thread_queue with an optional timeout.
| RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section | ( | Thread_queue_Control * | the_thread_queue | ) |
This routine is invoked to indicate that the specified thread queue is entering a critical section.
References Thread_queue_Control::sync_state.
Referenced by _CORE_semaphore_Seize_isr_disable().
| void _Thread_queue_Extract | ( | Thread_queue_Control * | the_thread_queue, | |
| Thread_Control * | the_thread | |||
| ) |
Thread queue Extract.
This routine removes the_thread from the_thread_queue and cancels any timeouts associated with this blocking.
| void _Thread_queue_Extract_fifo | ( | Thread_queue_Control * | the_thread_queue, | |
| Thread_Control * | the_thread | |||
| ) |
Thread queue Extract FIFO.
This routine removes the_thread from the_thread_queue and cancels any timeouts associated with this blocking.
| void _Thread_queue_Extract_priority_helper | ( | Thread_queue_Control * | the_thread_queue, | |
| Thread_Control * | the_thread, | |||
| boolean | requeuing | |||
| ) |
Thread queue Extract priority Helper.
This routine removes the_thread from the_thread_queue and cancels any timeouts associated with this blocking.
| boolean _Thread_queue_Extract_with_proxy | ( | Thread_Control * | the_thread | ) |
Thread queue Extract with proxy.
This routine extracts the_thread from the_thread_queue and ensures that if there is a proxy for this task on another node, it is also dealt with.
| Thread_Control* _Thread_queue_First | ( | Thread_queue_Control * | the_thread_queue | ) |
Thread queue First.
This function returns a pointer to the "first" thread on the_thread_queue. The "first" thread is selected based on the discipline of the_thread_queue.
| Thread_Control* _Thread_queue_First_fifo | ( | Thread_queue_Control * | the_thread_queue | ) |
Thread queue First FIFO.
This function returns a pointer to the "first" thread on the_thread_queue. The first thread is the thread which has been waiting longest on the_thread_queue.
| Thread_Control* _Thread_queue_First_priority | ( | Thread_queue_Control * | the_thread_queue | ) |
Thread queue First priority.
This function returns a pointer to the "first" thread on the_thread_queue. The "first" thread is the highest priority thread waiting on the_thread_queue.
| void _Thread_queue_Flush | ( | Thread_queue_Control * | the_thread_queue, | |
| Thread_queue_Flush_callout | remote_extract_callout, | |||
| uint32_t | status | |||
| ) |
Thread queue Flush.
This routine unblocks all threads blocked on the_thread_queue and cancels any associated timeouts.
| RTEMS_INLINE_ROUTINE uint32_t _Thread_queue_Header_number | ( | Priority_Control | the_priority | ) |
This function returns the index of the priority chain on which a thread of the_priority should be placed.
References TASK_QUEUE_DATA_PRIORITIES_PER_HEADER.
| void _Thread_queue_Initialize | ( | Thread_queue_Control * | the_thread_queue, | |
| Thread_queue_Disciplines | the_discipline, | |||
| States_Control | state, | |||
| uint32_t | timeout_status | |||
| ) |
Thread queue Initialize.
This routine initializes the_thread_queue based on the discipline indicated in attribute_set. The state set on threads which block on the_thread_queue is state.
| RTEMS_INLINE_ROUTINE boolean _Thread_queue_Is_reverse_search | ( | Priority_Control | the_priority | ) |
This function returns TRUE if the_priority indicates that the enqueue search should start at the front of this priority group chain, and FALSE if the search should start at the rear.
References TASK_QUEUE_DATA_REVERSE_SEARCH_MASK.
| void _Thread_queue_Process_timeout | ( | Thread_Control * | the_thread | ) |
Process Thread Queue Timeout.
This is a shared helper routine which makes it easier to have multiple object class specific timeout routines.
| [in] | the_thread | is the thread to extract |
| void _Thread_queue_Requeue | ( | Thread_queue_Control * | the_thread_queue, | |
| Thread_Control * | the_thread | |||
| ) |
Thread queue Requeue.
This routine is invoked when a thread changes priority and is blocked on a thread queue. If the queue is priority ordered, the_thread is removed from the_thread_queue and reinserted using its new priority. This method has no impact on the state of the_thread or of any timeouts associated with this blocking.
| void _Thread_queue_Timeout | ( | Objects_Id | id, | |
| void * | ignored | |||
| ) |
Thread queue timeout.
This routine is invoked when a task's request has not been satisfied after the timeout interval specified to enqueue. The task represented by ID will be unblocked and its status code will be set in it's control block to indicate that a timeout has occurred.
1.5.6