XenevaOS
Loading...
Searching...
No Matches
virtiogpu.h
Go to the documentation of this file.
1
32#ifndef __VIRTIO_GPU_H__
33#define __VIRTIO_GPU_H__
34
35#include <stdint.h>
36#include <Drivers/virtio.h>
37
38#define VIRTIO_GPU_FLAG_FENCE (1<<0)
39#define VIRTIO_GPU_FLAG_INFO_RING_IDX (1<<1)
40
41#define VIRTIO_GPU_CREATE_RESOURCE_2D 0x200
42#define VIRTIO_GPU_ATTACH_BACKING 0x201
43#define VIRTIO_GPU_TRANSFER_TO_HOST2D 0x202
44#define VIRTIO_GPU_FLUSH 0x203
45#define VIRTIO_GPU_GET_SCREEN_RSRC_ID 0x204
46
47
48#pragma pack(push,1)
56#pragma pack(pop)
57
58#pragma pack(push,1)
66#pragma pack(pop)
67
68#pragma pack(push,1)
79#pragma pack(pop)
80
81
85
86#pragma pack(push,1)
93#pragma pack(pop)
94
95#pragma pack(push,1)
103#pragma pack(pop)
104
105
106#pragma pack(push,1)
113#pragma pack(pop)
114
115
116#pragma pack(push,1)
123#pragma pack(pop)
124
125#pragma pack(push,1)
131#pragma pack(pop)
132
133
135 /* 2D commands */
150
151 /*3D commands */
162
163 /* cursor commands */
166
167 /* success responses */
175
176 /* error responses */
183};
184
202extern bool gpu_is_virgl_supported();
203
209extern bool gpu_is_edid_supported();
210
211
218extern void gpu_execute_command(VirtioCommonCfg* cfg, void* cmd, size_t len);
219
225extern int gpu_allocate_resource_id();
226
236extern void gpu_attach_back_cmd(VirtioCommonCfg* cfg, void* req, uint32_t len1, void* req2, uint32_t len2);
237
244
245
246
247
248#endif
unsigned int uint32_t
Definition acefiex.h:163
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
Definition virtio.h:37
Definition virtiogpu.h:117
uint32_t events_read
Definition virtiogpu.h:118
uint32_t num_capsets
Definition virtiogpu.h:121
uint32_t num_scanouts
Definition virtiogpu.h:120
uint32_t events_clear
Definition virtiogpu.h:119
Definition virtiogpu.h:49
uint32_t type
Definition virtiogpu.h:50
uint64_t fence_id
Definition virtiogpu.h:52
uint32_t padding
Definition virtiogpu.h:54
uint32_t ctx_id
Definition virtiogpu.h:53
uint32_t flags
Definition virtiogpu.h:51
Definition virtiogpu.h:126
uint32_t padding
Definition virtiogpu.h:129
uint32_t length
Definition virtiogpu.h:128
uint64_t addr
Definition virtiogpu.h:127
Definition virtiogpu.h:82
uint32_t x
Definition virtiogpu.h:83
uint32_t width
Definition virtiogpu.h:83
uint32_t height
Definition virtiogpu.h:83
uint32_t y
Definition virtiogpu.h:83
Definition virtiogpu.h:69
uint32_t padding
Definition virtiogpu.h:76
uint32_t nr_entries
Definition virtiogpu.h:72
struct virtio_gpu_resource_attach_backing::@431 entries[1]
uint32_t length
Definition virtiogpu.h:75
uint32_t resource_id
Definition virtiogpu.h:71
uint64_t addr
Definition virtiogpu.h:74
struct virtio_gpu_ctrl_hdr hdr
Definition virtiogpu.h:70
Definition virtiogpu.h:59
uint32_t height
Definition virtiogpu.h:64
uint32_t format
Definition virtiogpu.h:62
uint32_t resource_id
Definition virtiogpu.h:61
uint32_t width
Definition virtiogpu.h:63
struct virtio_gpu_ctrl_hdr hdr
Definition virtiogpu.h:60
Definition virtiogpu.h:107
struct virtio_gpu_rect rect
Definition virtiogpu.h:109
uint32_t resource_id
Definition virtiogpu.h:110
uint32_t padding
Definition virtiogpu.h:111
struct virtio_gpu_ctrl_hdr hdr
Definition virtiogpu.h:108
Definition virtiogpu.h:87
uint32_t resource_id
Definition virtiogpu.h:91
struct virtio_gpu_rect rect
Definition virtiogpu.h:89
struct virtio_gpu_ctrl_hdr hdr
Definition virtiogpu.h:88
uint32_t scanout_id
Definition virtiogpu.h:90
Definition virtiogpu.h:96
uint32_t resource_id
Definition virtiogpu.h:100
struct virtio_gpu_rect rect
Definition virtiogpu.h:98
uint64_t offset
Definition virtiogpu.h:99
uint32_t padding
Definition virtiogpu.h:101
struct virtio_gpu_ctrl_hdr hdr
Definition virtiogpu.h:97
virtio_gpu_ctrl_type
Definition virtiogpu.h:134
@ VIRTIO_GPU_CMD_GET_CAPSET_INFO
Definition virtiogpu.h:144
@ VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER
Definition virtiogpu.h:182
@ VIRTIO_GPU_RESP_OK_EDID
Definition virtiogpu.h:172
@ VIRTIO_GPU_RESP_ERR_INVALID_CONTEXT_ID
Definition virtiogpu.h:181
@ VIRTIO_GPU_CMD_MOVE_CURSOR
Definition virtiogpu.h:165
@ VIRTIO_GPU_RESP_OK_CAPSET_INFO
Definition virtiogpu.h:170
@ VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID
Definition virtiogpu.h:180
@ VIRTIO_GPU_CMD_CTX_DESTROY
Definition virtiogpu.h:153
@ VIRTIO_GPU_RESP_ERR_OUT_OF_MEMORY
Definition virtiogpu.h:178
@ VIRTIO_GPU_CMD_TRANSFER_TO_HOST2D
Definition virtiogpu.h:141
@ VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID
Definition virtiogpu.h:147
@ VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB
Definition virtiogpu.h:148
@ VIRTIO_GPU_CMD_CTX_DETACH_RESOURCE
Definition virtiogpu.h:155
@ VIRTIO_GPU_CMD_SUBMIT_3D
Definition virtiogpu.h:159
@ VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB
Definition virtiogpu.h:161
@ VIRTIO_GPU_CMD_GET_EDID
Definition virtiogpu.h:146
@ VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D
Definition virtiogpu.h:157
@ VIRTIO_GPU_RESP_OK_CAPSET
Definition virtiogpu.h:171
@ VIRTIO_GPU_RESP_OK_MAP_INFO
Definition virtiogpu.h:174
@ VIRTIO_GPU_CMD_CTX_CREATE
Definition virtiogpu.h:152
@ VIRTIO_GPU_CMD_RESOURCE_CREATE_2D
Definition virtiogpu.h:137
@ VIRTIO_GPU_CMD_RESOURCE_UNREF
Definition virtiogpu.h:138
@ VIRTIO_GPU_RESP_ERR_UNSPEC
Definition virtiogpu.h:177
@ VIRTIO_GPU_CMD_SET_SCANOUT
Definition virtiogpu.h:139
@ VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING
Definition virtiogpu.h:142
@ VIRTIO_GPU_RESP_OK_DISPLAY_INFO
Definition virtiogpu.h:169
@ VIRTIO_GPU_CMD_RESOURCE_FLUSH
Definition virtiogpu.h:140
@ VIRTIO_GPU_CMD_GET_CAPSET
Definition virtiogpu.h:145
@ VIRTIO_GPU_CMD_GET_DISPLAY_INFO
Definition virtiogpu.h:136
@ VIRTIO_GPU_RESP_OK_NODATA
Definition virtiogpu.h:168
@ VIRTIO_GPU_CMD_SET_SCANOUT_BLOB
Definition virtiogpu.h:149
@ VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D
Definition virtiogpu.h:158
@ VIRTIO_GPU_CMD_RESOURCE_CREATE_3D
Definition virtiogpu.h:156
@ VIRTIO_GPU_CMD_CTX_ATTACH_RESOURCE
Definition virtiogpu.h:154
@ VIRTIO_GPU_RESP_ERR_INVALID_SCANOUT_ID
Definition virtiogpu.h:179
@ VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING
Definition virtiogpu.h:143
@ VIRTIO_GPU_RESP_OK_RESOURCE_UUID
Definition virtiogpu.h:173
@ VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB
Definition virtiogpu.h:160
@ VIRTIO_GPU_CMD_UPDATE_CURSOR
Definition virtiogpu.h:164
int gpu_allocate_resource_id()
gpu_allocate_resource_id – allocates resource for commands
Definition virtgpu.cpp:364
virtio_gpu_formats
Definition virtiogpu.h:185
@ VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM
Definition virtiogpu.h:186
@ VIRTIO_GPU_FORMAT_A8R8G8B8_UNORM
Definition virtiogpu.h:188
@ VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM
Definition virtiogpu.h:195
@ VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM
Definition virtiogpu.h:191
@ VIRTIO_GPU_FORMAT_A8B8G8R8_UNORM
Definition virtiogpu.h:194
@ VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM
Definition virtiogpu.h:187
@ VIRTIO_GPU_FORMAT_X8R8G8B8_UNORM
Definition virtiogpu.h:189
@ VIRTIO_GPU_FORMAT_X8B8G8R8_UNORM
Definition virtiogpu.h:192
bool gpu_is_virgl_supported()
gpu_is_virgl_supported – returns if virgl is supported by host
Definition virtgpu.cpp:174
void gpu_attach_back_cmd(VirtioCommonCfg *cfg, void *req, uint32_t len1, void *req2, uint32_t len2)
gpu_attach_back_cmd – attach backing stroe command needs two descriptor previous gpu_execute_command ...
Definition virtgpu.cpp:315
void gpu_execute_command(VirtioCommonCfg *cfg, void *cmd, size_t len)
gpu_execute_command – submit a command to gpu
Definition virtgpu.cpp:264
bool gpu_is_edid_supported()
gpu_is_edid_supported – returns if edid blob is supported by host
Definition virtgpu.cpp:183
VirtioCommonCfg * gpu_get_config_pointer()
gpu_get_config_pointer – return the pointer virtio common config descriptor from pcie
Definition virtgpu.cpp:553