49 lines
1.2 KiB
C
49 lines
1.2 KiB
C
|
|
/** \file
|
|
* \brief This file contains definitions and prototypes for messaging using inter-processor
|
|
* communication (IPC).
|
|
*/
|
|
|
|
#ifndef COMM_IPC_MESSAGES_H
|
|
#define COMM_IPC_MESSAGES_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Include Files */
|
|
|
|
/* Preprocessor and Type Definitions */
|
|
|
|
typedef enum
|
|
{
|
|
//! This is not an actual message. Upon receipt, do nothing.
|
|
COMM_SMM_DefaultNoMessage = 0,
|
|
//! Reboot the system immediately upon receipt of this message (Data is "don't care").
|
|
COMM_SMM_RebootImmediately,
|
|
//! This is not an actual message. Upon receipt, do nothing.
|
|
COMM_SMM_NoMessage = 0xFFFFFFFF,
|
|
} COMM_IPCMessageID_T;
|
|
|
|
typedef struct
|
|
{
|
|
//! The client ID number is the index into the callback array.
|
|
uint32_t ClientID;
|
|
//! The message ID represents the meaning of the message being sent.
|
|
COMM_IPCMessageID_T MessageID;
|
|
//! The contents of Data are different for each message ID. See #COMM_IPCMessageID_T for more details.
|
|
void * Data;
|
|
} COMM_IPCMessage_T;
|
|
|
|
/* Public Variables */
|
|
|
|
/* Public Functions */
|
|
|
|
void COMM_InitIPCMessages(void);
|
|
bool COMM_SendMessageToOtherCore(COMM_IPCMessageID_T message_ID, void * message_data);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // COMM_IPC_MESSAGES_H
|