Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
virtio-gpu.hpp File Reference

Go to the source code of this file.

Data Structures

class  VirtioGpu
 
struct  virtio_pci_common_cfg
 
struct  virtq_desc
 
struct  virtq_avail
 
struct  virtq_used_elem
 
struct  virtq_used
 
struct  virtio_gpu_queue
 
struct  virtio_gpu_ctrl_hdr
 
struct  virtio_gpu_rect
 
struct  virtio_gpu_resp_display_info
 
struct  virtio_gpu_resp_display_info::virtio_gpu_display_one
 
struct  virtio_gpu_display_one
 
struct  virtio_gpu_resource_create_2d
 
struct  virtio_gpu_resource_attach_backing
 
struct  virtio_gpu_mem_entry
 
struct  virtio_gpu_set_scanout
 
struct  virtio_gpu_transfer_to_host_2d
 
struct  virtio_gpu_resource_flush
 
struct  virtio_gpu_device
 

Macros

#define VIRTIO_GPU_CMD_GET_DISPLAY_INFO   0x0100
 
#define VIRTIO_GPU_CMD_RESOURCE_CREATE_2D   0x0101
 
#define VIRTIO_GPU_CMD_RESOURCE_UNREF   0x0102
 
#define VIRTIO_GPU_CMD_SET_SCANOUT   0x0103
 
#define VIRTIO_GPU_CMD_RESOURCE_FLUSH   0x0104
 
#define VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D   0x0105
 
#define VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING   0x0106
 
#define VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING   0x0107
 
#define VIRTIO_GPU_RESP_OK_NODATA   0x1100
 
#define VIRTIO_GPU_RESP_OK_DISPLAY_INFO   0x1101
 
#define VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM   1
 
#define VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM   2
 
#define VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM   3
 
#define VIRTIO_STATUS_ACKNOWLEDGE   (1 << 0)
 
#define VIRTIO_STATUS_DRIVER   (1 << 1)
 
#define VIRTIO_STATUS_DRIVER_OK   (1 << 2)
 
#define VIRTIO_STATUS_FEATURES_OK   (1 << 3)
 
#define VIRTIO_STATUS_DEVICE_NEEDS_RESET   (1 << 6)
 
#define VIRTIO_STATUS_FAILED   (1 << 7)
 
#define VIRTQ_DESC_F_NEXT   (1 << 0)
 
#define VIRTQ_DESC_F_WRITE   (1 << 1)
 
#define VIRTQ_DESC_F_INDIRECT   (1 << 2)
 
#define VIRTIO_ISR_QUEUE_INT   (1 << 0)
 
#define VIRTIO_ISR_DEV_CFG_INT   (1 << 1)
 
#define VIRTIO_GPU_QUEUE_SIZE   64
 
#define VIRTIO_GPU_QUEUE_ALIGN   4096
 

Functions

struct virtio_pci_common_cfg __attribute__ ((packed))
 

Variables

uint32_t device_feature_select
 
uint32_t device_feature
 
uint32_t driver_feature_select
 
uint32_t driver_feature
 
uint16_t msix_config
 
uint16_t num_queues
 
uint8_t device_status
 
uint8_t config_generation
 
uint16_t queue_select
 
uint16_t queue_size
 
uint16_t queue_msix_vector
 
uint16_t queue_enable
 
uint16_t queue_notify_off
 
uint64_t queue_desc
 
uint64_t queue_avail
 
uint64_t queue_used
 
uint64_t addr
 
uint32_t len
 
uint16_t flags
 
uint16_t next
 
uint16_t idx
 
uint16_t ring [64]
 
uint16_t used_event
 
uint32_t id
 
uint16_t avail_event
 
struct virtio_gpu_queue __attribute__
 
uint32_t type
 
uint64_t fence_id
 
uint32_t ctx_id
 
uint32_t padding
 
uint32_t x
 
uint32_t y
 
uint32_t width
 
uint32_t height
 
struct virtio_gpu_ctrl_hdr hdr
 
struct virtio_gpu_display_one pmodes [16]
 
uint32_t resource_id
 
uint32_t format
 
uint32_t nr_entries
 
uint32_t length
 
struct virtio_gpu_rect rect
 
uint32_t scanout_id
 
uint64_t offset
 

Macro Definition Documentation

◆ VIRTIO_GPU_CMD_GET_DISPLAY_INFO

#define VIRTIO_GPU_CMD_GET_DISPLAY_INFO   0x0100

Definition at line 46 of file virtio-gpu.hpp.

Referenced by VirtioGpu::setup(), and VirtioGpu::virtio_gpu_get_display_info().

◆ VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING

#define VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING   0x0106

Definition at line 52 of file virtio-gpu.hpp.

◆ VIRTIO_GPU_CMD_RESOURCE_CREATE_2D

#define VIRTIO_GPU_CMD_RESOURCE_CREATE_2D   0x0101

Definition at line 47 of file virtio-gpu.hpp.

Referenced by VirtioGpu::virtio_gpu_create_resource().

◆ VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING

#define VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING   0x0107

Definition at line 53 of file virtio-gpu.hpp.

◆ VIRTIO_GPU_CMD_RESOURCE_FLUSH

#define VIRTIO_GPU_CMD_RESOURCE_FLUSH   0x0104

Definition at line 50 of file virtio-gpu.hpp.

◆ VIRTIO_GPU_CMD_RESOURCE_UNREF

#define VIRTIO_GPU_CMD_RESOURCE_UNREF   0x0102

Definition at line 48 of file virtio-gpu.hpp.

◆ VIRTIO_GPU_CMD_SET_SCANOUT

#define VIRTIO_GPU_CMD_SET_SCANOUT   0x0103

Definition at line 49 of file virtio-gpu.hpp.

◆ VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D

#define VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D   0x0105

Definition at line 51 of file virtio-gpu.hpp.

◆ VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM

#define VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM   1

Definition at line 60 of file virtio-gpu.hpp.

Referenced by VirtioGpu::virtio_gpu_create_resource().

◆ VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM

#define VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM   2

Definition at line 61 of file virtio-gpu.hpp.

◆ VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM

#define VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM   3

Definition at line 62 of file virtio-gpu.hpp.

◆ VIRTIO_GPU_QUEUE_ALIGN

#define VIRTIO_GPU_QUEUE_ALIGN   4096

Definition at line 104 of file virtio-gpu.hpp.

Referenced by VirtioGpu::setup(), and VirtioGpu::virtq_init().

◆ VIRTIO_GPU_QUEUE_SIZE

#define VIRTIO_GPU_QUEUE_SIZE   64

Definition at line 103 of file virtio-gpu.hpp.

Referenced by VirtioGpu::setup().

◆ VIRTIO_GPU_RESP_OK_DISPLAY_INFO

#define VIRTIO_GPU_RESP_OK_DISPLAY_INFO   0x1101

Definition at line 57 of file virtio-gpu.hpp.

Referenced by VirtioGpu::setup(), and VirtioGpu::virtio_gpu_get_display_info().

◆ VIRTIO_GPU_RESP_OK_NODATA

#define VIRTIO_GPU_RESP_OK_NODATA   0x1100

Definition at line 56 of file virtio-gpu.hpp.

Referenced by VirtioGpu::virtio_gpu_create_resource().

◆ VIRTIO_ISR_DEV_CFG_INT

#define VIRTIO_ISR_DEV_CFG_INT   (1 << 1)

Definition at line 79 of file virtio-gpu.hpp.

◆ VIRTIO_ISR_QUEUE_INT

#define VIRTIO_ISR_QUEUE_INT   (1 << 0)

Definition at line 78 of file virtio-gpu.hpp.

◆ VIRTIO_STATUS_ACKNOWLEDGE

#define VIRTIO_STATUS_ACKNOWLEDGE   (1 << 0)

Definition at line 65 of file virtio-gpu.hpp.

Referenced by VirtioGpu::setup().

◆ VIRTIO_STATUS_DEVICE_NEEDS_RESET

#define VIRTIO_STATUS_DEVICE_NEEDS_RESET   (1 << 6)

Definition at line 69 of file virtio-gpu.hpp.

◆ VIRTIO_STATUS_DRIVER

#define VIRTIO_STATUS_DRIVER   (1 << 1)

Definition at line 66 of file virtio-gpu.hpp.

Referenced by VirtioGpu::setup().

◆ VIRTIO_STATUS_DRIVER_OK

#define VIRTIO_STATUS_DRIVER_OK   (1 << 2)

Definition at line 67 of file virtio-gpu.hpp.

Referenced by VirtioGpu::setup().

◆ VIRTIO_STATUS_FAILED

#define VIRTIO_STATUS_FAILED   (1 << 7)

Definition at line 70 of file virtio-gpu.hpp.

◆ VIRTIO_STATUS_FEATURES_OK

#define VIRTIO_STATUS_FEATURES_OK   (1 << 3)

Definition at line 68 of file virtio-gpu.hpp.

Referenced by VirtioGpu::setup().

◆ VIRTQ_DESC_F_INDIRECT

#define VIRTQ_DESC_F_INDIRECT   (1 << 2)

Definition at line 75 of file virtio-gpu.hpp.

◆ VIRTQ_DESC_F_NEXT

#define VIRTQ_DESC_F_NEXT   (1 << 0)

Definition at line 73 of file virtio-gpu.hpp.

Referenced by VirtioGpu::virtio_gpu_send_command(), and VirtioGpu::virtq_add_buf().

◆ VIRTQ_DESC_F_WRITE

#define VIRTQ_DESC_F_WRITE   (1 << 1)

Definition at line 74 of file virtio-gpu.hpp.

Referenced by VirtioGpu::virtq_add_buf().

Function Documentation

◆ __attribute__()

struct virtio_pci_common_cfg __attribute__ ( (packed) )

Definition at line 1 of file tcp.h.

Variable Documentation

◆ __attribute__

struct virtio_gpu_device __attribute__

◆ addr

uint64_t addr

Definition at line 0 of file virtio-gpu.hpp.

◆ avail_event

uint16_t avail_event

Definition at line 3 of file virtio-gpu.hpp.

◆ config_generation

uint8_t config_generation

Definition at line 7 of file virtio-gpu.hpp.

◆ ctx_id

uint32_t ctx_id

Definition at line 3 of file virtio-gpu.hpp.

◆ device_feature

uint32_t device_feature

Definition at line 1 of file virtio-gpu.hpp.

◆ device_feature_select

uint32_t device_feature_select

Definition at line 0 of file virtio-gpu.hpp.

◆ device_status

uint8_t device_status

Definition at line 6 of file virtio-gpu.hpp.

◆ driver_feature

uint32_t driver_feature

Definition at line 3 of file virtio-gpu.hpp.

◆ driver_feature_select

uint32_t driver_feature_select

Definition at line 2 of file virtio-gpu.hpp.

◆ fence_id

uint64_t fence_id

Definition at line 2 of file virtio-gpu.hpp.

◆ flags

uint32_t flags

Definition at line 2 of file virtio-gpu.hpp.

◆ format

uint32_t format

Definition at line 2 of file virtio-gpu.hpp.

◆ hdr

struct virtio_gpu_ctrl_hdr hdr

Definition at line 0 of file virtio-gpu.hpp.

◆ height

uint32_t height

Definition at line 3 of file virtio-gpu.hpp.

Referenced by VirtioGpu::virtio_gpu_create_resource().

◆ id

Definition at line 0 of file virtio-gpu.hpp.

◆ idx

◆ len

uint32_t len

Definition at line 1 of file virtio-gpu.hpp.

Referenced by VirtioGpu::virtq_get_used_elem().

◆ length

uint32_t length

Definition at line 1 of file virtio-gpu.hpp.

◆ msix_config

uint16_t msix_config

Definition at line 4 of file virtio-gpu.hpp.

◆ next

uint16_t next

Definition at line 3 of file virtio-gpu.hpp.

Referenced by VirtioGpu::virtio_gpu_send_command().

◆ nr_entries

uint32_t nr_entries

Definition at line 2 of file virtio-gpu.hpp.

◆ num_queues

uint16_t num_queues

Definition at line 5 of file virtio-gpu.hpp.

◆ offset

uint64_t offset

Definition at line 2 of file virtio-gpu.hpp.

◆ padding

uint32_t padding

Definition at line 4 of file virtio-gpu.hpp.

◆ pmodes

struct virtio_gpu_display_one pmodes[16]

◆ queue_avail

uint64_t queue_avail

Definition at line 15 of file virtio-gpu.hpp.

◆ queue_desc

uint64_t queue_desc

Definition at line 14 of file virtio-gpu.hpp.

◆ queue_enable

uint16_t queue_enable

Definition at line 12 of file virtio-gpu.hpp.

◆ queue_msix_vector

uint16_t queue_msix_vector

Definition at line 11 of file virtio-gpu.hpp.

◆ queue_notify_off

uint16_t queue_notify_off

Definition at line 13 of file virtio-gpu.hpp.

◆ queue_select

uint16_t queue_select

Definition at line 9 of file virtio-gpu.hpp.

◆ queue_size

uint16_t queue_size

Definition at line 10 of file virtio-gpu.hpp.

Referenced by VirtioGpu::setup(), and VirtioGpu::virtq_init().

◆ queue_used

uint64_t queue_used

Definition at line 16 of file virtio-gpu.hpp.

◆ rect

struct virtio_gpu_rect rect

Definition at line 1 of file virtio-gpu.hpp.

◆ resource_id

uint32_t resource_id

Definition at line 1 of file virtio-gpu.hpp.

Referenced by VirtioGpu::virtio_gpu_create_resource().

◆ ring

◆ scanout_id

uint32_t scanout_id

Definition at line 2 of file virtio-gpu.hpp.

◆ type

uint32_t type

Definition at line 0 of file virtio-gpu.hpp.

◆ used_event

uint16_t used_event

Definition at line 3 of file virtio-gpu.hpp.

◆ width

◆ x

◆ y