RTEMS 6.1-rc5
Loading...
Searching...
No Matches
Data Structures | Typedefs | Enumerations | Functions
tx-thread-queue.h File Reference

This header file provides the functions to test the Thread Queue Handler. More...

#include "tx-support.h"
#include <rtems/test-scheduler.h>
#include <rtems/score/atomic.h>
#include <rtems/score/status.h>
#include <setjmp.h>

Go to the source code of this file.

Data Structures

struct  TQContext
 
struct  TQSemContext
 
struct  TQMtxContext
 

Typedefs

typedef struct TQContext TQContext
 
typedef struct TQSemContext TQSemContext
 
typedef struct TQMtxContext TQMtxContext
 

Enumerations

enum  TQNodeKind { TQ_NODE_ONLY , TQ_NODE_VITAL , TQ_NODE_DISPENSABLE }
 
enum  TQWaitState { TQ_WAIT_STATE_BLOCKED , TQ_WAIT_STATE_INTEND_TO_BLOCK , TQ_WAIT_STATE_READY_AGAIN }
 
enum  TQWorkerKind {
  TQ_BLOCKER_A , TQ_BLOCKER_B , TQ_BLOCKER_C , TQ_BLOCKER_D ,
  TQ_BLOCKER_E , TQ_WORKER_F , TQ_HELPER_A , TQ_HELPER_B ,
  TQ_HELPER_C , TQ_WORKER_COUNT
}
 
enum  TQMutex {
  TQ_MUTEX_A , TQ_MUTEX_B , TQ_MUTEX_C , TQ_MUTEX_D ,
  TQ_MUTEX_NO_PROTOCOL , TQ_MUTEX_FIFO , TQ_MUTEX_COUNT
}
 
enum  TQDiscipline { TQ_FIFO , TQ_PRIORITY }
 
enum  TQWait { TQ_NO_WAIT , TQ_WAIT_FOREVER , TQ_WAIT_TIMED }
 
enum  TQDeadlock { TQ_DEADLOCK_STATUS , TQ_DEADLOCK_FATAL }
 
enum  TQEvent {
  TQ_EVENT_ENQUEUE_PREPARE = RTEMS_EVENT_0 , TQ_EVENT_ENQUEUE = RTEMS_EVENT_1 , TQ_EVENT_ENQUEUE_DONE = RTEMS_EVENT_2 , TQ_EVENT_SURRENDER = RTEMS_EVENT_3 ,
  TQ_EVENT_RUNNER_SYNC = RTEMS_EVENT_4 , TQ_EVENT_RUNNER_SYNC_2 = RTEMS_EVENT_5 , TQ_EVENT_HELPER_A_SYNC = RTEMS_EVENT_6 , TQ_EVENT_HELPER_B_SYNC = RTEMS_EVENT_7 ,
  TQ_EVENT_MUTEX_A_OBTAIN = RTEMS_EVENT_8 , TQ_EVENT_MUTEX_A_RELEASE = RTEMS_EVENT_9 , TQ_EVENT_MUTEX_B_OBTAIN = RTEMS_EVENT_10 , TQ_EVENT_MUTEX_B_RELEASE = RTEMS_EVENT_11 ,
  TQ_EVENT_BUSY_WAIT = RTEMS_EVENT_12 , TQ_EVENT_FLUSH_ALL = RTEMS_EVENT_13 , TQ_EVENT_FLUSH_PARTIAL = RTEMS_EVENT_14 , TQ_EVENT_SCHEDULER_RECORD_START = RTEMS_EVENT_15 ,
  TQ_EVENT_SCHEDULER_RECORD_STOP = RTEMS_EVENT_16 , TQ_EVENT_TIMEOUT = RTEMS_EVENT_17 , TQ_EVENT_MUTEX_NO_PROTOCOL_OBTAIN = RTEMS_EVENT_18 , TQ_EVENT_MUTEX_NO_PROTOCOL_RELEASE = RTEMS_EVENT_19 ,
  TQ_EVENT_ENQUEUE_FATAL = RTEMS_EVENT_20 , TQ_EVENT_MUTEX_C_OBTAIN = RTEMS_EVENT_21 , TQ_EVENT_MUTEX_C_RELEASE = RTEMS_EVENT_22 , TQ_EVENT_MUTEX_FIFO_OBTAIN = RTEMS_EVENT_23 ,
  TQ_EVENT_MUTEX_FIFO_RELEASE = RTEMS_EVENT_24 , TQ_EVENT_ENQUEUE_TIMED = RTEMS_EVENT_25 , TQ_EVENT_MUTEX_D_OBTAIN = RTEMS_EVENT_26 , TQ_EVENT_MUTEX_D_RELEASE = RTEMS_EVENT_27 ,
  TQ_EVENT_PIN = RTEMS_EVENT_28 , TQ_EVENT_UNPIN = RTEMS_EVENT_29 , TQ_EVENT_COUNT = RTEMS_EVENT_30
}
 
enum  TQEnqueueVariant { TQ_ENQUEUE_BLOCKS , TQ_ENQUEUE_STICKY }
 
enum  TQSemVariant { TQ_SEM_BINARY , TQ_SEM_COUNTING }
 
enum  TQMtxProtocol { TQ_MTX_NO_PROTOCOL , TQ_MTX_PRIORITY_INHERIT , TQ_MTX_PRIORITY_CEILING , TQ_MTX_MRSP }
 
enum  TQMtxRecursive { TQ_MTX_RECURSIVE_ALLOWED , TQ_MTX_RECURSIVE_DEADLOCK , TQ_MTX_RECURSIVE_UNAVAILABLE }
 
enum  TQMtxOwnerCheck { TQ_MTX_NO_OWNER_CHECK , TQ_MTX_CHECKS_OWNER }
 

Functions

void TQSend (TQContext *ctx, TQWorkerKind worker, rtems_event_set events)
 
void TQSendAndWaitForExecutionStop (TQContext *ctx, TQWorkerKind worker, rtems_event_set events)
 
void TQSendAndWaitForIntendToBlock (TQContext *ctx, TQWorkerKind worker, rtems_event_set events)
 
void TQSendAndWaitForExecutionStopOrIntendToBlock (TQContext *ctx, TQWorkerKind worker, rtems_event_set events)
 
void TQSendAndSynchronizeRunner (TQContext *ctx, TQWorkerKind worker, rtems_event_set events)
 
void TQWaitForEventsReceived (const TQContext *ctx, TQWorkerKind worker)
 
void TQWaitForIntendToBlock (const TQContext *ctx, TQWorkerKind worker)
 
void TQWaitForExecutionStop (const TQContext *ctx, TQWorkerKind worker)
 
void TQClearDone (TQContext *ctx, TQWorkerKind worker)
 
void TQWaitForDone (const TQContext *ctx, TQWorkerKind worker)
 
void TQSynchronizeRunner (void)
 
void TQSynchronizeRunner2 (void)
 
void TQResetCounter (TQContext *ctx)
 
uint32_t TQGetCounter (const TQContext *ctx)
 
uint32_t TQGetWorkerCounter (const TQContext *ctx, TQWorkerKind worker)
 
void TQMutexObtain (const TQContext *ctx, TQMutex mutex)
 
void TQMutexRelease (const TQContext *ctx, TQMutex mutex)
 
void TQSetPriority (const TQContext *ctx, TQWorkerKind worker, Priority priority)
 
Priority TQGetPriority (const TQContext *ctx, TQWorkerKind worker)
 
void TQSetScheduler (const TQContext *ctx, TQWorkerKind worker, rtems_id scheduler_id, Priority priority)
 
void TQInitialize (TQContext *ctx)
 
void TQDestroy (TQContext *ctx)
 
void TQReset (TQContext *ctx)
 
void TQSortMutexesByID (TQContext *ctx)
 
void TQGetProperties (TQContext *ctx, TQWorkerKind enqueued_worker)
 
Status_Control TQConvertStatus (TQContext *ctx, Status_Control status)
 
void TQEnqueuePrepare (TQContext *ctx)
 
Status_Control TQEnqueue (TQContext *ctx, TQWait wait)
 
Status_Control TQEnqueueFatal (TQContext *ctx)
 
void TQEnqueueDone (TQContext *ctx)
 
Status_Control TQSurrender (TQContext *ctx)
 
void TQFlush (TQContext *ctx, bool flush_all)
 
rtems_tcbTQGetOwner (TQContext *ctx)
 
void TQSchedulerRecordStart (TQContext *ctx)
 
void TQSchedulerRecordStop (TQContext *ctx)
 
const T_scheduler_eventTQGetNextAny (TQContext *ctx, size_t *index)
 
const T_scheduler_eventTQGetNextBlock (TQContext *ctx, size_t *index)
 
const T_scheduler_eventTQGetNextUnblock (TQContext *ctx, size_t *index)
 
const T_scheduler_eventTQGetNextUpdatePriority (TQContext *ctx, size_t *index)
 
const T_scheduler_eventTQGetNextAskForHelp (TQContext *ctx, size_t *index)
 
void TQDoNothing (TQContext *ctx)
 
Status_Control TQDoNothingSuccessfully (TQContext *ctx)
 
Status_Control TQConvertStatusClassic (Status_Control status)
 
Status_Control TQConvertStatusPOSIX (Status_Control status)
 
void TQEnqueuePrepareDefault (TQContext *ctx)
 
void TQEnqueueDoneDefault (TQContext *ctx)
 
Status_Control TQEnqueueClassicSem (TQContext *ctx, TQWait wait)
 
Status_Control TQSurrenderClassicSem (TQContext *ctx)
 
rtems_tcbTQGetOwnerClassicSem (TQContext *ctx)
 
Status_Control TQSemSurrender (TQSemContext *ctx)
 
uint32_t TQSemGetCount (TQSemContext *ctx)
 
void TQSemSetCount (TQSemContext *ctx, uint32_t count)
 
Status_Control TQSemSurrenderClassic (TQSemContext *ctx)
 
uint32_t TQSemGetCountClassic (TQSemContext *ctx)
 
void TQSemSetCountClassic (TQSemContext *ctx, uint32_t count)
 

Detailed Description

This header file provides the functions to test the Thread Queue Handler.