38#ifndef VIRTIO_GPU_HW_H
39#define VIRTIO_GPU_HW_H
47#define VIRTIO_GPU_F_VIRGL 0
52#define VIRTIO_GPU_F_EDID 1
56#define VIRTIO_GPU_F_RESOURCE_UUID 2
61#define VIRTIO_GPU_F_RESOURCE_BLOB 3
66#define VIRTIO_GPU_F_CONTEXT_INIT 4
74#define VIRTIO_GPU_F_BLOB_ALIGNMENT 5
138#define VIRTIO_GPU_FLAG_FENCE (1 << 0)
143#define VIRTIO_GPU_FLAG_INFO_RING_IDX (1 << 1)
244#define VIRTIO_GPU_MAX_SCANOUTS 16
273#define VIRTIO_GPU_RESOURCE_FLAG_Y_0_TOP (1 << 0)
291#define VIRTIO_GPU_CONTEXT_INIT_CAPSET_ID_MASK 0x000000ff
318#define VIRTIO_GPU_CAPSET_VIRGL 1
319#define VIRTIO_GPU_CAPSET_VIRGL2 2
320#define VIRTIO_GPU_CAPSET_GFXSTREAM_VULKAN 3
321#define VIRTIO_GPU_CAPSET_VENUS 4
322#define VIRTIO_GPU_CAPSET_CROSS_DOMAIN 5
323#define VIRTIO_GPU_CAPSET_DRM 6
369#define VIRTIO_GPU_EVENT_DISPLAY (1 << 0)
410#define VIRTIO_GPU_BLOB_MEM_GUEST 0x0001
411#define VIRTIO_GPU_BLOB_MEM_HOST3D 0x0002
412#define VIRTIO_GPU_BLOB_MEM_HOST3D_GUEST 0x0003
414#define VIRTIO_GPU_BLOB_FLAG_USE_MAPPABLE 0x0001
415#define VIRTIO_GPU_BLOB_FLAG_USE_SHAREABLE 0x0002
416#define VIRTIO_GPU_BLOB_FLAG_USE_CROSS_DEVICE 0x0004
451#define VIRTIO_GPU_MAP_CACHE_MASK 0x0f
452#define VIRTIO_GPU_MAP_CACHE_NONE 0x00
453#define VIRTIO_GPU_MAP_CACHE_CACHED 0x01
454#define VIRTIO_GPU_MAP_CACHE_UNCACHED 0x02
455#define VIRTIO_GPU_MAP_CACHE_WC 0x03
uint32_t __u32
Definition drm.h:42
uint8_t __u8
Definition drm.h:38
uint64_t __le64
Definition kernel.h:35
uint32_t __le32
Definition kernel.h:34
Definition drm_edid.h:291
Definition virtio_gpu.h:256
__le32 w
Definition virtio_gpu.h:258
__le32 h
Definition virtio_gpu.h:258
__le32 z
Definition virtio_gpu.h:257
__le32 x
Definition virtio_gpu.h:257
__le32 y
Definition virtio_gpu.h:257
__le32 d
Definition virtio_gpu.h:258
Definition virtio_gpu.h:355
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:356
__le32 padding
Definition virtio_gpu.h:358
__le32 scanout
Definition virtio_gpu.h:357
Definition virtio_gpu.h:312
__le32 size
Definition virtio_gpu.h:314
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:313
__le32 padding
Definition virtio_gpu.h:315
Definition virtio_gpu.h:371
__le32 num_capsets
Definition virtio_gpu.h:375
__le32 events_read
Definition virtio_gpu.h:372
__le32 num_scanouts
Definition virtio_gpu.h:374
__le32 events_clear
Definition virtio_gpu.h:373
__le32 blob_alignment
Definition virtio_gpu.h:376
Definition virtio_gpu.h:145
__le32 type
Definition virtio_gpu.h:146
__le64 fence_id
Definition virtio_gpu.h:148
__le32 ctx_id
Definition virtio_gpu.h:149
__le32 flags
Definition virtio_gpu.h:147
__u8 padding[3]
Definition virtio_gpu.h:151
__u8 ring_idx
Definition virtio_gpu.h:150
Definition virtio_gpu.h:292
char debug_name[64]
Definition virtio_gpu.h:296
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:293
__le32 nlen
Definition virtio_gpu.h:294
__le32 context_init
Definition virtio_gpu.h:295
Definition virtio_gpu.h:300
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:301
Definition virtio_gpu.h:305
__le32 padding
Definition virtio_gpu.h:308
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:306
__le32 resource_id
Definition virtio_gpu.h:307
Definition virtio_gpu.h:156
__le32 scanout_id
Definition virtio_gpu.h:157
__le32 x
Definition virtio_gpu.h:158
__le32 padding
Definition virtio_gpu.h:160
__le32 y
Definition virtio_gpu.h:159
Definition virtio_gpu.h:326
__le32 capset_index
Definition virtio_gpu.h:328
__le32 padding
Definition virtio_gpu.h:329
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:327
Definition virtio_gpu.h:342
__le32 capset_id
Definition virtio_gpu.h:344
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:343
__le32 capset_version
Definition virtio_gpu.h:345
Definition virtio_gpu.h:223
__le64 addr
Definition virtio_gpu.h:224
__le32 length
Definition virtio_gpu.h:225
__le32 padding
Definition virtio_gpu.h:226
Definition virtio_gpu.h:175
__le32 y
Definition virtio_gpu.h:177
__le32 x
Definition virtio_gpu.h:176
__le32 width
Definition virtio_gpu.h:178
__le32 height
Definition virtio_gpu.h:179
Definition virtio_gpu.h:394
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:395
__le32 resource_id
Definition virtio_gpu.h:396
__le32 padding
Definition virtio_gpu.h:397
Definition virtio_gpu.h:230
__le32 nr_entries
Definition virtio_gpu.h:233
__le32 resource_id
Definition virtio_gpu.h:232
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:231
Definition virtio_gpu.h:190
__le32 format
Definition virtio_gpu.h:193
__le32 width
Definition virtio_gpu.h:194
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:191
__le32 height
Definition virtio_gpu.h:195
__le32 resource_id
Definition virtio_gpu.h:192
Definition virtio_gpu.h:274
__le32 last_level
Definition virtio_gpu.h:284
__le32 padding
Definition virtio_gpu.h:287
__le32 target
Definition virtio_gpu.h:277
__le32 flags
Definition virtio_gpu.h:286
__le32 nr_samples
Definition virtio_gpu.h:285
__le32 format
Definition virtio_gpu.h:278
__le32 width
Definition virtio_gpu.h:280
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:275
__le32 resource_id
Definition virtio_gpu.h:276
__le32 depth
Definition virtio_gpu.h:282
__le32 array_size
Definition virtio_gpu.h:283
__le32 bind
Definition virtio_gpu.h:279
__le32 height
Definition virtio_gpu.h:281
Definition virtio_gpu.h:407
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:408
__le64 blob_id
Definition virtio_gpu.h:421
__le64 size
Definition virtio_gpu.h:422
__le32 blob_flags
Definition virtio_gpu.h:419
__le32 nr_entries
Definition virtio_gpu.h:420
__le32 blob_mem
Definition virtio_gpu.h:418
__le32 resource_id
Definition virtio_gpu.h:409
Definition virtio_gpu.h:237
__le32 resource_id
Definition virtio_gpu.h:239
__le32 padding
Definition virtio_gpu.h:240
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:238
Definition virtio_gpu.h:207
__le32 padding
Definition virtio_gpu.h:211
struct virtio_gpu_rect r
Definition virtio_gpu.h:209
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:208
__le32 resource_id
Definition virtio_gpu.h:210
Definition virtio_gpu.h:443
__le64 offset
Definition virtio_gpu.h:447
__le32 resource_id
Definition virtio_gpu.h:445
__le32 padding
Definition virtio_gpu.h:446
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:444
Definition virtio_gpu.h:463
__le32 resource_id
Definition virtio_gpu.h:465
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:464
__le32 padding
Definition virtio_gpu.h:466
Definition virtio_gpu.h:183
__le32 resource_id
Definition virtio_gpu.h:185
__le32 padding
Definition virtio_gpu.h:186
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:184
Definition virtio_gpu.h:333
__le32 padding
Definition virtio_gpu.h:338
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:334
__le32 capset_max_size
Definition virtio_gpu.h:337
__le32 capset_id
Definition virtio_gpu.h:335
__le32 capset_max_version
Definition virtio_gpu.h:336
Definition virtio_gpu.h:349
__u8 capset_data[]
Definition virtio_gpu.h:351
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:350
Definition virtio_gpu.h:247
struct virtio_gpu_rect r
Definition virtio_gpu.h:248
__le32 enabled
Definition virtio_gpu.h:249
__le32 flags
Definition virtio_gpu.h:250
Definition virtio_gpu.h:245
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:246
struct virtio_gpu_resp_display_info::virtio_gpu_display_one pmodes[VIRTIO_GPU_MAX_SCANOUTS]
Definition virtio_gpu.h:362
__le32 size
Definition virtio_gpu.h:364
__le32 padding
Definition virtio_gpu.h:365
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:363
Definition virtio_gpu.h:456
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:457
__u32 padding
Definition virtio_gpu.h:459
__u32 map_info
Definition virtio_gpu.h:458
Definition virtio_gpu.h:401
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:402
__u8 uuid[16]
Definition virtio_gpu.h:403
Definition virtio_gpu.h:429
__le32 offsets[4]
Definition virtio_gpu.h:439
__le32 width
Definition virtio_gpu.h:434
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:430
__le32 strides[4]
Definition virtio_gpu.h:438
struct virtio_gpu_rect r
Definition virtio_gpu.h:431
__le32 scanout_id
Definition virtio_gpu.h:432
__le32 format
Definition virtio_gpu.h:436
__le32 height
Definition virtio_gpu.h:435
__le32 resource_id
Definition virtio_gpu.h:433
__le32 padding
Definition virtio_gpu.h:437
Definition virtio_gpu.h:199
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:200
__le32 resource_id
Definition virtio_gpu.h:203
__le32 scanout_id
Definition virtio_gpu.h:202
struct virtio_gpu_rect r
Definition virtio_gpu.h:201
Definition virtio_gpu.h:262
__le32 level
Definition virtio_gpu.h:267
__le32 layer_stride
Definition virtio_gpu.h:269
__le64 offset
Definition virtio_gpu.h:265
__le32 stride
Definition virtio_gpu.h:268
struct virtio_gpu_box box
Definition virtio_gpu.h:264
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:263
__le32 resource_id
Definition virtio_gpu.h:266
Definition virtio_gpu.h:215
__le32 resource_id
Definition virtio_gpu.h:219
__le64 offset
Definition virtio_gpu.h:218
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:216
struct virtio_gpu_rect r
Definition virtio_gpu.h:217
__le32 padding
Definition virtio_gpu.h:220
Definition virtio_gpu.h:164
struct virtio_gpu_cursor_pos pos
Definition virtio_gpu.h:166
__le32 padding
Definition virtio_gpu.h:170
__le32 hot_y
Definition virtio_gpu.h:169
struct virtio_gpu_ctrl_hdr hdr
Definition virtio_gpu.h:165
__le32 hot_x
Definition virtio_gpu.h:168
__le32 resource_id
Definition virtio_gpu.h:167
virtio_gpu_shm_id
Definition virtio_gpu.h:129
@ VIRTIO_GPU_SHM_ID_UNDEFINED
Definition virtio_gpu.h:130
@ VIRTIO_GPU_SHM_ID_HOST_VISIBLE
Definition virtio_gpu.h:135
virtio_gpu_ctrl_type
Definition virtio_gpu.h:76
@ VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D
Definition virtio_gpu.h:85
@ VIRTIO_GPU_CMD_GET_CAPSET_INFO
Definition virtio_gpu.h:88
@ VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER
Definition virtio_gpu.h:126
@ VIRTIO_GPU_RESP_OK_EDID
Definition virtio_gpu.h:116
@ VIRTIO_GPU_RESP_ERR_INVALID_CONTEXT_ID
Definition virtio_gpu.h:125
@ VIRTIO_GPU_CMD_MOVE_CURSOR
Definition virtio_gpu.h:109
@ VIRTIO_GPU_RESP_OK_CAPSET_INFO
Definition virtio_gpu.h:114
@ VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID
Definition virtio_gpu.h:124
@ VIRTIO_GPU_CMD_CTX_DESTROY
Definition virtio_gpu.h:97
@ VIRTIO_GPU_RESP_ERR_OUT_OF_MEMORY
Definition virtio_gpu.h:122
@ VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID
Definition virtio_gpu.h:91
@ VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB
Definition virtio_gpu.h:92
@ VIRTIO_GPU_CMD_CTX_DETACH_RESOURCE
Definition virtio_gpu.h:99
@ VIRTIO_GPU_CMD_SUBMIT_3D
Definition virtio_gpu.h:103
@ VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB
Definition virtio_gpu.h:105
@ VIRTIO_GPU_CMD_GET_EDID
Definition virtio_gpu.h:90
@ VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D
Definition virtio_gpu.h:101
@ VIRTIO_GPU_RESP_OK_CAPSET
Definition virtio_gpu.h:115
@ VIRTIO_GPU_RESP_OK_MAP_INFO
Definition virtio_gpu.h:118
@ VIRTIO_GPU_CMD_CTX_CREATE
Definition virtio_gpu.h:96
@ VIRTIO_GPU_CMD_RESOURCE_CREATE_2D
Definition virtio_gpu.h:81
@ VIRTIO_GPU_CMD_RESOURCE_UNREF
Definition virtio_gpu.h:82
@ VIRTIO_GPU_RESP_ERR_UNSPEC
Definition virtio_gpu.h:121
@ VIRTIO_GPU_CMD_SET_SCANOUT
Definition virtio_gpu.h:83
@ VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING
Definition virtio_gpu.h:86
@ VIRTIO_GPU_RESP_OK_DISPLAY_INFO
Definition virtio_gpu.h:113
@ VIRTIO_GPU_UNDEFINED
Definition virtio_gpu.h:77
@ VIRTIO_GPU_CMD_RESOURCE_FLUSH
Definition virtio_gpu.h:84
@ VIRTIO_GPU_CMD_GET_CAPSET
Definition virtio_gpu.h:89
@ VIRTIO_GPU_CMD_GET_DISPLAY_INFO
Definition virtio_gpu.h:80
@ VIRTIO_GPU_RESP_OK_NODATA
Definition virtio_gpu.h:112
@ VIRTIO_GPU_CMD_SET_SCANOUT_BLOB
Definition virtio_gpu.h:93
@ VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D
Definition virtio_gpu.h:102
@ VIRTIO_GPU_CMD_RESOURCE_CREATE_3D
Definition virtio_gpu.h:100
@ VIRTIO_GPU_CMD_CTX_ATTACH_RESOURCE
Definition virtio_gpu.h:98
@ VIRTIO_GPU_RESP_ERR_INVALID_SCANOUT_ID
Definition virtio_gpu.h:123
@ VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING
Definition virtio_gpu.h:87
@ VIRTIO_GPU_RESP_OK_RESOURCE_UUID
Definition virtio_gpu.h:117
@ VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB
Definition virtio_gpu.h:104
@ VIRTIO_GPU_CMD_UPDATE_CURSOR
Definition virtio_gpu.h:108
virtio_gpu_formats
Definition virtio_gpu.h:380
@ VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM
Definition virtio_gpu.h:381
@ VIRTIO_GPU_FORMAT_A8R8G8B8_UNORM
Definition virtio_gpu.h:383
@ VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM
Definition virtio_gpu.h:390
@ VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM
Definition virtio_gpu.h:386
@ VIRTIO_GPU_FORMAT_A8B8G8R8_UNORM
Definition virtio_gpu.h:389
@ VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM
Definition virtio_gpu.h:382
@ VIRTIO_GPU_FORMAT_X8R8G8B8_UNORM
Definition virtio_gpu.h:384
@ VIRTIO_GPU_FORMAT_X8B8G8R8_UNORM
Definition virtio_gpu.h:387
#define VIRTIO_GPU_MAX_SCANOUTS
Definition virtio_gpu.h:244