RTEMS 6.1-rc6
Loading...
Searching...
No Matches
Data Fields
TQContext Struct Reference

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_tcbrunner_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_tcbworker_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.
 

Field Documentation

◆ flush

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.

◆ wait

TQWait TQContext::wait

This member defines the enqueue wait behaviour.

If TQ_NO_WAIT is used, then no thread queue enqueue shall be performed.


The documentation for this struct was generated from the following file: