xv6-simplified 0.1
简化版xv6
|
定义virtio设备,包括mmio接口,virtio描述符 More...
Go to the source code of this file.
Data Structures | |
struct | virtq_desc |
struct | virtq_avail |
struct | virtq_used_elem |
struct | virtq_used |
struct | virtio_blk_req |
定义virtio设备,包括mmio接口,virtio描述符
参考规范:../../other/工具/QEMU/virtio-v1.1.pdf
#define NUM 8 |
#define VIRTIO_BLK_F_CONFIG_WCE 11 /* Writeback mode available in config */ |
#define VIRTIO_BLK_F_MQ 12 /* support more than one vq */ |
#define VIRTIO_BLK_F_RO 5 /* Disk is read-only */ |
#define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */ |
#define VIRTIO_BLK_T_IN 0 |
#define VIRTIO_BLK_T_OUT 1 |
#define VIRTIO_CONFIG_S_ACKNOWLEDGE 1 |
#define VIRTIO_CONFIG_S_DRIVER 2 |
#define VIRTIO_CONFIG_S_DRIVER_OK 4 |
#define VIRTIO_CONFIG_S_FEATURES_OK 8 |
#define VIRTIO_F_ANY_LAYOUT 27 |
#define VIRTIO_MMIO_DEVICE_DESC_HIGH 0x0a4 |
#define VIRTIO_MMIO_DEVICE_DESC_LOW 0x0a0 |
#define VIRTIO_MMIO_DEVICE_FEATURES 0x010 |
#define VIRTIO_MMIO_DEVICE_ID 0x008 |
#define VIRTIO_MMIO_DRIVER_DESC_HIGH 0x094 |
#define VIRTIO_MMIO_DRIVER_DESC_LOW 0x090 |
#define VIRTIO_MMIO_DRIVER_FEATURES 0x020 |
#define VIRTIO_MMIO_INTERRUPT_ACK 0x064 |
#define VIRTIO_MMIO_INTERRUPT_STATUS 0x060 |
#define VIRTIO_MMIO_MAGIC_VALUE 0x000 |
#define VIRTIO_MMIO_QUEUE_DESC_HIGH 0x084 |
#define VIRTIO_MMIO_QUEUE_DESC_LOW 0x080 |
#define VIRTIO_MMIO_QUEUE_NOTIFY 0x050 |
#define VIRTIO_MMIO_QUEUE_NUM 0x038 |
#define VIRTIO_MMIO_QUEUE_NUM_MAX 0x034 |
#define VIRTIO_MMIO_QUEUE_READY 0x044 |
#define VIRTIO_MMIO_QUEUE_SEL 0x030 |
#define VIRTIO_MMIO_STATUS 0x070 |
#define VIRTIO_MMIO_VENDOR_ID 0x00c |
#define VIRTIO_MMIO_VERSION 0x004 |
#define VIRTIO_RING_F_EVENT_IDX 29 |
#define VIRTIO_RING_F_INDIRECT_DESC 28 |
#define VRING_DESC_F_NEXT 1 |
#define VRING_DESC_F_WRITE 2 |