RTEMS
Classes | Macros | Typedefs | Enumerations | Functions | Variables
#include <rtems/score/statesimpl.h>
#include <rtems/score/threadimpl.h>
#include "tr-event-send.h"
#include <rtems/test.h>

Go to the source code of this file.

Classes

struct  ReqRtemsEventSendReceive_Context
 Test context for spec:/req/rtems/event/send-receive test case. More...
 

Macros

#define INPUT_EVENTS   ( RTEMS_EVENT_5 | RTEMS_EVENT_23 )
 

Typedefs

typedef ReqRtemsEventSendReceive_Context Context
 

Enumerations

enum  Priorities {
  PRIO_HIGH = 1, PRIO_NORMAL, PRIO_LOW, PRIO_OTHER,
  PRIO_HIGH = 1, PRIO_NORMAL, PRIO_LOW, PRIO_OTHER
}
 
enum  SenderTypes {
  SENDER_NONE, SENDER_SELF, SENDER_SELF_2, SENDER_WORKER,
  SENDER_INTERRUPT, SENDER_NONE, SENDER_SELF, SENDER_SELF_2,
  SENDER_WORKER, SENDER_INTERRUPT
}
 
enum  ReceiveTypes {
  RECEIVE_SKIP, RECEIVE_NORMAL, RECEIVE_INTERRUPT, RECEIVE_SKIP,
  RECEIVE_NORMAL, RECEIVE_INTERRUPT
}
 
enum  ReceiveConditionStates {
  RECEIVE_COND_UNKNOWN, RECEIVE_COND_SATSIFIED, RECEIVE_COND_UNSATISFIED, RECEIVE_COND_UNKNOWN,
  RECEIVE_COND_SATSIFIED, RECEIVE_COND_UNSATISFIED
}
 

Functions

static rtems_id CreateWakeupSema (void)
 
static void DeleteWakeupSema (rtems_id id)
 
static void Wait (rtems_id id)
 
static void Wakeup (rtems_id id)
 
static bool BlockedForEvent (Thread_Wait_flags flags)
 
static bool IntendsToBlockForEvent (Thread_Wait_flags flags)
 
static bool EventReadyAgain (Thread_Wait_flags flags)
 
static bool IsSatisfiedFlags (Context *ctx)
 
static bool IsSatisfiedState (Context *ctx)
 
static void SendAction (Context *ctx)
 
static void Send (Context *ctx, bool(*is_satsified)(Context *))
 
static void Worker (rtems_task_argument arg)
 
static rtems_event_set GetPendingEvents (Context *ctx)
 
static void ReqRtemsEventSendReceive_Cleanup (Context *ctx)
 
static void InterruptPrepare (void *arg)
 
static void InterruptAction (void *arg)
 
static void InterruptContinue (Context *ctx)
 
static T_interrupt_test_state Interrupt (void *arg)
 
static void ReqRtemsEventSendReceive_Pre_Id_Prepare (ReqRtemsEventSendReceive_Context *ctx, ReqRtemsEventSendReceive_Pre_Id state)
 
static void ReqRtemsEventSendReceive_Pre_Send_Prepare (ReqRtemsEventSendReceive_Context *ctx, ReqRtemsEventSendReceive_Pre_Send state)
 
static void ReqRtemsEventSendReceive_Pre_ReceiverState_Prepare (ReqRtemsEventSendReceive_Context *ctx, ReqRtemsEventSendReceive_Pre_ReceiverState state)
 
static void ReqRtemsEventSendReceive_Pre_Satisfy_Prepare (ReqRtemsEventSendReceive_Context *ctx, ReqRtemsEventSendReceive_Pre_Satisfy state)
 
static void ReqRtemsEventSendReceive_Post_SendStatus_Check (ReqRtemsEventSendReceive_Context *ctx, ReqRtemsEventSendReceive_Post_SendStatus state)
 
static void ReqRtemsEventSendReceive_Post_ReceiveStatus_Check (ReqRtemsEventSendReceive_Context *ctx, ReqRtemsEventSendReceive_Post_ReceiveStatus state)
 
static void ReqRtemsEventSendReceive_Post_SenderPreemption_Check (ReqRtemsEventSendReceive_Context *ctx, ReqRtemsEventSendReceive_Post_SenderPreemption state)
 
static void ReqRtemsEventSendReceive_Setup (ReqRtemsEventSendReceive_Context *ctx)
 
static void ReqRtemsEventSendReceive_Setup_Wrap (void *arg)
 
static void ReqRtemsEventSendReceive_Teardown (ReqRtemsEventSendReceive_Context *ctx)
 
static void ReqRtemsEventSendReceive_Teardown_Wrap (void *arg)
 
static size_t ReqRtemsEventSendReceive_Scope (void *arg, char *buf, size_t n)
 
static void ReqRtemsEventSendReceive_Prepare (ReqRtemsEventSendReceive_Context *ctx)
 
static void ReqRtemsEventSendReceive_Action (ReqRtemsEventSendReceive_Context *ctx)
 
static void ReqRtemsEventSendReceive_Cleanup (ReqRtemsEventSendReceive_Context *ctx)
 
void ReqRtemsEventSendReceive_Run (rtems_status_code(*send)(rtems_id, rtems_event_set), rtems_status_code(*receive)(rtems_event_set, rtems_option, rtems_interval, rtems_event_set *), rtems_event_set( *get_pending_events)(Thread_Control *))
 Runs the parameterized test case. More...
 

Variables

static ReqRtemsEventSendReceive_Context ReqRtemsEventSendReceive_Instance
 
static const char *const ReqRtemsEventSendReceive_PreDesc_Id []
 
static const char *const ReqRtemsEventSendReceive_PreDesc_Send []
 
static const char *const ReqRtemsEventSendReceive_PreDesc_ReceiverState []
 
static const char *const ReqRtemsEventSendReceive_PreDesc_Satisfy []
 
static const char *const *const ReqRtemsEventSendReceive_PreDesc []
 
static const T_interrupt_test_config InterruptConfig
 
static T_fixture ReqRtemsEventSendReceive_Fixture
 
static const uint8_t ReqRtemsEventSendReceive_TransitionMap [][3]
 
struct {
   uint8_t   Skip: 1
 
   uint8_t   Pre_Id_NA: 1
 
   uint8_t   Pre_Send_NA: 1
 
   uint8_t   Pre_ReceiverState_NA: 1
 
   uint8_t   Pre_Satisfy_NA: 1
 
ReqRtemsEventSendReceive_TransitionInfo []
 
static T_fixture_node ReqRtemsEventSendReceive_Node