25 #define PCI_CONFIG_SIZE(vif) ((vif->msix_enabled == VIRTIO_MSIX_ENABLED) ? \ 52 dst = (
u8 *) dst + size;
82 src = (
u8 *) src + size;
100 u32 guest_features = 0;
104 return guest_features;
111 if ((guest_features >> 32) != 0)
113 clib_warning (
"only 32 bit features are allowed for legacy virtio!");
116 u32 gf = (
u32) guest_features;
122 if (features != (
u32) guest_features)
139 if (status != VIRTIO_CONFIG_STATUS_RESET)
173 u16 queue_id,
u16 queue_size)
180 u16 queue_id,
void *p)
215 u16 queue_id,
u16 queue_notify_off)
352 for (; i < 64; i += 4)
static void virtio_pci_legacy_write_config(vlib_main_t *vm, virtio_if_t *vif, void *src, int len, u32 addr)
#define VIRTIO_PCI_STATUS
static u16 virtio_pci_legacy_get_device_status(vlib_main_t *vm, virtio_if_t *vif)
#define VIRTIO_MSI_CONFIG_VECTOR
static void virtio_pci_legacy_del_queue(vlib_main_t *vm, virtio_if_t *vif, u16 queue_id)
static void virtio_pci_legacy_set_status(vlib_main_t *vm, virtio_if_t *vif, u8 status)
#define STRUCT_OFFSET_OF(t, f)
#define VIRTIO_PCI_QUEUE_SEL
static u8 virtio_pci_legacy_get_isr(vlib_main_t *vm, virtio_if_t *vif)
u8 * format_ethernet_address(u8 *s, va_list *args)
#define VIRTIO_PCI_QUEUE_NOTIFY
static void virtio_pci_legacy_set_mac(vlib_main_t *vm, virtio_if_t *vif)
static u16 virtio_pci_legacy_set_config_irq(vlib_main_t *vm, virtio_if_t *vif, u16 vec)
static u64 virtio_pci_legacy_get_guest_features(vlib_main_t *vm, virtio_if_t *vif)
static void virtio_pci_legacy_set_queue_num(vlib_main_t *vm, virtio_if_t *vif, u16 queue_id, u16 queue_size)
#define VIRTIO_PCI_HOST_FEATURES
#define VIRTIO_PCI_QUEUE_PFN
static void virtio_pci_legacy_device_debug_config_space(vlib_main_t *vm, virtio_if_t *vif)
u32 vlib_pci_dev_handle_t
static void virtio_pci_legacy_read_config(vlib_main_t *vm, virtio_if_t *vif, void *dst, int len, u32 addr)
#define VIRTIO_MSI_QUEUE_VECTOR
sll srl srl sll sra u16x4 i
#define clib_warning(format, args...)
#define VIRTIO_PCI_QUEUE_NUM
const virtio_pci_func_t virtio_pci_legacy_func
#define VIRTIO_PCI_GUEST_FEATURES
static u8 virtio_pci_legacy_get_status(vlib_main_t *vm, virtio_if_t *vif)
void vlib_cli_output(vlib_main_t *vm, char *fmt,...)
static void virtio_pci_legacy_set_guest_features(vlib_main_t *vm, virtio_if_t *vif, u64 guest_features)
static void virtio_pci_legacy_get_mac(vlib_main_t *vm, virtio_if_t *vif)
static u16 virtio_pci_legacy_get_queue_num(vlib_main_t *vm, virtio_if_t *vif, u16 queue_id)
static u64 vlib_physmem_get_pa(vlib_main_t *vm, void *mem)
struct _virtio_pci_func virtio_pci_func_t
static u8 virtio_pci_legacy_setup_queue(vlib_main_t *vm, virtio_if_t *vif, u16 queue_id, void *p)
static u16 virtio_pci_legacy_set_queue_irq(vlib_main_t *vm, virtio_if_t *vif, u16 vec, u16 queue_id)
static u16 virtio_pci_legacy_get_queue_notify_off(vlib_main_t *vm, virtio_if_t *vif, u16 queue_id)
void virtio_pci_legacy_notify_queue(vlib_main_t *vm, virtio_if_t *vif, u16 queue_id, u16 queue_notify_off)
static u16 virtio_pci_legacy_get_max_queue_pairs(vlib_main_t *vm, virtio_if_t *vif)
#define PCI_CONFIG_SIZE(vif)
static u8 virtio_pci_legacy_reset(vlib_main_t *vm, virtio_if_t *vif)
static u64 virtio_pci_legacy_get_host_features(vlib_main_t *vm, virtio_if_t *vif)
static u16 virtio_pci_legacy_get_mtu(vlib_main_t *vm, virtio_if_t *vif)
#define VIRTIO_PCI_QUEUE_ADDR_SHIFT