Loading...
Searching...
No Matches
Go to the documentation of this file.
13#ifndef _VIRTIO_0_9_5_H_
14#define _VIRTIO_0_9_5_H_
21#define VIRTIO_SUBSYSTEM_NETWORK_CARD 1
22#define VIRTIO_SUBSYSTEM_BLOCK_DEVICE 2
23#define VIRTIO_SUBSYSTEM_CONSOLE 3
24#define VIRTIO_SUBSYSTEM_ENTROPY_SOURCE 4
25#define VIRTIO_SUBSYSTEM_MEMORY_BALLOONING 5
26#define VIRTIO_SUBSYSTEM_IO_MEMORY 6
27#define VIRTIO_SUBSYSTEM_RPMSG 7
28#define VIRTIO_SUBSYSTEM_SCSI_HOST 8
29#define VIRTIO_SUBSYSTEM_9P_TRANSPORT 9
30#define VIRTIO_SUBSYSTEM_MAC80211_WLAN 10
35#define VIRTIO_VENDOR_ID 0x1AF4
36#define VIRTIO_MMIO_MAGIC 0x74726976
41#define VIRTIO_DEVICE_SPECIFIC_CONFIGURATION_OFFSET_PCI 20
42#define VIRTIO_DEVICE_SPECIFIC_CONFIGURATION_OFFSET_PCI_WITH_MSI_X 24
43#define VIRTIO_DEVICE_SPECIFIC_CONFIGURATION_OFFSET_MMIO 0x100
48#define VIRTIO_PCI_OFFSET_DEVICE_FEATURES 0x00
49#define VIRTIO_PCI_OFFSET_GUEST_FEATURES 0x04
50#define VIRTIO_PCI_OFFSET_QUEUE_ADDRESS 0x08
51#define VIRTIO_PCI_OFFSET_QUEUE_SIZE 0x0C
52#define VIRTIO_PCI_OFFSET_QUEUE_SELECT 0x0E
53#define VIRTIO_PCI_OFFSET_QUEUE_NOTIFY 0x10
54#define VIRTIO_PCI_OFFSET_QUEUE_DEVICE_STATUS 0x12
55#define VIRTIO_PCI_OFFSET_QUEUE_DEVICE_ISR 0x13
60#define VIRTIO_MMIO_OFFSET_MAGIC 0x00
61#define VIRTIO_MMIO_OFFSET_VERSION 0x04
62#define VIRTIO_MMIO_OFFSET_DEVICE_ID 0x08
63#define VIRTIO_MMIO_OFFSET_VENDOR_ID 0x0C
64#define VIRTIO_MMIO_OFFSET_HOST_FEATURES 0x10
65#define VIRTIO_MMIO_OFFSET_HOST_FEATURES_SEL 0x14
66#define VIRTIO_MMIO_OFFSET_GUEST_FEATURES 0x20
67#define VIRTIO_MMIO_OFFSET_GUEST_FEATURES_SEL 0x24
68#define VIRTIO_MMIO_OFFSET_GUEST_PAGE_SIZE 0x28
69#define VIRTIO_MMIO_OFFSET_QUEUE_SEL 0x30
70#define VIRTIO_MMIO_OFFSET_QUEUE_NUM_MAX 0x34
71#define VIRTIO_MMIO_OFFSET_QUEUE_NUM 0x38
72#define VIRTIO_MMIO_OFFSET_QUEUE_ALIGN 0x3C
73#define VIRTIO_MMIO_OFFSET_QUEUE_PFN 0x40
74#define VIRTIO_MMIO_OFFSET_QUEUE_NOTIFY 0x50
75#define VIRTIO_MMIO_OFFSET_INTERRUPT_STATUS 0x60
76#define VIRTIO_MMIO_OFFSET_INTERRUPT_ACK 0x64
77#define VIRTIO_MMIO_OFFSET_STATUS 0x70
96#define VRING_AVAIL_F_NO_INTERRUPT BIT0
99 volatile UINT16 *Flags;
100 volatile UINT16 *Idx;
102 volatile UINT16 *Ring;
103 volatile UINT16 *UsedEvent;
109#define VRING_USED_F_NO_NOTIFY BIT0
119 volatile UINT16 *Flags;
120 volatile UINT16 *Idx;
122 volatile UINT16 *AvailEvent;
128#define VRING_DESC_F_NEXT BIT0
129#define VRING_DESC_F_WRITE BIT1
130#define VRING_DESC_F_INDIRECT BIT2
153#define VSTAT_ACK BIT0
154#define VSTAT_DRIVER BIT1
155#define VSTAT_DRIVER_OK BIT2
156#define VSTAT_FAILED BIT7
161#define VIRTIO_F_NOTIFY_ON_EMPTY BIT24
162#define VIRTIO_F_RING_INDIRECT_DESC BIT28
163#define VIRTIO_F_RING_EVENT_IDX BIT29