RTEMS 6.1-rc1
tr-event-send-receive.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-2-Clause */
2
9/*
10 * Copyright (C) 2020 embedded brains GmbH & Co. KG
11 *
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
14 * are met:
15 * 1. Redistributions of source code must retain the above copyright
16 * notice, this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright
18 * notice, this list of conditions and the following disclaimer in the
19 * documentation and/or other materials provided with the distribution.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 */
33
34/*
35 * This file is part of the RTEMS quality process and was automatically
36 * generated. If you find something that needs to be fixed or
37 * worded better please post a report or patch to an RTEMS mailing list
38 * or raise a bug report:
39 *
40 * https://www.rtems.org/bugs.html
41 *
42 * For information on updating and regenerating please refer to the How-To
43 * section in the Software Requirements Engineering chapter of the
44 * RTEMS Software Engineering manual. The manual is provided as a part of
45 * a release. For development sources please refer to the online
46 * documentation at:
47 *
48 * https://docs.rtems.org
49 */
50
51#ifndef _TR_EVENT_SEND_RECEIVE_H
52#define _TR_EVENT_SEND_RECEIVE_H
53
54#include <rtems.h>
55#include <rtems/score/thread.h>
56
57#ifdef __cplusplus
58extern "C" {
59#endif
60
67typedef enum {
68 RtemsEventReqSendReceive_Pre_Id_InvId,
69 RtemsEventReqSendReceive_Pre_Id_Task,
70 RtemsEventReqSendReceive_Pre_Id_NA
71} RtemsEventReqSendReceive_Pre_Id;
72
73typedef enum {
74 RtemsEventReqSendReceive_Pre_Send_Zero,
75 RtemsEventReqSendReceive_Pre_Send_Unrelated,
76 RtemsEventReqSendReceive_Pre_Send_Any,
77 RtemsEventReqSendReceive_Pre_Send_All,
78 RtemsEventReqSendReceive_Pre_Send_MixedAny,
79 RtemsEventReqSendReceive_Pre_Send_MixedAll,
80 RtemsEventReqSendReceive_Pre_Send_NA
81} RtemsEventReqSendReceive_Pre_Send;
82
83typedef enum {
84 RtemsEventReqSendReceive_Pre_ReceiverState_InvAddr,
85 RtemsEventReqSendReceive_Pre_ReceiverState_NotWaiting,
86 RtemsEventReqSendReceive_Pre_ReceiverState_Poll,
87 RtemsEventReqSendReceive_Pre_ReceiverState_Timeout,
88 RtemsEventReqSendReceive_Pre_ReceiverState_Lower,
89 RtemsEventReqSendReceive_Pre_ReceiverState_Equal,
90 RtemsEventReqSendReceive_Pre_ReceiverState_Higher,
91 RtemsEventReqSendReceive_Pre_ReceiverState_Other,
92 RtemsEventReqSendReceive_Pre_ReceiverState_Intend,
93 RtemsEventReqSendReceive_Pre_ReceiverState_NA
94} RtemsEventReqSendReceive_Pre_ReceiverState;
95
96typedef enum {
97 RtemsEventReqSendReceive_Pre_Satisfy_All,
98 RtemsEventReqSendReceive_Pre_Satisfy_Any,
99 RtemsEventReqSendReceive_Pre_Satisfy_NA
100} RtemsEventReqSendReceive_Pre_Satisfy;
101
102typedef enum {
103 RtemsEventReqSendReceive_Post_SendStatus_Ok,
104 RtemsEventReqSendReceive_Post_SendStatus_InvId,
105 RtemsEventReqSendReceive_Post_SendStatus_NA
106} RtemsEventReqSendReceive_Post_SendStatus;
107
108typedef enum {
109 RtemsEventReqSendReceive_Post_ReceiveStatus_None,
110 RtemsEventReqSendReceive_Post_ReceiveStatus_Pending,
111 RtemsEventReqSendReceive_Post_ReceiveStatus_Timeout,
112 RtemsEventReqSendReceive_Post_ReceiveStatus_Satisfied,
113 RtemsEventReqSendReceive_Post_ReceiveStatus_Unsatisfied,
114 RtemsEventReqSendReceive_Post_ReceiveStatus_Blocked,
115 RtemsEventReqSendReceive_Post_ReceiveStatus_InvAddr,
116 RtemsEventReqSendReceive_Post_ReceiveStatus_NA
117} RtemsEventReqSendReceive_Post_ReceiveStatus;
118
119typedef enum {
120 RtemsEventReqSendReceive_Post_SenderPreemption_No,
121 RtemsEventReqSendReceive_Post_SenderPreemption_Yes,
122 RtemsEventReqSendReceive_Post_SenderPreemption_NA
123} RtemsEventReqSendReceive_Post_SenderPreemption;
124
141 rtems_event_set ( *get_pending_events )( Thread_Control * ),
142 unsigned int wait_class,
143 int waiting_for_event
144);
145
148#ifdef __cplusplus
149}
150#endif
151
152#endif /* _TR_EVENT_SEND_RECEIVE_H */
uint32_t rtems_event_set
This integer type represents a bit field which can hold exactly 32 individual events.
Definition: event.h:436
uint32_t rtems_option
This type represents a Classic API directive option set.
Definition: options.h:126
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
Definition: status.h:85
Objects_Id rtems_id
This type represents RTEMS object identifiers.
Definition: types.h:94
Watchdog_Interval rtems_interval
This type represents clock tick intervals.
Definition: types.h:114
void RtemsEventReqSendReceive_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 *), unsigned int wait_class, int waiting_for_event)
Runs the parameterized test case.
Definition: tr-event-send-receive.c:1258
This header file defines the RTEMS Classic API.
This header file provides interfaces of the Thread Handler which are used by the implementation and t...
Definition: thread.h:812