2 #ifndef COM_INTERNAL_H_
\r
3 #define COM_INTERNAL_H_
\r
6 /*-----------------------------------------------------------------*/
\r
9 * The only information about the COM that is valid is
\r
10 * in the COM specification ..SWS_COM.pdf.
\r
12 * The most important requirements are COM010 and COM013
\r
18 * No. GetMessageStatus()
\r
19 * No. SendZeroMessage()
\r
20 * No. SendDynamicMessage(), RecieveDynamicMessage()
\r
21 * Yes. SendMessage()
\r
25 typedef enum OsMessageProperty {
\r
27 SEND_STATIC_INTERNAL,
\r
28 // messages are not consumed during read
\r
29 RECEIVE_UNQUEUED_INTERNAL,
\r
30 // We have an internal queue
\r
31 RECEIVE_QUEUE_INTERNAL,
\r
32 } OsMessagePropertyType;
\r
36 typedef enum OsMessageNotificationAction {
\r
37 MESSAGE_NOTIFICATION_ACTION_NONE=0,
\r
38 MESSAGE_NOTIFICATION_ACTION_ACTIVATETASK,
\r
39 MESSAGE_NOTIFICATION_ACTION_SETEVENT,
\r
40 } OsMessageNotificationActionType;
\r
42 typedef struct OsMessageNotification {
\r
43 OsMessageNotificationActionType type;
\r
45 EventMaskType event_id;
\r
46 } OsMessageNotificationType;
\r
49 typedef struct OsMessage {
\r
50 OsMessagePropertyType property; // send/recieve...
\r
51 OsMessageNotificationType notification;
\r
52 int q_size; // 0-Not queued
\r
54 // TODO: This is not a good solution but it will have to do for now
\r
60 #endif /* COM_INTERNAL_H_ */
\r