OpenAMP Library
Data Structures | Macros | Enumerations
rpmsg_internal.h File Reference
#include <stdint.h>
#include <openamp/rpmsg.h>

Go to the source code of this file.

Data Structures

struct  rpmsg_hdr
 
struct  rpmsg_ns_msg
 

Macros

#define RPMSG_ASSERT(_exp, _msg)   metal_assert(_exp)
 
#define RPMSG_BUF_HELD   (1U << 31) /* Flag to suggest to hold the buffer */
 
#define RPMSG_LOCATE_HDR(p)    ((struct rpmsg_hdr *)((unsigned char *)(p) - sizeof(struct rpmsg_hdr)))
 
#define RPMSG_LOCATE_DATA(p)   ((unsigned char *)(p) + sizeof(struct rpmsg_hdr))
 

Enumerations

enum  rpmsg_ns_flags { RPMSG_NS_CREATE = 0 , RPMSG_NS_DESTROY = 1 }
 

: name of remote service that is published

struct rpmsg_ns_msg - dynamic name service announcement message

@addr: address of remote service that is published @flags: indicates whether service is created or destroyed

This message is sent across to publish a new service, or announce about its removal. When we receive these messages, an appropriate rpmsg channel (i.e device) is created/destroyed. In turn, the ->probe() or ->remove() handler of the appropriate rpmsg driver will be invoked (if/as-soon-as one is registered).

METAL_PACKED_BEGIN struct rpmsg_hdr METAL_PACKED_END
 
int rpmsg_send_ns_message (struct rpmsg_endpoint *ept, unsigned long flags)
 
struct rpmsg_endpointrpmsg_get_endpoint (struct rpmsg_device *rvdev, const char *name, uint32_t addr, uint32_t dest_addr)
 
void rpmsg_register_endpoint (struct rpmsg_device *rdev, struct rpmsg_endpoint *ept, const char *name, uint32_t src, uint32_t dest, rpmsg_ept_cb cb, rpmsg_ns_unbind_cb ns_unbind_cb)
 
static struct rpmsg_endpointrpmsg_get_ept_from_addr (struct rpmsg_device *rdev, uint32_t addr)
 

Macro Definition Documentation

◆ RPMSG_ASSERT

#define RPMSG_ASSERT (   _exp,
  _msg 
)    metal_assert(_exp)

◆ RPMSG_BUF_HELD

#define RPMSG_BUF_HELD   (1U << 31) /* Flag to suggest to hold the buffer */

◆ RPMSG_LOCATE_DATA

#define RPMSG_LOCATE_DATA (   p)    ((unsigned char *)(p) + sizeof(struct rpmsg_hdr))

◆ RPMSG_LOCATE_HDR

#define RPMSG_LOCATE_HDR (   p)     ((struct rpmsg_hdr *)((unsigned char *)(p) - sizeof(struct rpmsg_hdr)))

Enumeration Type Documentation

◆ rpmsg_ns_flags

enum rpmsg_ns_flags - dynamic name service announcement flags

@RPMSG_NS_CREATE: a new remote service was just created @RPMSG_NS_DESTROY: a known remote service was just destroyed @RPMSG_NS_CREATE_WITH_ACK: a new remote service was just created waiting acknowledgment.

Enumerator
RPMSG_NS_CREATE 
RPMSG_NS_DESTROY 

Function Documentation

◆ rpmsg_get_endpoint()

struct rpmsg_endpoint* rpmsg_get_endpoint ( struct rpmsg_device rvdev,
const char *  name,
uint32_t  addr,
uint32_t  dest_addr 
)

◆ rpmsg_get_ept_from_addr()

static struct rpmsg_endpoint* rpmsg_get_ept_from_addr ( struct rpmsg_device rdev,
uint32_t  addr 
)
inlinestatic

◆ rpmsg_register_endpoint()

void rpmsg_register_endpoint ( struct rpmsg_device rdev,
struct rpmsg_endpoint ept,
const char *  name,
uint32_t  src,
uint32_t  dest,
rpmsg_ept_cb  cb,
rpmsg_ns_unbind_cb  ns_unbind_cb 
)

◆ rpmsg_send_ns_message()

int rpmsg_send_ns_message ( struct rpmsg_endpoint ept,
unsigned long  flags 
)

Variable Documentation

◆ METAL_PACKED_END

METAL_PACKED_BEGIN struct rpmsg_ns_msg METAL_PACKED_END