41#ifdef WPP_EVENT_TRACING
42#include "VirtIOPCILegacy.tmh"
75 for (
i = 0;
i <
len;
i++) {
91 for (
i = 0;
i <
len;
i++) {
151 unsigned short *pNumEntries,
152 unsigned long *pRingSize,
153 unsigned long *pHeapSize)
155 unsigned long ring_size, data_size;
171 *pRingSize = ring_size + data_size;
184 unsigned long ring_size, heap_size;
209 goto err_activate_queue;
215 msix_vec =
vdev->
device->set_queue_vector(vq, msix_vec);
void vio_legacy_dump_registers(VirtIODevice *vdev)
static void vio_legacy_del_vq(VirtIOQueueInfo *info)
static void vio_legacy_set_status(VirtIODevice *vdev, u8 status)
static void vio_legacy_reset(VirtIODevice *vdev)
static NTSTATUS vio_legacy_query_vq_alloc(VirtIODevice *vdev, unsigned index, unsigned short *pNumEntries, unsigned long *pRingSize, unsigned long *pHeapSize)
static const struct virtio_device_ops virtio_pci_device_ops
static void vio_legacy_get_config(VirtIODevice *vdev, unsigned offset, void *buf, unsigned len)
static u16 vio_legacy_set_queue_vector(struct virtqueue *vq, u16 vector)
static NTSTATUS vio_legacy_set_features(VirtIODevice *vdev, u64 features)
static u16 vio_legacy_set_config_vector(VirtIODevice *vdev, u16 vector)
static NTSTATUS vio_legacy_setup_vq(struct virtqueue **queue, VirtIODevice *vdev, VirtIOQueueInfo *info, unsigned index, u16 msix_vec)
static u8 vio_legacy_get_status(VirtIODevice *vdev)
NTSTATUS vio_legacy_initialize(VirtIODevice *vdev)
static u64 vio_legacy_get_features(VirtIODevice *vdev)
static void vio_legacy_set_config(VirtIODevice *vdev, unsigned offset, const void *buf, unsigned len)
struct virtqueue * vring_new_virtqueue_split(unsigned int index, unsigned int num, unsigned int vring_align, VirtIODevice *vdev, void *pages, void(*notify)(struct virtqueue *), void *control)
unsigned int vring_control_block_size(u16 qsize, bool packed)
#define NT_SUCCESS(StatCode)
#define DPrintf(Level, Fmt)
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
const struct virtio_device_ops * device
#define STATUS_DEVICE_BUSY
#define STATUS_INSUFFICIENT_RESOURCES
#define VIRTIO_PCI_QUEUE_NUM
#define VIRTIO_PCI_QUEUE_ADDR_SHIFT
#define VIRTIO_PCI_VRING_ALIGN
#define VIRTIO_MSI_QUEUE_VECTOR
#define VIRTIO_PCI_CONFIG(msix_enabled)
#define VIRTIO_MSI_NO_VECTOR
#define VIRTIO_PCI_HOST_FEATURES
#define VIRTIO_PCI_QUEUE_SEL
#define VIRTIO_PCI_STATUS
#define VIRTIO_PCI_QUEUE_NOTIFY
#define VIRTIO_PCI_GUEST_FEATURES
#define VIRTIO_MSI_CONFIG_VECTOR
#define VIRTIO_PCI_QUEUE_PFN
#define mem_get_physical_address(vdev, virt)
#define ioread16(vdev, addr)
#define pci_map_address_range(vdev, bar, offset, maxlen)
#define mem_alloc_contiguous_pages(vdev, size)
#define mem_free_contiguous_pages(vdev, virt)
#define iowrite32(vdev, val, addr)
void vp_notify(struct virtqueue *vq)
#define pci_get_resource_len(vdev, bar)
#define iowrite16(vdev, val, addr)
#define ioread8(vdev, addr)
#define iowrite8(vdev, val, addr)
#define ioread32(vdev, addr)
unsigned long vring_size(unsigned int num, unsigned long align, bool packed)
void vring_transport_features(VirtIODevice *vdev, u64 *features)
#define ROUND_TO_PAGES(Size)