File indexing completed on 2025-05-11 08:24:53
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051 #ifndef _TR_EVENT_SEND_RECEIVE_H
0052 #define _TR_EVENT_SEND_RECEIVE_H
0053
0054 #include <rtems.h>
0055 #include <rtems/score/thread.h>
0056
0057 #ifdef __cplusplus
0058 extern "C" {
0059 #endif
0060
0061
0062
0063
0064
0065
0066
0067 typedef enum {
0068 RtemsEventReqSendReceive_Pre_Id_InvId,
0069 RtemsEventReqSendReceive_Pre_Id_Task,
0070 RtemsEventReqSendReceive_Pre_Id_NA
0071 } RtemsEventReqSendReceive_Pre_Id;
0072
0073 typedef enum {
0074 RtemsEventReqSendReceive_Pre_Send_Zero,
0075 RtemsEventReqSendReceive_Pre_Send_Unrelated,
0076 RtemsEventReqSendReceive_Pre_Send_Any,
0077 RtemsEventReqSendReceive_Pre_Send_All,
0078 RtemsEventReqSendReceive_Pre_Send_MixedAny,
0079 RtemsEventReqSendReceive_Pre_Send_MixedAll,
0080 RtemsEventReqSendReceive_Pre_Send_NA
0081 } RtemsEventReqSendReceive_Pre_Send;
0082
0083 typedef enum {
0084 RtemsEventReqSendReceive_Pre_ReceiverState_InvAddr,
0085 RtemsEventReqSendReceive_Pre_ReceiverState_NotWaiting,
0086 RtemsEventReqSendReceive_Pre_ReceiverState_Poll,
0087 RtemsEventReqSendReceive_Pre_ReceiverState_Timeout,
0088 RtemsEventReqSendReceive_Pre_ReceiverState_Lower,
0089 RtemsEventReqSendReceive_Pre_ReceiverState_Equal,
0090 RtemsEventReqSendReceive_Pre_ReceiverState_Higher,
0091 RtemsEventReqSendReceive_Pre_ReceiverState_Other,
0092 RtemsEventReqSendReceive_Pre_ReceiverState_Intend,
0093 RtemsEventReqSendReceive_Pre_ReceiverState_NA
0094 } RtemsEventReqSendReceive_Pre_ReceiverState;
0095
0096 typedef enum {
0097 RtemsEventReqSendReceive_Pre_Satisfy_All,
0098 RtemsEventReqSendReceive_Pre_Satisfy_Any,
0099 RtemsEventReqSendReceive_Pre_Satisfy_NA
0100 } RtemsEventReqSendReceive_Pre_Satisfy;
0101
0102 typedef enum {
0103 RtemsEventReqSendReceive_Post_SendStatus_Ok,
0104 RtemsEventReqSendReceive_Post_SendStatus_InvId,
0105 RtemsEventReqSendReceive_Post_SendStatus_NA
0106 } RtemsEventReqSendReceive_Post_SendStatus;
0107
0108 typedef enum {
0109 RtemsEventReqSendReceive_Post_ReceiveStatus_None,
0110 RtemsEventReqSendReceive_Post_ReceiveStatus_Pending,
0111 RtemsEventReqSendReceive_Post_ReceiveStatus_Timeout,
0112 RtemsEventReqSendReceive_Post_ReceiveStatus_Satisfied,
0113 RtemsEventReqSendReceive_Post_ReceiveStatus_Unsatisfied,
0114 RtemsEventReqSendReceive_Post_ReceiveStatus_Blocked,
0115 RtemsEventReqSendReceive_Post_ReceiveStatus_InvAddr,
0116 RtemsEventReqSendReceive_Post_ReceiveStatus_NA
0117 } RtemsEventReqSendReceive_Post_ReceiveStatus;
0118
0119 typedef enum {
0120 RtemsEventReqSendReceive_Post_SenderPreemption_No,
0121 RtemsEventReqSendReceive_Post_SenderPreemption_Yes,
0122 RtemsEventReqSendReceive_Post_SenderPreemption_NA
0123 } RtemsEventReqSendReceive_Post_SenderPreemption;
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138 void RtemsEventReqSendReceive_Run(
0139 rtems_status_code ( *send )( rtems_id, rtems_event_set ),
0140 rtems_status_code ( *receive )( rtems_event_set, rtems_option, rtems_interval, rtems_event_set * ),
0141 rtems_event_set ( *get_pending_events )( Thread_Control * ),
0142 unsigned int wait_class,
0143 int waiting_for_event
0144 );
0145
0146
0147
0148 #ifdef __cplusplus
0149 }
0150 #endif
0151
0152 #endif