37#ifndef _TX_THREAD_QUEUE_H
38#define _TX_THREAD_QUEUE_H
65 TQ_WAIT_STATE_BLOCKED,
66 TQ_WAIT_STATE_INTEND_TO_BLOCK,
67 TQ_WAIT_STATE_READY_AGAIN
207 volatile bool done[ TQ_WORKER_COUNT ];
320void TQSendAndWaitForExecutionStop(
326void TQSendAndWaitForIntendToBlock(
332void TQSendAndWaitForExecutionStopOrIntendToBlock(
338void TQSendAndSynchronizeRunner(
344void TQWaitForEventsReceived(
const TQContext *ctx, TQWorkerKind worker );
346void TQWaitForIntendToBlock(
const TQContext *ctx, TQWorkerKind worker );
348void TQWaitForExecutionStop(
const TQContext *ctx, TQWorkerKind worker );
350void TQClearDone(
TQContext *ctx, TQWorkerKind worker );
352void TQWaitForDone(
const TQContext *ctx, TQWorkerKind worker );
354void TQSynchronizeRunner(
void );
356void TQSynchronizeRunner2(
void );
360uint32_t TQGetCounter(
const TQContext *ctx );
362uint32_t TQGetWorkerCounter(
const TQContext *ctx, TQWorkerKind worker );
374Priority TQGetPriority(
const TQContext *ctx, TQWorkerKind worker );
391void TQGetProperties(
TQContext *ctx, TQWorkerKind enqueued_worker );
405void TQFlush(
TQContext *ctx,
bool flush_all );
409void TQSchedulerRecordStart(
TQContext *ctx );
411void TQSchedulerRecordStop(
TQContext *ctx );
434void TQEnqueuePrepareDefault(
TQContext *ctx );
436void TQEnqueueDoneDefault(
TQContext *ctx );
481void TQSemSetCountClassic(
TQSemContext *ctx, uint32_t count );
485 TQ_MTX_PRIORITY_INHERIT,
486 TQ_MTX_PRIORITY_CEILING,
491 TQ_MTX_RECURSIVE_ALLOWED,
492 TQ_MTX_RECURSIVE_DEADLOCK,
493 TQ_MTX_RECURSIVE_UNAVAILABLE
497 TQ_MTX_NO_OWNER_CHECK,
#define RTEMS_EVENT_22
This event set constant represents the bit in the event set associated with event 22.
Definition: event.h:326
#define RTEMS_EVENT_15
This event set constant represents the bit in the event set associated with event 15.
Definition: event.h:256
#define RTEMS_EVENT_28
This event set constant represents the bit in the event set associated with event 28.
Definition: event.h:386
#define RTEMS_EVENT_29
This event set constant represents the bit in the event set associated with event 29.
Definition: event.h:396
#define RTEMS_EVENT_5
This event set constant represents the bit in the event set associated with event 5.
Definition: event.h:156
#define RTEMS_EVENT_21
This event set constant represents the bit in the event set associated with event 21.
Definition: event.h:316
#define RTEMS_EVENT_0
This event set constant represents the bit in the event set associated with event 0.
Definition: event.h:106
#define RTEMS_EVENT_9
This event set constant represents the bit in the event set associated with event 9.
Definition: event.h:196
#define RTEMS_EVENT_7
This event set constant represents the bit in the event set associated with event 7.
Definition: event.h:176
#define RTEMS_EVENT_10
This event set constant represents the bit in the event set associated with event 10.
Definition: event.h:206
#define RTEMS_EVENT_3
This event set constant represents the bit in the event set associated with event 3.
Definition: event.h:136
#define RTEMS_EVENT_16
This event set constant represents the bit in the event set associated with event 16.
Definition: event.h:266
#define RTEMS_EVENT_17
This event set constant represents the bit in the event set associated with event 17.
Definition: event.h:276
#define RTEMS_EVENT_12
This event set constant represents the bit in the event set associated with event 12.
Definition: event.h:226
#define RTEMS_EVENT_24
This event set constant represents the bit in the event set associated with event 24.
Definition: event.h:346
#define RTEMS_EVENT_19
This event set constant represents the bit in the event set associated with event 19.
Definition: event.h:296
#define RTEMS_EVENT_27
This event set constant represents the bit in the event set associated with event 27.
Definition: event.h:376
#define RTEMS_EVENT_20
This event set constant represents the bit in the event set associated with event 20.
Definition: event.h:306
#define RTEMS_EVENT_30
This event set constant represents the bit in the event set associated with event 30.
Definition: event.h:406
#define RTEMS_EVENT_1
This event set constant represents the bit in the event set associated with event 1.
Definition: event.h:116
#define RTEMS_EVENT_11
This event set constant represents the bit in the event set associated with event 11.
Definition: event.h:216
#define RTEMS_EVENT_4
This event set constant represents the bit in the event set associated with event 4.
Definition: event.h:146
#define RTEMS_EVENT_18
This event set constant represents the bit in the event set associated with event 18.
Definition: event.h:286
#define RTEMS_EVENT_14
This event set constant represents the bit in the event set associated with event 14.
Definition: event.h:246
uint32_t rtems_event_set
This integer type represents a bit field which can hold exactly 32 individual events.
Definition: event.h:436
#define RTEMS_EVENT_2
This event set constant represents the bit in the event set associated with event 2.
Definition: event.h:126
#define RTEMS_EVENT_23
This event set constant represents the bit in the event set associated with event 23.
Definition: event.h:336
#define RTEMS_EVENT_26
This event set constant represents the bit in the event set associated with event 26.
Definition: event.h:366
#define RTEMS_EVENT_13
This event set constant represents the bit in the event set associated with event 13.
Definition: event.h:236
#define RTEMS_EVENT_6
This event set constant represents the bit in the event set associated with event 6.
Definition: event.h:166
#define RTEMS_EVENT_25
This event set constant represents the bit in the event set associated with event 25.
Definition: event.h:356
#define RTEMS_EVENT_8
This event set constant represents the bit in the event set associated with event 8.
Definition: event.h:186
uint32_t rtems_task_priority
This integer type represents task priorities of the Classic API.
Definition: types.h:257
Objects_Id rtems_id
This type represents RTEMS object identifiers.
Definition: types.h:94
Status_Control
Status codes.
Definition: status.h:111
This header file provides the interfaces of the Atomic Operations.
This header file provides the interfaces of the Operation Status Support.
Definition: tx-thread-queue.h:148
void(* get_properties)(struct TQContext *, TQWorkerKind)
This member provides the get properties handler.
Definition: tx-thread-queue.h:254
Status_Control(* surrender)(struct TQContext *)
This member provides the thread queue surrender handler.
Definition: tx-thread-queue.h:296
TQWait wait
This member defines the enqueue wait behaviour.
Definition: tx-thread-queue.h:159
Status_Control(* convert_status)(Status_Control)
This member provides the status convert handler.
Definition: tx-thread-queue.h:259
volatile bool event_received[TQ_WORKER_COUNT]
When a worker received an event, the corresponding element shall be set to true.
Definition: tx-thread-queue.h:196
rtems_id runner_id
This member contains the runner task identifier.
Definition: tx-thread-queue.h:174
void(* enqueue_prepare)(struct TQContext *)
This member provides the thread queue enqueue prepare handler.
Definition: tx-thread-queue.h:281
volatile bool busy_wait[TQ_WORKER_COUNT]
If this member is true, then the worker shall busy wait on request.
Definition: tx-thread-queue.h:201
void(* enqueue_done)(struct TQContext *)
This member provides the thread queue enqueue done handler.
Definition: tx-thread-queue.h:291
T_scheduler_log_40 scheduler_log
This member provides the scheduler log.
Definition: tx-thread-queue.h:249
rtems_id mutex_id[TQ_MUTEX_COUNT]
This member contains the identifier of priority inheritance mutexes.
Definition: tx-thread-queue.h:244
uint32_t flush_count
This this member contains the count of the least recently flushed threads.
Definition: tx-thread-queue.h:270
uint32_t how_many
This this member specifies how many threads shall be enqueued.
Definition: tx-thread-queue.h:264
volatile bool done[TQ_WORKER_COUNT]
When a worker is done processing its current event set, the corresponding element shall be set to tru...
Definition: tx-thread-queue.h:207
TQEnqueueVariant enqueue_variant
This member defines the enqueue variant.
Definition: tx-thread-queue.h:164
void * thread_queue_object
This member contains the reference to object containing the thread queue under test.
Definition: tx-thread-queue.h:237
TQDeadlock deadlock
This member defines the deadlock enqueue behaviour.
Definition: tx-thread-queue.h:169
rtems_tcb * runner_tcb
This member contains a reference to the runner task control block.
Definition: tx-thread-queue.h:179
Atomic_Uint counter
This member provides the counter used for the worker counters.
Definition: tx-thread-queue.h:212
uint32_t(* flush)(struct TQContext *, uint32_t, bool)
This member provides the thread queue flush handler.
Definition: tx-thread-queue.h:306
jmp_buf before_enqueue
This this member provides a context to jump back to before the enqueue.
Definition: tx-thread-queue.h:276
rtems_id worker_id[TQ_WORKER_COUNT]
This member contains the worker task identifiers.
Definition: tx-thread-queue.h:184
rtems_id thread_queue_id
This member contains the identifier of an object providing the thread queue under test.
Definition: tx-thread-queue.h:231
uint32_t worker_counter[TQ_WORKER_COUNT]
When a worker returned from TQEnqueue() the counter is incremented and stored in this member.
Definition: tx-thread-queue.h:218
TQDiscipline discipline
This member defines the thread queue discipline.
Definition: tx-thread-queue.h:152
Status_Control status[TQ_WORKER_COUNT]
This member contains the last return status of a TQEnqueue() of the corresponding worker.
Definition: tx-thread-queue.h:224
Status_Control(* enqueue)(struct TQContext *, TQWait)
This member provides the thread queue enqueue handler.
Definition: tx-thread-queue.h:286
rtems_tcb * worker_tcb[TQ_WORKER_COUNT]
This member contains references to the worker task control blocks.
Definition: tx-thread-queue.h:190
Definition: tx-thread-queue.h:501
TQMtxProtocol protocol
This member defines the locking protocol.
Definition: tx-thread-queue.h:510
TQContext base
This member contains the base thread queue test context.
Definition: tx-thread-queue.h:505
TQMtxRecursive recursive
This member defines the recursive seize behaviour.
Definition: tx-thread-queue.h:515
TQMtxOwnerCheck owner_check
This member defines the owner check behaviour.
Definition: tx-thread-queue.h:520
rtems_task_priority priority_ceiling
This member defines the priority ceiling of the mutex.
Definition: tx-thread-queue.h:528
Definition: tx-thread-queue.h:449
TQContext base
This member contains the base thread queue test context.
Definition: tx-thread-queue.h:453
uint32_t(* get_count)(struct TQSemContext *)
This member provides the semaphore get count handler.
Definition: tx-thread-queue.h:463
TQSemVariant variant
This member defines the semaphore variant.
Definition: tx-thread-queue.h:458
void(* set_count)(struct TQSemContext *, uint32_t)
This member provides the semaphore set count handler.
Definition: tx-thread-queue.h:468
Definition: test-scheduler.h:81
Definition: test-scheduler.h:158
This header file defines the scheduler test support API.
This header file provides the support functions for the validation test cases.