Zephyr Project API 3.7.0
A Scalable Open Source RTOS
|
IPC service RPMsg API. More...
Data Structures | |
struct | ipc_rpmsg_ept |
Endpoint structure. More... | |
struct | ipc_rpmsg_instance |
RPMsg instance structure. More... | |
Macros | |
#define | NUM_ENDPOINTS CONFIG_IPC_SERVICE_BACKEND_RPMSG_NUM_ENDPOINTS_PER_INSTANCE |
Number of endpoints. | |
Typedefs | |
typedef void(* | rpmsg_ept_bound_cb) (struct ipc_rpmsg_ept *ept) |
Define the bound callback. | |
Functions | |
int | ipc_rpmsg_init (struct ipc_rpmsg_instance *instance, unsigned int role, unsigned int buffer_size, struct metal_io_region *shm_io, struct virtio_device *vdev, void *shb, size_t size, rpmsg_ns_bind_cb ns_bind_cb) |
Init an RPMsg instance. | |
int | ipc_rpmsg_deinit (struct ipc_rpmsg_instance *instance, unsigned int role) |
Deinit an RPMsg instance. | |
int | ipc_rpmsg_register_ept (struct ipc_rpmsg_instance *instance, unsigned int role, struct ipc_rpmsg_ept *ept) |
Register an endpoint. | |
IPC service RPMsg API.
#define NUM_ENDPOINTS CONFIG_IPC_SERVICE_BACKEND_RPMSG_NUM_ENDPOINTS_PER_INSTANCE |
#include <include/zephyr/ipc/ipc_rpmsg.h>
Number of endpoints.
rpmsg_ept_bound_cb |
#include <include/zephyr/ipc/ipc_rpmsg.h>
Define the bound callback.
This callback is defined at instance level and it is called when an endpoint of the instance is bound.
ept | Endpoint of the instance just bound. |
int ipc_rpmsg_deinit | ( | struct ipc_rpmsg_instance * | instance, |
unsigned int | role | ||
) |
#include <include/zephyr/ipc/ipc_rpmsg.h>
Deinit an RPMsg instance.
instance | Pointer to the RPMsg instance struct. |
role | Host / Remote role. |
-EINVAL | When some parameter is missing |
0 | If successful |
int ipc_rpmsg_init | ( | struct ipc_rpmsg_instance * | instance, |
unsigned int | role, | ||
unsigned int | buffer_size, | ||
struct metal_io_region * | shm_io, | ||
struct virtio_device * | vdev, | ||
void * | shb, | ||
size_t | size, | ||
rpmsg_ns_bind_cb | ns_bind_cb | ||
) |
#include <include/zephyr/ipc/ipc_rpmsg.h>
Init an RPMsg instance.
Init an RPMsg instance.
instance | Pointer to the RPMsg instance struct. |
role | Host / Remote role. |
buffer_size | Size of the buffer used to send data between host and remote. |
shm_io | SHM IO region pointer. |
vdev | VirtIO device pointer. |
shb | Shared memory region pointer. |
size | Size of the shared memory region. |
ns_bind_cb | callback handler for name service announcement without local endpoints waiting to bind. If NULL the implementation falls back to the internal implementation. |
-EINVAL | When some parameter is missing. |
0 | If successful. |
Other | errno codes depending on the OpenAMP implementation. |
int ipc_rpmsg_register_ept | ( | struct ipc_rpmsg_instance * | instance, |
unsigned int | role, | ||
struct ipc_rpmsg_ept * | ept | ||
) |
#include <include/zephyr/ipc/ipc_rpmsg.h>
Register an endpoint.
Register an endpoint to a provided RPMsg instance.
instance | Pointer to the RPMsg instance struct. |
role | Host / Remote role. |
ept | Endpoint to register. |
-EINVAL | When some parameter is missing. |
0 | If successful. |
Other | errno codes depending on the OpenAMP implementation. |