RTEMS 6.1-rc6
|
Data Fields | |
TQDiscipline | discipline |
This member defines the thread queue discipline. | |
TQWait | wait |
This member defines the enqueue wait behaviour. | |
TQEnqueueVariant | enqueue_variant |
This member defines the enqueue variant. | |
TQDeadlock | deadlock |
This member defines the deadlock enqueue behaviour. | |
rtems_id | runner_id |
This member contains the runner task identifier. | |
rtems_tcb * | runner_tcb |
This member contains a reference to the runner task control block. | |
rtems_id | worker_id [TQ_WORKER_COUNT] |
This member contains the worker task identifiers. | |
rtems_tcb * | worker_tcb [TQ_WORKER_COUNT] |
This member contains references to the worker task control blocks. | |
volatile bool | event_received [TQ_WORKER_COUNT] |
When a worker received an event, the corresponding element shall be set to true. | |
volatile bool | busy_wait [TQ_WORKER_COUNT] |
If this member is true, then the worker shall busy wait on request. | |
volatile bool | done [TQ_WORKER_COUNT] |
When a worker is done processing its current event set, the corresponding element shall be set to true. | |
Atomic_Uint | counter |
This member provides the counter used for the worker counters. | |
uint32_t | worker_counter [TQ_WORKER_COUNT] |
When a worker returned from TQEnqueue() the counter is incremented and stored in this member. | |
Status_Control | status [TQ_WORKER_COUNT] |
This member contains the last return status of a TQEnqueue() of the corresponding worker. | |
union { | |
rtems_id thread_queue_id | |
This member contains the identifier of an object providing the thread queue under test. | |
void * thread_queue_object | |
This member contains the reference to object containing the thread queue under test. | |
}; | |
rtems_id | mutex_id [TQ_MUTEX_COUNT] |
This member contains the identifier of priority inheritance mutexes. | |
T_scheduler_log_40 | scheduler_log |
This member provides the scheduler log. | |
void(* | get_properties )(struct TQContext *, TQWorkerKind) |
This member provides the get properties handler. | |
Status_Control(* | convert_status )(Status_Control) |
This member provides the status convert handler. | |
uint32_t | how_many |
This this member specifies how many threads shall be enqueued. | |
uint32_t | flush_count |
This this member contains the count of the least recently flushed threads. | |
jmp_buf | before_enqueue |
This this member provides a context to jump back to before the enqueue. | |
void(* | enqueue_prepare )(struct TQContext *) |
This member provides the thread queue enqueue prepare handler. | |
Status_Control(* | enqueue )(struct TQContext *, TQWait) |
This member provides the thread queue enqueue handler. | |
void(* | enqueue_done )(struct TQContext *) |
This member provides the thread queue enqueue done handler. | |
Status_Control(* | surrender )(struct TQContext *) |
This member provides the thread queue surrender handler. | |
uint32_t(* | flush )(struct TQContext *, uint32_t, bool) |
This member provides the thread queue flush handler. | |
rtems_tcb *(* | get_owner )(struct TQContext *) |
This member provides the get owner handler. | |
uint32_t(* TQContext::flush) (struct TQContext *, uint32_t, bool) |
This member provides the thread queue flush handler.
The second parameter specifies the count of enqueued threads. While the third parameter is true, all enqueued threads shall be extracted, otherwise the thread queue shall be partially flushed. The handler shall return the count of flushed threads.
TQWait TQContext::wait |
This member defines the enqueue wait behaviour.
If TQ_NO_WAIT is used, then no thread queue enqueue shall be performed.