blob: 69fbd23c3101abe62fec7ce1a45c52f5a7c2554e [file] [log] [blame]
#ifndef _VIRTIO_MMIO_H
#define _VIRTIO_MMIO_H
struct vp_device;
typedef struct virtio_mmio_cfg {
u32 magic;
u32 version;
u32 device_id;
u32 vendor_id;
u32 device_feature;
u32 device_feature_select;
u32 res_18;
u32 res_1c;
u32 guest_feature;
u32 guest_feature_select;
u32 legacy_guest_page_size;
u32 res_2c;
u32 queue_select;
u32 queue_num_max;
u32 queue_num;
u32 legacy_queue_align;
u32 legacy_queue_pfn;
u32 queue_ready;
u32 res_48;
u32 res_4c;
u32 queue_notify;
u32 res_54;
u32 res_58;
u32 res_5c;
u32 irq_status;
u32 irq_ack;
u32 res_68;
u32 res_6c;
u32 device_status;
u32 res_74;
u32 res_78;
u32 res_7c;
u32 queue_desc_lo;
u32 queue_desc_hi;
u32 res_88;
u32 res_8c;
u32 queue_driver_lo;
u32 queue_driver_hi;
u32 res_98;
u32 res_9c;
u32 queue_device_lo;
u32 queue_device_hi;
u32 res_a8;
u32 shm_sel;
u32 shmem_len_lo;
u32 shmem_len_hi;
u32 shmem_base_lo;
u32 shmem_base_hi;
u32 res_c0_f7[14];
u32 res_f8;
u32 config_generation;
} virtio_mmio_cfg;
void virtio_mmio_setup_acpi(void);
void virtio_mmio_setup_one(u64 mmio);
void vp_init_mmio(struct vp_device *vp, void *mmio);
#endif /* _VIRTIO_MMIO_H */