index 7fb507337104c65335db8b930d885a41f8d9370d..e8553d2c4a319c9d8ce3192e7900088137c94d37 100644 (file)
#define ASP_MSG_MASTER_DEF_NUMMSGS ( 4 )
+// save message info
+typedef struct AspMsgMaster_SaveMsgInfo
+{
+ UInt32 sndCmd; // command sent from master to slave
+ UInt32 msgId; // Id contained in LS 31 bits, MS bit is 0
+} AspMsgMaster_SaveMsgInfo;
+
// module structure
typedef struct AspMsgMaster_Module
{
- UInt16 masterProcId; // master processor id
- UInt16 slaveProcId; // slave processor id
- MessageQ_Handle masterQue; // created locally
- MessageQ_QueueId slaveQueId; // created remotely, opened locally
- UInt16 heapId; // MessageQ heapId
- UInt16 numMsgs; // number of messages
- HeapBuf_Handle heap; // message heap
- Int msgSize; // aligned size of message
- Int poolSize; // size of message pool
- Ptr store; // memory store for message pool
- UInt32 messageId; // Next send message Id. Format: Id contained in LS 31 bits, MS bit is 0.
- UInt32 *saveMsgId; // Send message Id array. Array member format: Id contained in LS 31 bits, MS bit is 0.
- UInt8 saveMsgWrtIdx; // index of next location in saveMessageId[] for write (message send)
- UInt8 saveMsgRdIdx; // index of next location in saveMessageId[] for read (message receive)
- Int8 numSaveMsgId; // number of saved message Ids
- SyncEvent_Handle syncEventHandle; // sync event handle
- Event_Handle eventHandle; // event handle
- UInt eventId; // event Id
+ UInt16 masterProcId; // master processor id
+ UInt16 slaveProcId; // slave processor id
+ MessageQ_Handle masterQue; // created locally
+ MessageQ_QueueId slaveQueId; // created remotely, opened locally
+ UInt16 heapId; // MessageQ heapId
+ UInt16 numMsgs; // maximum number of messages
+ HeapBuf_Handle heap; // message heap
+ Int msgSize; // aligned size of message
+ Int poolSize; // size of message pool
+ Ptr store; // memory store for message pool
+ UInt32 messageId; // Next send message Id. Format: Id contained in LS 31 bits, MS bit is 0.
+ AspMsgMaster_SaveMsgInfo *saveMsgInfo; // Send message info array
+ UInt8 saveMsgWrtIdx; // index of next location in saveMsgInfo[] for write (message send)
+ UInt8 saveMsgRdIdx; // index of next location in saveMsgInfo[] for read (message receive)
+ Int8 numSaveMsgInfo; // number of saved message info
+ SyncEvent_Handle syncEventHandle; // sync event handle
+ Event_Handle eventHandle; // event handle
+ UInt eventId; // event Id
} AspMsgMaster_Module;
// module handle
Int // returned status
AspMsgSnd(
AspMsgMaster_Handle hAspMsgMaster, // message master handle
- UInt32 sndCmd, // command sent from master to slave
- char *sndMsgBuf // message buffer for message sent from master to slave
+ UInt32 sndCmd, // command sent from master to slave
+ char *sndMsgBuf // message buffer for message sent from master to slave
);
/*
*
* Description:
* This function receives an acknowledgment message from the slave to the master processor.
+ * The expected acknowledgement is an input to the function.
*/
Int // returned status
AspMsgRcvAck(
AspMsgMaster_Handle hAspMsgMaster, // message master handle
- UInt32 ackCmd, // acknowledgment sent from slave to master
- char *ackMsgBuf, // message buffer for acknowledgment message sent from slave to master
+ UInt32 ackCmd, // expected acknowledgment sent from slave to master
+ char *ackMsgBuf, // message buffer for acknowledgment message sent from slave to master
+ Bool pendOnEvent // whether to pend on Event synchronizer
+);
+
+/*
+ * ASP message get number of outstanding messages function
+ *
+ * Description:
+ * This function returns the number of messages sent to the slave which haven't yet been acknowledged.
+ */
+Int // returned status
+AspMsgGetNumSndMsgUnack(
+ AspMsgMaster_Handle hAspMsgMaster, // message master handle
+ UInt16 *pNumSndMsgUnack // number of unacknowledged messages sent to the slave
+);
+
+/*
+ * ASP message receive acknowledge function
+ *
+ * Description:
+ * This function receives an acknowledgment message from the slave to the master processor.
+ * The receive acknowledgement is output by the function.
+ */
+Int // returned status
+AspMsgRcvAckUnk(
+ AspMsgMaster_Handle hAspMsgMaster, // message master handle
+ UInt32 *pAckCmd, // acknowledgment sent from slave to master
+ char *ackMsgBuf, // message buffer for acknowledgment message sent from slave to master
Bool pendOnEvent // whether to pend on Event synchronizer
);