vringh
struct vringh *vr_rx;
static void cfv_recv(struct virtio_device *vdev, struct vringh *vr_rx)
struct vringh vring;
static void mlx5_cvq_notify(struct vringh *vring)
struct vringh *vrh = &vq->vring;
struct vringh *vrh = &vq->vring;
static void vdpasim_vq_notify(struct vringh *vring)
struct vringh vring;
void vringh_notify_disable_kern(struct vringh *vrh)
int vringh_need_notify_kern(struct vringh *vrh)
static int iotlb_translate(const struct vringh *vrh,
static inline ssize_t vringh_iov_xfer(struct vringh *vrh,
int (*xfer)(const struct vringh *vrh,
static inline int copy_from_iotlb(const struct vringh *vrh, void *dst,
static inline int copy_to_iotlb(const struct vringh *vrh, void *dst,
static inline int getu16_iotlb(const struct vringh *vrh,
static inline int putu16_iotlb(const struct vringh *vrh,
static inline int copydesc_iotlb(const struct vringh *vrh,
static inline int xfer_from_iotlb(const struct vringh *vrh, void *src,
static inline int xfer_to_iotlb(const struct vringh *vrh,
static inline int putused_iotlb(const struct vringh *vrh,
int vringh_init_iotlb(struct vringh *vrh, u64 features,
int vringh_init_iotlb_va(struct vringh *vrh, u64 features,
void vringh_set_iotlb(struct vringh *vrh, struct vhost_iotlb *iotlb,
int vringh_getdesc_iotlb(struct vringh *vrh,
static inline bool range_check(struct vringh *vrh, u64 addr, size_t *len,
ssize_t vringh_iov_pull_iotlb(struct vringh *vrh,
bool (*getrange)(struct vringh *,
ssize_t vringh_iov_push_iotlb(struct vringh *vrh,
int vringh_complete_iotlb(struct vringh *vrh, u16 head, u32 len)
int vringh_need_notify_iotlb(struct vringh *vrh)
static inline bool no_range_check(struct vringh *vrh, u64 addr, size_t *len,
bool (*getrange)(struct vringh *,
static int move_to_indirect(const struct vringh *vrh,
static u16 __cold return_from_indirect(const struct vringh *vrh, int *up_next,
static int slow_copy(struct vringh *vrh, void *dst, const void *src,
bool (*rcheck)(struct vringh *vrh, u64 addr, size_t *len,
bool (*getrange)(struct vringh *vrh,
bool (*getrange)(struct vringh *vrh,
int (*copy)(const struct vringh *vrh,
__vringh_iov(struct vringh *vrh, u16 i,
bool (*rcheck)(struct vringh *vrh, u64 addr, size_t *len,
bool (*getrange)(struct vringh *, u64,
bool (*getrange)(struct vringh *, u64, struct vringh_range *),
int (*copy)(const struct vringh *vrh,
static inline int __vringh_get_head(const struct vringh *vrh,
int (*getu16)(const struct vringh *vrh,
static inline int __vringh_complete(struct vringh *vrh,
int (*putu16)(const struct vringh *vrh,
int (*putused)(const struct vringh *vrh,
static inline int __vringh_need_notify(struct vringh *vrh,
int (*getu16)(const struct vringh *vrh,
static inline bool __vringh_notify_enable(struct vringh *vrh,
int (*getu16)(const struct vringh *vrh,
int (*putu16)(const struct vringh *vrh,
static inline void __vringh_notify_disable(struct vringh *vrh,
int (*putu16)(const struct vringh *vrh,
static inline int getu16_user(const struct vringh *vrh, u16 *val, const __virtio16 *p)
static inline int putu16_user(const struct vringh *vrh, __virtio16 *p, u16 val)
static inline int copydesc_user(const struct vringh *vrh,
static inline int putused_user(const struct vringh *vrh,
static inline int xfer_from_user(const struct vringh *vrh, void *src,
static inline int xfer_to_user(const struct vringh *vrh,
int vringh_init_user(struct vringh *vrh, u64 features,
int vringh_getdesc_user(struct vringh *vrh,
bool (*getrange)(struct vringh *vrh,
int vringh_complete_user(struct vringh *vrh, u16 head, u32 len)
int vringh_complete_multi_user(struct vringh *vrh,
bool vringh_notify_enable_user(struct vringh *vrh)
void vringh_notify_disable_user(struct vringh *vrh)
int vringh_need_notify_user(struct vringh *vrh)
static inline int getu16_kern(const struct vringh *vrh,
static inline int putu16_kern(const struct vringh *vrh, __virtio16 *p, u16 val)
static inline int copydesc_kern(const struct vringh *vrh,
static inline int putused_kern(const struct vringh *vrh,
int vringh_init_kern(struct vringh *vrh, u64 features,
int vringh_getdesc_kern(struct vringh *vrh,
int vringh_complete_kern(struct vringh *vrh, u16 head, u32 len)
bool vringh_notify_enable_kern(struct vringh *vrh)
int vringh_init_user(struct vringh *vrh, u64 features,
int vringh_getdesc_user(struct vringh *vrh,
bool (*getrange)(struct vringh *vrh,
int vringh_complete_user(struct vringh *vrh, u16 head, u32 len);
int vringh_complete_multi_user(struct vringh *vrh,
int vringh_need_notify_user(struct vringh *vrh);
bool vringh_notify_enable_user(struct vringh *vrh);
void vringh_notify_disable_user(struct vringh *vrh);
int vringh_init_kern(struct vringh *vrh, u64 features,
int vringh_getdesc_kern(struct vringh *vrh,
int vringh_complete_kern(struct vringh *vrh, u16 head, u32 len);
bool vringh_notify_enable_kern(struct vringh *vrh);
void vringh_notify_disable_kern(struct vringh *vrh);
int vringh_need_notify_kern(struct vringh *vrh);
static inline void vringh_notify(struct vringh *vrh)
static inline bool vringh_is_little_endian(const struct vringh *vrh)
static inline u16 vringh16_to_cpu(const struct vringh *vrh, __virtio16 val)
static inline __virtio16 cpu_to_vringh16(const struct vringh *vrh, u16 val)
static inline u32 vringh32_to_cpu(const struct vringh *vrh, __virtio32 val)
static inline __virtio32 cpu_to_vringh32(const struct vringh *vrh, u32 val)
static inline u64 vringh64_to_cpu(const struct vringh *vrh, __virtio64 val)
static inline __virtio64 cpu_to_vringh64(const struct vringh *vrh, u64 val)
void vringh_set_iotlb(struct vringh *vrh, struct vhost_iotlb *iotlb,
int vringh_init_iotlb(struct vringh *vrh, u64 features,
int vringh_init_iotlb_va(struct vringh *vrh, u64 features,
int vringh_getdesc_iotlb(struct vringh *vrh,
ssize_t vringh_iov_pull_iotlb(struct vringh *vrh,
ssize_t vringh_iov_push_iotlb(struct vringh *vrh,
int vringh_complete_iotlb(struct vringh *vrh, u16 head, u32 len);
int vringh_need_notify_iotlb(struct vringh *vrh);
void (*notify)(struct vringh *);
typedef void vrh_callback_t(struct virtio_device *, struct vringh *);
struct vringh *vrhs[], vrh_callback_t *callbacks[]);
static inline int vringh_get_head(struct vringh *vrh, u16 *head)
bool (*getrange)(struct vringh *vrh,
struct vringh vrh;
static bool getrange_iov(struct vringh *vrh, u64 addr, struct vringh_range *r)
struct vringh vrh;
bool (*getrange)(struct vringh *vrh, u64 addr, struct vringh_range *r);
static bool getrange_slow(struct vringh *vrh, u64 addr, struct vringh_range *r)