AM62Px MCU+ SDK  10.01.00
ipc_rpmsg.h File Reference

Go to the source code of this file.

Data Structures

struct  RPMessage_Object
 Opaque RPMessage object used with the RPMessage APIs. More...
 
struct  RPMessage_CreateParams
 Parameters passed to RPMessage_construct. More...
 
struct  RPMessage_Params
 Parameters passed to RPMessage_init, these are generated via SysCfg. More...
 

Macros

#define RPMESSAGE_MAX_LOCAL_ENDPT   (64U)
 Users can create RPMessage_Object with local end value in the range of 0 .. RPMESSAGE_MAX_LOCAL_ENDPT - 1. More...
 
#define RPMESSAGE_VRING_ADDR_INVALID   (0xFFFFFFFFU)
 Value to indicate if vring ID is valid or NOT. More...
 
#define RPMESSAGE_VRING_SIZE(numBuf, bufSize)   (((numBuf)*(uint16_t)((bufSize) + 32U)) + 32U)
 Returns the size needed for each VRING. More...
 
#define RPMESSAGE_VRING_SIZE_PDK(numBuf, bufSize)   (2 * ((numBuf)*((bufSize))))
 Returns the size needed for each VRING. More...
 
#define RPMESSAGE_OBJECT_SIZE_MAX   (192U)
 Size of RPMessage_Object. More...
 

Typedefs

typedef void(* RPMessage_RecvCallback) (RPMessage_Object *obj, void *arg, void *data, uint16_t dataLen, uint16_t remoteCoreId, uint16_t remoteEndPt)
 Callback that is invoked when a message is received from any CPU at the specified local end point. More...
 
typedef void(* RPMessage_RecvNotifyCallback) (RPMessage_Object *obj, void *arg)
 Callback that is invoked when a message is received from any CPU at the specified local end point. More...
 
typedef void(* RPMessage_ControlEndPtCallback) (void *arg, uint16_t remoteCoreId, uint16_t remoteEndPt, const char *remoteServiceName)
 Callback that is invoked when a annoucement message is received on the control end point. More...
 

Functions

void RPMessage_Params_init (RPMessage_Params *params)
 Set default values to RPMessage_Params. More...
 
void RPMessage_CreateParams_init (RPMessage_CreateParams *params)
 Set default values to RPMessage_CreateParams. More...
 
int32_t RPMessage_init (const RPMessage_Params *params)
 Initialize RPMessage module. More...
 
void RPMessage_deInit (void)
 De-Initialize RPMessage module. More...
 
int32_t RPMessage_waitForLinuxReady (uint32_t timeout)
 Wait for linux side RPMessage to be ready. More...
 
void RPMessage_controlEndPtCallback (RPMessage_ControlEndPtCallback controlEndPtCallback, void *controlEndPtCallbackArgs)
 Callback to call when a control message is received on a control end point. More...
 
int32_t RPMessage_construct (RPMessage_Object *obj, const RPMessage_CreateParams *createParams)
 Create a RPMessage object to receive messages at a specified end-point. More...
 
void RPMessage_destruct (RPMessage_Object *obj)
 Delete a previously created RPMessage object. More...
 
void RPMessage_unblock (RPMessage_Object *obj)
 Unblocks RPMessage_recv, for the input object, if it is blocked waiting on messages and users want to exit that task. More...
 
uint16_t RPMessage_getLocalEndPt (const RPMessage_Object *obj)
 Return local end point of a RPMessage_Object. More...
 
int32_t RPMessage_announce (uint16_t remoteProcId, uint16_t localEndPt, const char *name)
 Announce a local end point at which a service is created to a remote core. More...
 
int32_t RPMessage_send (void *data, uint16_t dataLen, uint16_t remoteCoreId, uint16_t remoteEndPt, uint16_t localEndPt, uint32_t timeout)
 Send a message to a remote core at a specified remote end point. More...
 
int32_t RPMessage_recv (RPMessage_Object *obj, void *data, uint16_t *dataLen, uint16_t *remoteCoreId, uint32_t *remoteEndPt, uint32_t timeout)
 Blocking API to wait till a message is received from any CPU at the specified local end point. More...