12 #ifndef REMOTEPROC_VIRTIO_H
13 #define REMOTEPROC_VIRTIO_H
16 #include <metal/list.h>
19 #if defined __cplusplus
24 #define RPROC_MAX_VRING_DESC USHRT_MAX
44 struct metal_list
node;
63 void *rsc,
struct metal_io_region *rsc_io,
90 struct metal_io_region *io,
91 unsigned int num_descs,
unsigned int align);
113 #if defined __cplusplus
int rproc_virtio_init_vring(struct virtio_device *vdev, unsigned int index, unsigned int notifyid, void *va, struct metal_io_region *io, unsigned int num_descs, unsigned int align)
Initialize rproc virtio vring.
Definition: remoteproc_virtio.c:295
struct virtio_device * rproc_virtio_create_vdev(unsigned int role, unsigned int notifyid, void *rsc, struct metal_io_region *rsc_io, void *priv, rpvdev_notify_func notify, virtio_dev_reset_cb rst_cb)
Create rproc virtio vdev.
Definition: remoteproc_virtio.c:197
void rproc_virtio_wait_remote_ready(struct virtio_device *vdev)
Blocking function, waiting for the remote core is ready to start communications.
Definition: remoteproc_virtio.c:339
int(* rpvdev_notify_func)(void *priv, uint32_t id)
Definition: remoteproc_virtio.h:27
void rproc_virtio_remove_vdev(struct virtio_device *vdev)
Remove rproc virtio vdev.
Definition: remoteproc_virtio.c:275
int rproc_virtio_notified(struct virtio_device *vdev, uint32_t notifyid)
remoteproc virtio is got notified
Definition: remoteproc_virtio.c:316
Definition: remoteproc_virtio.h:38
struct metal_list node
Definition: remoteproc_virtio.h:44
rpvdev_notify_func notify
Definition: remoteproc_virtio.h:42
void * vdev_rsc
Definition: remoteproc_virtio.h:40
struct virtio_device vdev
Definition: remoteproc_virtio.h:43
struct metal_io_region * vdev_rsc_io
Definition: remoteproc_virtio.h:41
void * priv
Definition: remoteproc_virtio.h:39
unsigned int role
Definition: virtio.h:124
void * priv
Definition: virtio.h:127
uint32_t notifyid
Definition: virtio.h:119
void(* virtio_dev_reset_cb)(struct virtio_device *vdev)
Definition: virtio.h:90