Changeset View
Changeset View
Standalone View
Standalone View
usr.sbin/bhyve/virtio.h
Show First 20 Lines • Show All 365 Lines • ▼ Show 20 Lines | |||||
static inline void | static inline void | ||||
vq_kick_disable(struct vqueue_info *vq) | vq_kick_disable(struct vqueue_info *vq) | ||||
{ | { | ||||
vq->vq_used->flags |= VRING_USED_F_NO_NOTIFY; | vq->vq_used->flags |= VRING_USED_F_NO_NOTIFY; | ||||
} | } | ||||
struct iovec; | struct iovec; | ||||
/* | |||||
* Request description returned by vq_getchain | |||||
*/ | |||||
struct vi_req { | |||||
struct iovec *rd_iov; /* driver-to-device buffer iovec */ | |||||
struct iovec *wr_iov; /* device-to-driver buffer iovec */ | |||||
int rd_niov; /* num of driver-to-device iovec */ | |||||
int wr_niov; /* num of driver-to-device iovec */ | |||||
unsigned int idx; /* ring index */ | |||||
}; | |||||
void vi_softc_linkup(struct virtio_softc *vs, struct virtio_consts *vc, | void vi_softc_linkup(struct virtio_softc *vs, struct virtio_consts *vc, | ||||
void *dev_softc, struct pci_devinst *pi, | void *dev_softc, struct pci_devinst *pi, | ||||
struct vqueue_info *queues); | struct vqueue_info *queues); | ||||
int vi_intr_init(struct virtio_softc *vs, int barnum, int use_msix); | int vi_intr_init(struct virtio_softc *vs, int barnum, int use_msix); | ||||
void vi_reset_dev(struct virtio_softc *); | void vi_reset_dev(struct virtio_softc *); | ||||
void vi_set_io_bar(struct virtio_softc *, int); | void vi_set_io_bar(struct virtio_softc *, int); | ||||
int vq_getchain(struct vqueue_info *vq, uint16_t *pidx, | int vq_getchain(struct vqueue_info *vq, struct iovec *iov, int niov, | ||||
struct iovec *iov, int n_iov, uint16_t *flags); | struct vi_req *reqp); | ||||
void vq_retchains(struct vqueue_info *vq, uint16_t n_chains); | void vq_retchains(struct vqueue_info *vq, uint16_t n_chains); | ||||
void vq_relchain_prepare(struct vqueue_info *vq, uint16_t idx, | void vq_relchain_prepare(struct vqueue_info *vq, uint16_t idx, | ||||
uint32_t iolen); | uint32_t iolen); | ||||
void vq_relchain_publish(struct vqueue_info *vq); | void vq_relchain_publish(struct vqueue_info *vq); | ||||
void vq_relchain(struct vqueue_info *vq, uint16_t idx, uint32_t iolen); | void vq_relchain(struct vqueue_info *vq, uint16_t idx, uint32_t iolen); | ||||
void vq_endchains(struct vqueue_info *vq, int used_all_avail); | void vq_endchains(struct vqueue_info *vq, int used_all_avail); | ||||
uint64_t vi_pci_read(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, | uint64_t vi_pci_read(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, | ||||
Show All 9 Lines |