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 <aurora.h>
37#include <Drivers/virtio.h>
38
39#define VIRTIO_GPU_FLAG_FENCE (1<<0)
40#define VIRTIO_GPU_FLAG_INFO_RING_IDX (1<<1)
41
42#define VIRTIO_GPU_CREATE_RESOURCE_2D 0x200
43#define VIRTIO_GPU_ATTACH_BACKING 0x201
44#define VIRTIO_GPU_TRANSFER_TO_HOST2D 0x202
45#define VIRTIO_GPU_FLUSH 0x203
46#define VIRTIO_GPU_GET_SCREEN_RSRC_ID 0x204
47
48
49#pragma pack(push,1)
56};
57#pragma pack(pop)
58
59#pragma pack(push,1)
66};
67#pragma pack(pop)
68
69#pragma pack(push,1)
74 struct {
79};
80#pragma pack(pop)
81
82
83struct virtio_gpu_rect {
85};
86
87#pragma pack(push,1)
93};
94#pragma pack(pop)
95
96#pragma pack(push,1)
103};
104#pragma pack(pop)
105
106
107#pragma pack(push,1)
113};
114#pragma pack(pop)
115
116
117#pragma pack(push,1)
118struct virtio_gpu_config {
123};
124#pragma pack(pop)
125
126#pragma pack(push,1)
131};
132#pragma pack(pop)
133
134
136 /* 2D commands */
151
152 /*3D commands */
163
164 /* cursor commands */
167
168 /* success responses */
176
177 /* error responses */
184};
185
203extern bool gpu_is_virgl_supported();
204
210extern bool gpu_is_edid_supported();
211
212
219extern void gpu_execute_command(VirtioCommonCfg* cfg, void* cmd, size_t len);
220
226extern int gpu_allocate_resource_id();
227
237extern void gpu_attach_back_cmd(VirtioCommonCfg* cfg, void* req, uint32_t len1, void* req2, uint32_t len2);
238
245
251
262 int x, int y, int w, int h);
263
264
265
266
267#endif
#define AU_EXTERN
Definition aurora.h:54
#define AU_EXPORT
Definition aurora.h:40
unsigned int uint32_t
Definition acefiex.h:163
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
size_t len
Definition initial.c:23
int h
Definition layout.c:118
Definition virtio.h:44
Definition virtio_gpu.h:371
uint32_t events_read
Definition virtiogpu.h:119
uint32_t num_capsets
Definition virtiogpu.h:122
uint32_t num_scanouts
Definition virtiogpu.h:121
uint32_t events_clear
Definition virtiogpu.h:120
Definition virtio_gpu.h:145
uint32_t type
Definition virtiogpu.h:51
uint64_t fence_id
Definition virtiogpu.h:53
uint32_t padding
Definition virtiogpu.h:55
uint32_t ctx_id
Definition virtiogpu.h:54
uint32_t flags
Definition virtiogpu.h:52
Definition virtio_gpu.h:223
uint32_t padding
Definition virtiogpu.h:130
uint32_t length
Definition virtiogpu.h:129
uint64_t addr
Definition virtiogpu.h:128
Definition virtio_gpu.h:175
__le32 y
Definition virtio_gpu.h:177
__le32 x
Definition virtio_gpu.h:176
uint32_t height
Definition virtiogpu.h:84
__le32 width
Definition virtio_gpu.h:178
Definition virtio_gpu.h:230
uint32_t padding
Definition virtiogpu.h:77
struct virtio_gpu_resource_attach_backing::@676 entries[1]
uint32_t nr_entries
Definition virtiogpu.h:73
uint32_t length
Definition virtiogpu.h:76
uint32_t resource_id
Definition virtiogpu.h:72
uint64_t addr
Definition virtiogpu.h:75
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:231
Definition virtio_gpu.h:190
uint32_t height
Definition virtiogpu.h:65
uint32_t format
Definition virtiogpu.h:63
uint32_t resource_id
Definition virtiogpu.h:62
uint32_t width
Definition virtiogpu.h:64
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:191
Definition virtio_gpu.h:207
struct virtio_gpu_rect rect
Definition virtiogpu.h:110
uint32_t resource_id
Definition virtiogpu.h:111
uint32_t padding
Definition virtiogpu.h:112
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:208
Definition virtio_gpu.h:199
uint32_t resource_id
Definition virtiogpu.h:92
struct virtio_gpu_rect rect
Definition virtiogpu.h:90
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:200
uint32_t scanout_id
Definition virtiogpu.h:91
Definition virtio_gpu.h:215
uint32_t resource_id
Definition virtiogpu.h:101
struct virtio_gpu_rect rect
Definition virtiogpu.h:99
uint64_t offset
Definition virtiogpu.h:100
uint32_t padding
Definition virtiogpu.h:102
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:216
virtio_gpu_ctrl_type
Definition virtio_gpu.h:76
virtio_gpu_formats
Definition virtio_gpu.h:380
@ VIRTIO_GPU_CMD_GET_CAPSET_INFO
Definition virtiogpu.h:145
@ VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER
Definition virtiogpu.h:183
@ VIRTIO_GPU_RESP_OK_EDID
Definition virtiogpu.h:173
@ VIRTIO_GPU_RESP_ERR_INVALID_CONTEXT_ID
Definition virtiogpu.h:182
@ VIRTIO_GPU_CMD_MOVE_CURSOR
Definition virtiogpu.h:166
@ VIRTIO_GPU_RESP_OK_CAPSET_INFO
Definition virtiogpu.h:171
@ VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID
Definition virtiogpu.h:181
@ VIRTIO_GPU_CMD_CTX_DESTROY
Definition virtiogpu.h:154
@ VIRTIO_GPU_RESP_ERR_OUT_OF_MEMORY
Definition virtiogpu.h:179
@ VIRTIO_GPU_CMD_TRANSFER_TO_HOST2D
Definition virtiogpu.h:142
@ VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID
Definition virtiogpu.h:148
@ VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB
Definition virtiogpu.h:149
@ VIRTIO_GPU_CMD_CTX_DETACH_RESOURCE
Definition virtiogpu.h:156
@ VIRTIO_GPU_CMD_SUBMIT_3D
Definition virtiogpu.h:160
@ VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB
Definition virtiogpu.h:162
@ VIRTIO_GPU_CMD_GET_EDID
Definition virtiogpu.h:147
@ VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D
Definition virtiogpu.h:158
@ VIRTIO_GPU_RESP_OK_CAPSET
Definition virtiogpu.h:172
@ VIRTIO_GPU_RESP_OK_MAP_INFO
Definition virtiogpu.h:175
@ VIRTIO_GPU_CMD_CTX_CREATE
Definition virtiogpu.h:153
@ VIRTIO_GPU_CMD_RESOURCE_CREATE_2D
Definition virtiogpu.h:138
@ VIRTIO_GPU_CMD_RESOURCE_UNREF
Definition virtiogpu.h:139
@ VIRTIO_GPU_RESP_ERR_UNSPEC
Definition virtiogpu.h:178
@ VIRTIO_GPU_CMD_SET_SCANOUT
Definition virtiogpu.h:140
@ VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING
Definition virtiogpu.h:143
@ VIRTIO_GPU_RESP_OK_DISPLAY_INFO
Definition virtiogpu.h:170
@ VIRTIO_GPU_CMD_RESOURCE_FLUSH
Definition virtiogpu.h:141
@ VIRTIO_GPU_CMD_GET_CAPSET
Definition virtiogpu.h:146
@ VIRTIO_GPU_CMD_GET_DISPLAY_INFO
Definition virtiogpu.h:137
@ VIRTIO_GPU_RESP_OK_NODATA
Definition virtiogpu.h:169
@ VIRTIO_GPU_CMD_SET_SCANOUT_BLOB
Definition virtiogpu.h:150
@ VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D
Definition virtiogpu.h:159
@ VIRTIO_GPU_CMD_RESOURCE_CREATE_3D
Definition virtiogpu.h:157
@ VIRTIO_GPU_CMD_CTX_ATTACH_RESOURCE
Definition virtiogpu.h:155
@ VIRTIO_GPU_RESP_ERR_INVALID_SCANOUT_ID
Definition virtiogpu.h:180
@ VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING
Definition virtiogpu.h:144
@ VIRTIO_GPU_RESP_OK_RESOURCE_UUID
Definition virtiogpu.h:174
@ VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB
Definition virtiogpu.h:161
@ VIRTIO_GPU_CMD_UPDATE_CURSOR
Definition virtiogpu.h:165
AU_EXTERN AU_EXPORT void VirtGpuConsolePresent(uint32_t *src, uint32_t src_pitch, int x, int y, int w, int h)
VirtGpuConsolePresent – copy a console damage rect into the scanout backing and transfer+flush exactl...
Definition virtscreen.cpp:219
int virt_gpu_default_resource_id()
virt_gpu_default_resource_id – resource id of the scanout created at driver init (the one the console...
Definition virtgpu.cpp:767
int gpu_allocate_resource_id()
gpu_allocate_resource_id – allocates resource for commands
Definition virtgpu.cpp:520
@ VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM
Definition virtiogpu.h:187
@ VIRTIO_GPU_FORMAT_A8R8G8B8_UNORM
Definition virtiogpu.h:189
@ VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM
Definition virtiogpu.h:196
@ VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM
Definition virtiogpu.h:192
@ VIRTIO_GPU_FORMAT_A8B8G8R8_UNORM
Definition virtiogpu.h:195
@ VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM
Definition virtiogpu.h:188
@ VIRTIO_GPU_FORMAT_X8R8G8B8_UNORM
Definition virtiogpu.h:190
@ VIRTIO_GPU_FORMAT_X8B8G8R8_UNORM
Definition virtiogpu.h:193
bool gpu_is_virgl_supported()
gpu_is_virgl_supported – returns if virgl is supported by host
Definition virtgpu.cpp:292
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:465
void gpu_execute_command(VirtioCommonCfg *cfg, void *cmd, size_t len)
gpu_execute_command – submit a command to gpu
Definition virtgpu.cpp:407
bool gpu_is_edid_supported()
gpu_is_edid_supported – returns if edid blob is supported by host
Definition virtgpu.cpp:301
VirtioCommonCfg * gpu_get_config_pointer()
gpu_get_config_pointer – return the pointer virtio common config descriptor from pcie
Definition virtgpu.cpp:763