1#ifndef __USB_HID__HID_HPP__
2#define __USB_HID__HID_HPP__
46#define VIRTIO_GPU_CMD_GET_DISPLAY_INFO 0x0100
47#define VIRTIO_GPU_CMD_RESOURCE_CREATE_2D 0x0101
48#define VIRTIO_GPU_CMD_RESOURCE_UNREF 0x0102
49#define VIRTIO_GPU_CMD_SET_SCANOUT 0x0103
50#define VIRTIO_GPU_CMD_RESOURCE_FLUSH 0x0104
51#define VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D 0x0105
52#define VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING 0x0106
53#define VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING 0x0107
56#define VIRTIO_GPU_RESP_OK_NODATA 0x1100
57#define VIRTIO_GPU_RESP_OK_DISPLAY_INFO 0x1101
60#define VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM 1
61#define VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM 2
62#define VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM 3
65#define VIRTIO_STATUS_ACKNOWLEDGE (1 << 0)
66#define VIRTIO_STATUS_DRIVER (1 << 1)
67#define VIRTIO_STATUS_DRIVER_OK (1 << 2)
68#define VIRTIO_STATUS_FEATURES_OK (1 << 3)
69#define VIRTIO_STATUS_DEVICE_NEEDS_RESET (1 << 6)
70#define VIRTIO_STATUS_FAILED (1 << 7)
73#define VIRTQ_DESC_F_NEXT (1 << 0)
74#define VIRTQ_DESC_F_WRITE (1 << 1)
75#define VIRTQ_DESC_F_INDIRECT (1 << 2)
78#define VIRTIO_ISR_QUEUE_INT (1 << 0)
79#define VIRTIO_ISR_DEV_CFG_INT (1 << 1)
103#define VIRTIO_GPU_QUEUE_SIZE 64
104#define VIRTIO_GPU_QUEUE_ALIGN 4096
IoForgeVirtio(const char *mod)
ioforge_virtio_device * dev_
static VirtioGpu * getInstance()
uint32_t notify_multiplier_
int virtq_get_used_elem(struct virtio_gpu_queue *vq, uint16_t *id, uint32_t *len)
int virtio_gpu_get_display_info()
int virtio_gpu_create_resource(uint32_t resource_id, uint32_t width, uint32_t height)
void virtq_free_desc(struct virtio_gpu_queue *vq, uint16_t desc_idx)
uint16_t virtq_alloc_desc(struct virtio_gpu_queue *vq)
static struct virtio_gpu_queue control_queue_
void virtq_init(struct virtio_gpu_queue *vq, void *vq_mem, uint16_t queue_size, uintptr_t phys_addr)
static void fireHandler()
void virtq_kick(uint16_t queue_index)
int virtq_add_buf(struct virtio_gpu_queue *vq, void **buffers, uint32_t *lengths, uint16_t num_out, uint16_t num_in, uint16_t *head_out)
int virtio_gpu_send_command(void *cmd, uint32_t cmd_size, void *resp, uint32_t resp_size)
uintptr_t notify_multiplier
struct virtio_pci_common_cfg * common_cfg
volatile uint32_t * notify_base
struct virtio_gpu_queue controlq
struct virtq_avail * avail
struct virtio_gpu_ctrl_hdr hdr
struct virtio_gpu_ctrl_hdr hdr
struct virtio_gpu_rect rect
struct virtio_gpu_ctrl_hdr hdr
struct virtio_gpu_rect rect
struct virtio_gpu_ctrl_hdr hdr
struct virtio_gpu_rect rect
struct virtio_gpu_ctrl_hdr hdr
struct virtio_gpu_rect rect
struct virtio_gpu_ctrl_hdr hdr
uint16_t queue_msix_vector
uint8_t config_generation
uint16_t queue_notify_off
uint32_t driver_feature_select
uint32_t device_feature_select
struct virtq_used_elem ring[64]
struct virtio_gpu_display_one pmodes[16]
#define VIRTIO_GPU_QUEUE_SIZE
struct virtio_gpu_queue __attribute__