virtio_device
status_t (*negotiate_features)(virtio_device cookie, uint64 supported,
status_t (*clear_feature)(virtio_device cookie, uint64 feature);
status_t (*read_device_config)(virtio_device cookie, uint8 offset,
status_t (*write_device_config)(virtio_device cookie, uint8 offset,
status_t (*alloc_queues)(virtio_device cookie, size_t count,
void (*free_queues)(virtio_device cookie);
status_t (*setup_interrupt)(virtio_device cookie,
status_t (*free_interrupts)(virtio_device cookie);
virtio_device* fVirtioDevice;
virtio_alloc_queues(virtio_device _device, size_t count, virtio_queue *queues,
virtio_free_queues(virtio_device _device)
virtio_setup_interrupt(virtio_device _device, virtio_intr_func config_handler,
virtio_free_interrupts(virtio_device _device)
virtio_device* fVirtioDevice;
virtio_device* fVirtioDevice;
virtio_device* virtioDevice = NULL;
virtio_device_negotiate_features(virtio_device cookie, uint64 supported,
virtio_device_clear_feature(virtio_device cookie, uint64 feature)
virtio_device_read_device_config(virtio_device cookie, uint8 offset,
virtio_device_write_device_config(virtio_device cookie, uint8 offset,
virtio_device_alloc_queues(virtio_device cookie, size_t count,
virtio_device_free_queues(virtio_device cookie)
virtio_device_setup_interrupt(virtio_device cookie,
virtio_device_free_interrupts(virtio_device cookie)
::virtio_device virtio_dev;
status_t status = info->virtio->read_device_config(info->virtio_device, 0,
(void **)&info->virtio_device);
info->virtio->negotiate_features(info->virtio_device,
info->virtio_device, 0, &info->config,
status = info->virtio->alloc_queues(info->virtio_device, 1,
status = info->virtio->setup_interrupt(info->virtio_device,
::virtio_device virtio_device;
::virtio_device virtio_device;
(void**)&info->virtio_device);
info->virtio->negotiate_features(info->virtio_device, VIRTIO_GPU_F_EDID,
status_t status = info->virtio->alloc_queues(info->virtio_device, 2,
status = info->virtio->setup_interrupt(info->virtio_device, NULL, info);
info->virtio->free_interrupts(info->virtio_device);
info->virtio->free_queues(info->virtio_device);
(void **)&info->virtio_device);
info->virtio->negotiate_features(info->virtio_device, 0,
status = info->virtio->alloc_queues(info->virtio_device, 1,
::virtio_device virtio_device;
(void**)&info->virtio_device);
info->virtio->negotiate_features(info->virtio_device,
&& info->virtio->read_device_config(info->virtio_device,
status_t status = info->virtio->alloc_queues(info->virtio_device, queueCount,
status = info->virtio->setup_interrupt(info->virtio_device, NULL, info);
info->virtio->free_interrupts(info->virtio_device);
info->virtio->free_queues(info->virtio_device);
info->virtio->read_device_config(info->virtio_device,
info->virtio->read_device_config(info->virtio_device,
info->virtio->clear_feature(info->virtio_device, VIRTIO_NET_F_MTU);
::virtio_device virtio_device;
info->virtio->read_device_config(info->virtio_device,