| #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 */ |