/** \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