38#if defined(__GNUC__) || defined(__clang__)
121#define OFFSETOF(s,m) ((size_t)&(((s*)0)->m))
123#define VIRTIO_NET_F_CSUM (1ULL << 0)
124#define VIRTIO_NET_F_GUEST_CSUM (1ULL << 2)
125#define VIRTIO_NET_F_MAC (1ULL << 5)
126#define VIRTIO_NET_F_CTRL_VQ (1ULL << 17)
127#define VIRTIO_NET_HDR_GSO_NONE 0
167#define VIRTIO_PCI_CAP_VENDOR_ID 0x09
168#define VIRTIO_PCI_CAP_COMMON_CFG 1
169#define VIRTIO_PCI_CAP_NOTIFY_CFG 2
170#define VIRTIO_PCI_CAP_ISR_CFG 3
171#define VIRTIO_PCI_CAP_DEVICE_CFG 4
172#define VIRTIO_PCI_CAP_PCI_CFG 5
175#define VIRTIO_STATUS_ACKNOWLEDGE 0x01
176#define VIRTIO_STATUS_DRIVER 0x02
177#define VIRTIO_STATUS_DRIVER_OK 0x04
178#define VIRTIO_STATUS_FEATURES_OK 0x08
179#define VIRTIO_STATUS_DEVICE_NEEDS_RESET 0x40
180#define VIRTIO_STATUS_FAILED 0x80
184#define VIRTIO_F_VERSION_1_BIT 32
186#define VIRTQ_DESC_F_NEXT 1
187#define VIRTQ_DESC_F_WRITE 2
188#define VIRTIO_MSI_NO_VECTOR 0xFFFF
#define AU_EXTERN
Definition aurora.h:54
#define AU_EXPORT
Definition aurora.h:40
void AuVirtioKbdDown()
Definition virtiokbd.c:180
uint8_t flags
Definition virtio.h:0
typedef __attribute__
Definition list_sort.h:12
void AuVirtioTabletInitialize(uint64_t device, int bus, int dev, int func)
AuVirtioTabletInitialize – initialize virtio tablet.
Definition virtiotablet.c:216
void AuVirtioNetInitialize(uint64_t device)
AuVirtioNetInitialize – initialize the virtio network device.
Definition virtionet.c:393
void AuVirtioTabletDown()
Definition virtiotablet.c:193
void AuVirtioBlkInitialize(uint64_t device, int bus, int dev, int func)
AuVirtioBlkInitialize – initialize the virtio block device.
Definition virtioblk.c:204
void AuVirtioKbdInitialize(uint64_t device, int bus, int dev, int func)
AuVirtioKbdInitialize – initialize the virtio keyboard.
Definition virtiokbd.c:203
#define out(...)
Definition main.cpp:65
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
const struct device * dev
Definition drm_print.h:519
void AuVirtioPCINotifyQueue(void)
void AuVirtioPCISetupQueue(void)
void AuVirtioPCIInit(void)
void AuVirtioPCIPostAvail(void)
uint16_t flags
Definition virtio.h:90
volatile uint16_t index
Definition virtio.h:91
uint16_t int_index
Definition virtio.h:93
uint16_t ring[64]
Definition virtio.h:92
uint16_t Flags
Definition virtio.h:85
uint16_t Next
Definition virtio.h:86
uint32_t Length
Definition virtio.h:84
uint64_t Addr
Definition virtio.h:83
volatile uint16_t QueueEnable
Definition virtio.h:57
volatile uint8_t ConfigGeneration
Definition virtio.h:52
volatile uint16_t Queues
Definition virtio.h:50
volatile uint64_t QueueAvail
Definition virtio.h:61
volatile uint16_t QueueMSixVector
Definition virtio.h:56
volatile uint64_t QueueUsed
Definition virtio.h:62
volatile uint16_t MSix
Definition virtio.h:49
volatile uint32_t DevFeature
Definition virtio.h:46
volatile uint32_t GuestFeatureSelect
Definition virtio.h:47
volatile uint16_t QueueSelect
Definition virtio.h:54
volatile uint64_t QueueDesc
Definition virtio.h:60
volatile uint16_t QueueSize
Definition virtio.h:55
volatile uint32_t DevFeatureSelect
Definition virtio.h:45
volatile uint8_t DeviceStatus
Definition virtio.h:51
volatile uint32_t GuestFeature
Definition virtio.h:48
volatile uint16_t QueueNotifyOff
Definition virtio.h:58
volatile uint32_t fuzz
Definition virtio.h:74
volatile uint8_t select
Definition virtio.h:66
union VirtioDeviceConfig::@11 data
volatile uint32_t res
Definition virtio.h:76
struct VirtioDeviceConfig::@11::@12 tablet_data
volatile uint32_t min
Definition virtio.h:72
volatile uint32_t max
Definition virtio.h:73
volatile uint8_t subsel
Definition virtio.h:67
volatile uint32_t flat
Definition virtio.h:75
volatile uint8_t pad[5]
Definition virtio.h:69
uint8_t str[128]
Definition virtio.h:78
volatile uint8_t size
Definition virtio.h:68
a mapped, reset-and-negotiated modern virtio-pci device. Per-device drivers build their own virtqueue...
Definition virtio.h:222
struct VirtioCommonCfg * common
Definition virtio.h:225
volatile uint8_t * isr
Definition virtio.h:226
uint32_t notifyOffMultiplier
Definition virtio.h:229
uint8_t * notifyBase
Definition virtio.h:228
int func
Definition virtio.h:224
int bus
Definition virtio.h:224
void * deviceCfg
Definition virtio.h:227
uint64_t address
Definition virtio.h:223
int dev
Definition virtio.h:224
struct VirtioAvail available
Definition virtio.h:110
struct VirtioUsed used
Definition virtio.h:111
struct VirtioBuffer buffers[64]
Definition virtio.h:109
uint32_t index
Definition virtio.h:97
uint32_t length
Definition virtio.h:98
uint16_t int_index
Definition virtio.h:105
volatile uint16_t index
Definition virtio.h:103
uint16_t flags
Definition virtio.h:102
struct VirtioRing ring[64]
Definition virtio.h:104
volatile uint16_t flags
Definition virtio.h:202
volatile uint16_t idx
Definition virtio.h:203
volatile uint16_t ring[]
Definition virtio.h:204
volatile uint16_t next
Definition virtio.h:198
volatile uint32_t len
Definition virtio.h:196
volatile uint64_t addr
Definition virtio.h:195
volatile uint16_t flags
Definition virtio.h:197
volatile uint32_t len
Definition virtio.h:209
volatile uint32_t id
Definition virtio.h:208
volatile uint16_t idx
Definition virtio.h:214
volatile uint16_t flags
Definition virtio.h:213
volatile struct VirtqUsedElem ring[]
Definition virtio.h:215
uint8_t gso_type
Definition virtio.h:134
uint16_t num_buffers
Definition virtio.h:139
uint16_t hdr_len
Definition virtio.h:135
uint16_t csum_offset
Definition virtio.h:138
uint8_t flags
Definition virtio.h:133
uint16_t csum_start
Definition virtio.h:137
uint16_t gso_size
Definition virtio.h:136
virtio_pci_cap cap
Definition virtio.h:162
uint32_t notifer_mult_base
Definition virtio.h:163
uint8_t bar
Definition virtio.h:153
uint32_t offset
Definition virtio.h:155
uint8_t cap_len
Definition virtio.h:151
uint32_t length
Definition virtio.h:156
uint8_t cap_vndr
Definition virtio.h:149
uint8_t cap_next
Definition virtio.h:150
uint8_t cfg_type
Definition virtio.h:152