RTEMS 6.1-rc2
|
This group contains the test suites related to validation tests. More...
Modules | |
spec:/testsuites/bsps/fatal-sparc-leon3-cache-snooping-disabled-boot | |
This validation test suite contains a test case which triggers a fatal error during system initialization. | |
spec:/testsuites/bsps/fatal-sparc-leon3-cache-snooping-disabled-secondary | |
This validation test suite contains a test case which triggers a fatal error during system initialization. | |
spec:/testsuites/bsps/fatal-sparc-leon3-clock-initialization | |
This validation test suite contains a test case which triggers a fatal error during system initialization. | |
spec:/testsuites/bsps/fatal-sparc-leon3-shutdown | |
This validation test suite provides an application configuration to perform a shutdown. | |
spec:/testsuites/bsps/validation-bsp-0 | |
This general purpose validation test suite provides enough resources to run target-specific tests. | |
spec:/testsuites/fatal-boot-processor-not-assigned-to-scheduler | |
This validation test suite uses an application configuration which triggers a fatal error during system initialization. | |
spec:/testsuites/fatal-idle-thread-create-failed | |
This validation test suite contains a test case which is triggered by a fatal error during system initialization. | |
spec:/testsuites/fatal-idle-thread-stack-too-small | |
This validation test suite contains a test case which triggers a fatal error during system initialization. | |
spec:/testsuites/fatal-init-task-construct-failed | |
This validation test suite contains a test case which triggers a fatal error during system initialization. | |
spec:/testsuites/fatal-mandatory-processor-not-present | |
This validation test suite contains a test case which triggers a fatal error during system initialization. | |
spec:/testsuites/fatal-scheduler-requires-exactly-one-processor | |
This validation test suite uses an application configuration which triggers a fatal error during system initialization. | |
spec:/testsuites/fatal-smp | |
This validation test suite contains a test case which triggers SMP-specific fatal errors. | |
spec:/testsuites/fatal-sparc-leon3-shutdown-response | |
This validation test suite contains a test case which performs a system shutdown. | |
spec:/testsuites/fatal-start-of-mandatory-processor-failed | |
This validation test suite contains a test case which triggers a fatal error during system initialization. | |
spec:/testsuites/fatal-start-on-not-online-processor | |
This validation test suite contains a test case which triggers a fatal error during system initialization. | |
spec:/testsuites/fatal-too-large-tls-size | |
This validation test suite contains a test case which triggers a fatal error during system initialization. | |
spec:/testsuites/performance-no-clock-0 | |
This general purpose performance test suite provides enough resources to run basic performance tests for all specified managers and functions. | |
spec:/testsuites/terminate | |
This validation test suite contains a test case for the system termination procedure. | |
spec:/testsuites/userext | |
This validation test suite contains a test cases related to the invocation of user extensions. | |
spec:/testsuites/validation-0 | |
This general purpose validation test suite provides enough resources to run basic tests for all specified managers and functions. | |
spec:/testsuites/validation-1 | |
This general purpose validation test suite provides enough resources to run basic tests for all specified managers and functions. | |
spec:/testsuites/validation-acfg-0 | |
This validation test suite is used to validate the default value of application configuration options taking the optional BSP provided settings into account. | |
spec:/testsuites/validation-acfg-1 | |
This validation test suite is used to validate the default value of application configuration options where all optional BSP provided settings are disabled. | |
spec:/testsuites/validation-cache | |
This validation test suite provides enough resources to run tests for the directives of the Cache Manager. | |
spec:/testsuites/validation-intr | |
This validation test suite provides enough resources to run tests for the interrupt controller related directives of the Interrupt Manager. | |
spec:/testsuites/validation-io-kernel | |
This validation test suite contains test cases which test the kernel character input/output device provided by the BSP before the system initialization is performed. | |
spec:/testsuites/validation-no-clock-0 | |
This general purpose validation test suite provides enough resources to run basic tests without a Clock Driver for all specified managers and functions. | |
spec:/testsuites/validation-non-smp | |
This test suite for non-SMP test cases provides enough resources to run basic tests for all specified managers and functions. | |
spec:/testsuites/validation-one-cpu-0 | |
This general purpose validation test suite provides enough resources to run basic tests with exactly one processor and without a Clock Driver. | |
spec:/testsuites/validation-one-cpu-1 | |
This general purpose validation test suite provides enough resources to run basic tests with exactly one processor and without a Clock Driver. | |
spec:/testsuites/validation-smp-one-cpu-0 | |
This general purpose validation test suite provides enough resources to run basic tests for all specified managers and functions in a configuration with exactly one processor and an uniprocessor scheduler. | |
spec:/testsuites/validation-smp-only-0 | |
This test suite for SMP-only test cases provides enough resources to run basic tests for all specified managers and functions. | |
spec:/testsuites/validation-smp-only-2 | |
This SMP-only test suite validates the clustered scheduler configuration through an application configuration with a processor maximum of two. The second processor has a optional scheduler assigned and fails to start. | |
spec:/testsuites/validation-timecounter-0 | |
This validation test suite is intended test cases related to the installation of timecouters. The Clock Driver is disabled. | |
spec:/testsuites/validation-timecounter-1 | |
This validation test suite is intended test cases related to the use of timecouters. The Clock Driver is enabled. | |
spec:/testsuites/validation-timecounter-smp-0 | |
This validation test suite is intended test cases related to the use of timecouters. The Clock Driver is disabled. | |
spec:/testsuites/validation-tls-0 | |
This validation test suite contains test cases related to the thread-local storage support. | |
spec:/testsuites/validation-tls-1 | |
This validation test suite contains test cases related to the thread-local storage support. | |
Files | |
file | ts-acfg.h |
This header file provides a validation test suite runner for validation test cases specific to the application configuration. | |
file | ts-config.h |
This header file provides the constants used by the test suite configuration. | |
file | ts-default.h |
This header file provides the default validation test suite runner and application configuration. | |
file | ts-fatal-sysinit.h |
This header file provides a configurable validation test suite runner and application configuration for fatal error tests which occur during system initialization. | |
file | ts-idle.h |
This header file provides a configurable validation test suite runner and application configuration for tests which should run within an idle task without a user initialization task. | |
file | tx-call-within-isr.c |
This source file contains the implementation of CallWithinISRClear(), CallWithinISRGetVector(), CallWithinISR(), CallWithinISRRaise(), CallWithinISRSubmit(), and CallWithinISRWait(). | |
file | tx-default-task-config.c |
This source file contains the definition of DefaultTaskConfig. | |
file | tx-interrupt.c |
This source file contains the implementation of HasInterruptVectorEntriesInstalled(). | |
file | tx-io-relax.c |
This source file contains the implementation of SetIORelaxHandler(). | |
file | tx-memory-alloc.c |
This source file contains the implementation of MemoryAllocationFailWhen() and __wrap_rtems_malloc(). | |
file | tx-preemption-intervention.c |
This source file contains the implementation of SetPreemptionIntervention(). | |
file | tx-support.c |
This source file contains the implementation of support functions for the validation test cases. | |
file | tx-support.h |
This header file provides the support functions for the validation test cases. | |
file | tx-thread-queue.c |
This source file contains the implementation of the thread queue test support. | |
file | tx-thread-queue.h |
This header file provides the functions to test the Thread Queue Handler. | |
file | tx-timecounter.c |
This source file contains the definition of SetGetTimecountHandler(), GetTimecountCounter(), and SetTimecountCounter(). | |
file | tx-timer-server.c |
This source file contains the definition of DeleteTimerServer(). | |
file | tx-wrap-thread-queue.c |
This source file contains the implementation of the thread queue wrapper. | |
Data Structures | |
struct | TaskTimerInfo |
struct | MemoryContext |
struct | CallWithinISRRequest |
struct | WrapThreadQueueContext |
struct | Timer_Scheduling_Data |
This structure provides data used by RTEMS to schedule a timer service routine. More... | |
struct | ExtensionCalls |
struct | TQContext |
struct | TQSemContext |
struct | TQMtxContext |
Macros | |
#define | TEST_MICROSECONDS_PER_TICK 1000 |
#define | TEST_RUNNER_NAME rtems_build_name( 'R', 'U', 'N', ' ' ) |
#define | TEST_RUNNER_ARGUMENT 123456789 |
#define | TEST_RUNNER_INITIAL_MODES RTEMS_NO_ASR |
#define | TEST_SCHEDULER_A_NAME rtems_build_name( 'A', ' ', ' ', ' ' ) |
#define | TEST_SCHEDULER_B_NAME rtems_build_name( 'B', ' ', ' ', ' ' ) |
#define | TEST_SCHEDULER_C_NAME rtems_build_name( 'C', ' ', ' ', ' ' ) |
#define | TEST_SCHEDULER_D_NAME rtems_build_name( 'D', ' ', ' ', ' ' ) |
#define | TEST_BASE_STACK_SIZE ( 4 * RTEMS_MINIMUM_STACK_SIZE ) |
#define | TEST_MAXIMUM_TLS_SIZE RTEMS_ALIGN_UP( 64, RTEMS_TASK_STORAGE_ALIGNMENT ) |
#define | TEST_MINIMUM_STACK_SIZE ( TEST_BASE_STACK_SIZE + CPU_STACK_ALIGNMENT ) |
#define | TEST_IDLE_STACK_SIZE ( TEST_BASE_STACK_SIZE + 2 * CPU_STACK_ALIGNMENT ) |
#define | TEST_INTERRUPT_STACK_SIZE ( TEST_BASE_STACK_SIZE + 4 * CPU_INTERRUPT_STACK_ALIGNMENT ) |
#define | TEST_MAXIMUM_BARRIERS 7 |
#define | TEST_MAXIMUM_MESSAGE_QUEUES 3 |
#define | TEST_MAXIMUM_PARTITIONS 4 |
#define | TEST_MAXIMUM_PERIODS 2 |
#define | TEST_MAXIMUM_SEMAPHORES 7 |
#define | TEST_MAXIMUM_TASKS 32 |
#define | TEST_MAXIMUM_TIMERS 10 |
#define | TEST_MAXIMUM_USER_EXTENSIONS 5 |
#define | TEST_TICKS_PER_TIMESLICE 2 |
#define | PRIO_DEFAULT 1 |
This constants represents the default priority of the runner task. | |
#define | PRIO_INVALID 0xfffffffe |
This constants represents an invalid RTEMS task priority value. | |
#define | PRIO_NEARLY_IDLE 126 |
This constants represents a priority which is close to the priority of the idle thread. | |
#define | PRIO_FLEXIBLE 64 |
This constants represents a priority with a wider range of higher and lower priorities around it. | |
#define | INVALID_ID 0xfffffffd |
This constants represents an invalid RTEMS object identifier. | |
#define | OBJECT_NAME rtems_build_name( 'T', 'E', 'S', 'T' ) |
This constants represents an object name for tests. | |
#define | CreateTask(name, priority) |
#define | SCHEDULER_A_ID 0xf010001 |
#define | SCHEDULER_B_ID 0xf010002 |
#define | SCHEDULER_C_ID 0xf010003 |
#define | SCHEDULER_D_ID 0xf010004 |
#define | SOFTWARE_TIMECOUNTER_FREQUENCY 1000000 |
This constant represents the fake frequency of the software timecounter. | |
Typedefs | |
typedef uint32_t(* | GetTimecountHandler) (void) |
typedef void(* | FatalHandler) (rtems_fatal_source source, rtems_fatal_code code, void *arg) |
typedef struct TQContext | TQContext |
typedef struct TQSemContext | TQSemContext |
typedef struct TQMtxContext | TQMtxContext |
Enumerations | |
enum | Priority { PRIO_PSEUDO_ISR , PRIO_VERY_ULTRA_HIGH , PRIO_ULTRA_HIGH , PRIO_VERY_HIGH , PRIO_HIGH , PRIO_NORMAL , PRIO_LOW , PRIO_VERY_LOW , PRIO_ULTRA_LOW } |
enum | TaskTimerState { TASK_TIMER_INVALID , TASK_TIMER_INACTIVE , TASK_TIMER_TICKS , TASK_TIMER_REALTIME , TASK_TIMER_MONOTONIC } |
enum | Timer_States { TIMER_INVALID , TIMER_INACTIVE , TIMER_SCHEDULED , TIMER_PENDING } |
The various states of a timer. | |
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 * | test_task_stack_allocate (size_t size) |
void | test_task_stack_deallocate (void *stack) |
void * | test_idle_task_stack_allocate (uint32_t cpu_index, size_t *size) |
rtems_id | DoCreateTask (rtems_name name, rtems_task_priority priority) |
void | StartTask (rtems_id id, rtems_task_entry entry, void *arg) |
void | DeleteTask (rtems_id id) |
void | SuspendTask (rtems_id id) |
void | SuspendSelf (void) |
void | ResumeTask (rtems_id id) |
bool | IsTaskSuspended (rtems_id id) |
rtems_event_set | QueryPendingEvents (void) |
rtems_event_set | PollAnyEvents (void) |
rtems_event_set | ReceiveAnyEvents (void) |
rtems_event_set | ReceiveAnyEventsTimed (rtems_interval ticks) |
void | ReceiveAllEvents (rtems_event_set events) |
void | SendEvents (rtems_id id, rtems_event_set events) |
rtems_mode | GetMode (void) |
rtems_mode | SetMode (rtems_mode set, rtems_mode mask) |
rtems_task_priority | GetPriority (rtems_id id) |
rtems_task_priority | GetPriorityByScheduler (rtems_id task_id, rtems_id scheduler_id) |
rtems_task_priority | SetPriority (rtems_id id, rtems_task_priority priority) |
rtems_task_priority | GetSelfPriority (void) |
rtems_task_priority | SetSelfPriority (rtems_task_priority priority) |
rtems_task_priority | SetSelfPriorityNoYield (rtems_task_priority priority) |
rtems_id | GetScheduler (rtems_id id) |
rtems_id | GetSelfScheduler (void) |
void | SetScheduler (rtems_id task_id, rtems_id scheduler_id, rtems_task_priority priority) |
void | SetSelfScheduler (rtems_id scheduler_id, rtems_task_priority priority) |
void | GetAffinity (rtems_id id, cpu_set_t *set) |
void | GetSelfAffinity (cpu_set_t *set) |
void | SetAffinity (rtems_id id, const cpu_set_t *set) |
void | SetSelfAffinity (const cpu_set_t *set) |
void | SetAffinityOne (rtems_id id, uint32_t cpu_index) |
void | SetSelfAffinityOne (uint32_t cpu_index) |
void | SetAffinityAll (rtems_id id) |
void | SetSelfAffinityAll (void) |
void | Yield (void) |
void | YieldTask (rtems_id id) |
void | AddProcessor (rtems_id scheduler_id, uint32_t cpu_index) |
void | RemoveProcessor (rtems_id scheduler_id, uint32_t cpu_index) |
rtems_id | CreateMutex (void) |
rtems_id | CreateMutexNoProtocol (void) |
rtems_id | CreateMutexFIFO (void) |
bool | IsMutexOwner (rtems_id id) |
void | DeleteMutex (rtems_id id) |
void | ObtainMutex (rtems_id id) |
void | ObtainMutexTimed (rtems_id id, rtems_interval ticks) |
void | ObtainMutexDeadlock (rtems_id id) |
void | ReleaseMutex (rtems_id id) |
struct Thread_queue_Queue * | GetMutexThreadQueue (rtems_id id) |
void | RestoreRunnerASR (void) |
void | RestoreRunnerMode (void) |
void | RestoreRunnerPriority (void) |
void | RestoreRunnerScheduler (void) |
struct _Thread_Control * | GetThread (rtems_id id) |
struct _Thread_Control * | GetExecuting (void) |
void | KillZombies (void) |
void | WaitForExecutionStop (rtems_id task_id) |
void | WaitForIntendToBlock (rtems_id task_id) |
void | WaitForHeir (uint32_t cpu_index, rtems_id task_id) |
void | WaitForNextTask (uint32_t cpu_index, rtems_id task_id) |
void | GetTaskTimerInfo (rtems_id id, TaskTimerInfo *info) |
void | GetTaskTimerInfoByThread (struct _Thread_Control *thread, TaskTimerInfo *info) |
void | ClockTick (void) |
void | FinalClockTick (void) |
Simulates a clock tick with the final expire time point of UINT64_MAX for all clocks. | |
void | TimecounterTick (void) |
Simulates a single clock tick using the software timecounter. | |
GetTimecountHandler | SetGetTimecountHandler (GetTimecountHandler handler) |
Sets the get timecount handler. | |
uint32_t | GetTimecountCounter (void) |
Gets the software timecount counter value. | |
uint32_t | SetTimecountCounter (uint32_t counter) |
Sets and gets the software timecount counter value. | |
rtems_id | GetTimerServerTaskId (void) |
Return the task id of the timer server task. | |
bool | DeleteTimerServer (void) |
Undo the effects of rtems_timer_initiate_server() | |
void | MemorySave (MemoryContext *ctx) |
void | MemoryRestore (const MemoryContext *ctx) |
void | MemoryAllocationFailWhen (uint32_t counter) |
Fails a dynamic memory allocation when the counter reaches zero. | |
void | CallWithinISR (void(*handler)(void *), void *arg) |
void | CallWithinISRSubmit (CallWithinISRRequest *request) |
void | CallWithinISRWait (const CallWithinISRRequest *request) |
void | CallWithinISRRaise (void) |
void | CallWithinISRClear (void) |
rtems_vector_number | CallWithinISRGetVector (void) |
rtems_vector_number | GetSoftwareInterruptVector (void) |
void | WrapThreadQueueInitialize (WrapThreadQueueContext *ctx, void(*handler)(void *), void *arg) |
void | WrapThreadQueueExtract (WrapThreadQueueContext *ctx, struct _Thread_Control *thread) |
void | WrapThreadQueueExtractDirect (WrapThreadQueueContext *ctx, Thread_Control *thread) |
void | WrapThreadQueueDestroy (WrapThreadQueueContext *ctx) |
void | SetPreemptionIntervention (struct Per_CPU_Control *cpu, void(*handler)(void *), void *arg) |
rtems_vector_number | GetValidInterruptVectorNumber (const rtems_interrupt_attributes *required) |
rtems_vector_number | GetTestableInterruptVector (const rtems_interrupt_attributes *required) |
rtems_status_code | RaiseSoftwareInterrupt (rtems_vector_number vector) |
rtems_status_code | ClearSoftwareInterrupt (rtems_vector_number vector) |
bool | HasInterruptVectorEntriesInstalled (rtems_vector_number vector) |
Timer_Classes | GetTimerClass (rtems_id id) |
Get the clock and context of a timer from RTEMS internal data. | |
void | GetTimerSchedulingData (rtems_id id, Timer_Scheduling_Data *data) |
Get data related to scheduling a timer service routine from RTEMS internal structures. | |
Timer_States | GetTimerState (rtems_id id) |
Get the state of a timer from RTEMS internal data. | |
void | UnsetClock (void) |
Mark the realtime clock as never set. | |
void | FatalInitialExtension (rtems_fatal_source source, bool always_set_to_false, rtems_fatal_code code) |
void | SetFatalHandler (FatalHandler fatal, void *arg) |
void | SetTaskSwitchExtension (rtems_task_switch_extension task_switch) |
void | ClearExtensionCalls (ExtensionCalls *calls) |
void | CopyExtensionCalls (const ExtensionCalls *from, ExtensionCalls *to) |
void | SetIORelaxHandler (void(*handler)(void *), void *arg) |
void | StartDelayThreadDispatch (uint32_t cpu_index) |
void | StopDelayThreadDispatch (uint32_t cpu_index) |
bool | AreInterruptsEnabled (void) |
bool | IsWhiteSpaceOnly (const char *s) |
bool | IsEqualIgnoreWhiteSpace (const char *a, const char *b) |
void * | IdleBody (uintptr_t ignored) |
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_tcb * | TQGetOwner (TQContext *ctx) |
void | TQSchedulerRecordStart (TQContext *ctx) |
void | TQSchedulerRecordStop (TQContext *ctx) |
const T_scheduler_event * | TQGetNextAny (TQContext *ctx, size_t *index) |
const T_scheduler_event * | TQGetNextBlock (TQContext *ctx, size_t *index) |
const T_scheduler_event * | TQGetNextUnblock (TQContext *ctx, size_t *index) |
const T_scheduler_event * | TQGetNextUpdatePriority (TQContext *ctx, size_t *index) |
const T_scheduler_event * | TQGetNextAskForHelp (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_tcb * | TQGetOwnerClassicSem (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) |
Variables | |
rtems_task_argument | test_runner_argument |
rtems_task_priority | test_runner_initial_priority |
rtems_mode | test_runner_initial_modes |
const rtems_task_config | DefaultTaskConfig |
This task configurations may be used to construct a task during tests. | |
This group contains the test suites related to validation tests.
#define CreateTask | ( | name, | |
priority | |||
) |
#define PRIO_FLEXIBLE 64 |
This constants represents a priority with a wider range of higher and lower priorities around it.
It may be used for the worker threads together with PRIO_NEARLY_IDLE for the runner thread.
#define PRIO_INVALID 0xfffffffe |
This constants represents an invalid RTEMS task priority value.
It should be an invalid priority value which is not equal to RTEMS_CURRENT_PRIORITY and RTEMS_TIMER_SERVER_DEFAULT_PRIORITY.
#define PRIO_NEARLY_IDLE 126 |
This constants represents a priority which is close to the priority of the idle thread.
It may be used for the runner thread together with PRIO_FLEXIBLE for worker threads.
bool DeleteTimerServer | ( | void | ) |
Undo the effects of rtems_timer_initiate_server()
If rtems_timer_initiate_server() was never called before, nothing is done.
If rtems_timer_initiate_server() was called before, the created thread and other resources are freed so that rtems_timer_initiate_server() can be called again. There should be no pending timers which are not yet executed by the server task. Naturally, there should be no timer server timers scheduled for execution.
void FinalClockTick | ( | void | ) |
Simulates a clock tick with the final expire time point of UINT64_MAX for all clocks.
This function does not update the clock ticks counter.
uint32_t GetTimecountCounter | ( | void | ) |
Gets the software timecount counter value.
Timer_Classes GetTimerClass | ( | rtems_id | id | ) |
Get the clock and context of a timer from RTEMS internal data.
With exception of TIMER_DORMANT, the return values are bits or-ed together.
id | The timer ID. |
TIMER_DORMANT | Either the id argument is invalid or the timer has never been used before. |
The TIMER_CLASS_BIT_TIME_OF_DAY is set, if the clock used is or was the ${/glossary/clock-realtime:/term}, otherwise the ${/glossary/clock-tick:/term} based clock is or was used.
void GetTimerSchedulingData | ( | rtems_id | id, |
Timer_Scheduling_Data * | data | ||
) |
Get data related to scheduling a timer service routine from RTEMS internal structures.
id | The timer ID. | |
[out] | data | If the reference is not NULL, the data retrieved from internal RTEMS structures is stored here. |
rtems_id GetTimerServerTaskId | ( | void | ) |
Return the task id of the timer server task.
This function is an attempt to avoid using RTEMS internal global _Timer_server throughout the validation test code.
Timer_States GetTimerState | ( | rtems_id | id | ) |
Get the state of a timer from RTEMS internal data.
id | The timer ID. |
TIMER_INVALID | The id argument is invalid. |
TIMER_INACTIVE | The timer is not scheduled (i.e. it is new, run off, or canceled). |
TIMER_SCHEDULED | The timer is scheduled. |
TIMER_PENDING | The timer is pending. |
void MemoryAllocationFailWhen | ( | uint32_t | counter | ) |
Fails a dynamic memory allocation when the counter reaches zero.
This function initializes an internal counter which is decremented before each dynamic memory allocation though the rtems_malloc() directive. When the counter decrements from one to zero, the allocation fails and NULL will be returned.
counter | is the initial counter value. |
GetTimecountHandler SetGetTimecountHandler | ( | GetTimecountHandler | handler | ) |
Sets the get timecount handler.
Using this function will replace the timecounter of the clock driver.
uint32_t SetTimecountCounter | ( | uint32_t | counter | ) |
Sets and gets the software timecount counter value.
counter | is the new software timecounter counter value. |
void TimecounterTick | ( | void | ) |
Simulates a single clock tick using the software timecounter.
In contrast to ClockTick(), this function updates also CLOCK_MONOTONIC and CLOCK_REALTIME to the next software timecounter clock tick time point.
This function is designed for test suites not having a clock driver.
void UnsetClock | ( | void | ) |
Mark the realtime clock as never set.
This function manipulates RTEMS internal data structures to undo the effect of rtems_clock_set(). If the clock is not set, the function has no effect.
|
extern |
This task configurations may be used to construct a task during tests.
Only one task shall use this configuration at a time, otherwise two tasks would share a stack.