XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions
virtiogpu.h File Reference
#include <stdint.h>
#include <Drivers/virtio.h>
Include dependency graph for virtiogpu.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  virtio_gpu_ctrl_hdr
 
struct  virtio_gpu_resource_create_2d
 
struct  virtio_gpu_resource_attach_backing
 
struct  virtio_gpu_rect
 
struct  virtio_gpu_set_scanout
 
struct  virtio_gpu_transfer_to_host_2d
 
struct  virtio_gpu_resource_flush
 
struct  virtio_gpu_config
 
struct  virtio_gpu_mem_entry
 

Macros

#define VIRTIO_GPU_FLAG_FENCE   (1<<0)
 
#define VIRTIO_GPU_FLAG_INFO_RING_IDX   (1<<1)
 
#define VIRTIO_GPU_CREATE_RESOURCE_2D   0x200
 
#define VIRTIO_GPU_ATTACH_BACKING   0x201
 
#define VIRTIO_GPU_TRANSFER_TO_HOST2D   0x202
 
#define VIRTIO_GPU_FLUSH   0x203
 
#define VIRTIO_GPU_GET_SCREEN_RSRC_ID   0x204
 

Enumerations

enum  virtio_gpu_ctrl_type {
  VIRTIO_GPU_CMD_GET_DISPLAY_INFO = 0x0100 , VIRTIO_GPU_CMD_RESOURCE_CREATE_2D , VIRTIO_GPU_CMD_RESOURCE_UNREF , VIRTIO_GPU_CMD_SET_SCANOUT ,
  VIRTIO_GPU_CMD_RESOURCE_FLUSH , VIRTIO_GPU_CMD_TRANSFER_TO_HOST2D , VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING , VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING ,
  VIRTIO_GPU_CMD_GET_CAPSET_INFO , VIRTIO_GPU_CMD_GET_CAPSET , VIRTIO_GPU_CMD_GET_EDID , VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID ,
  VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB , VIRTIO_GPU_CMD_SET_SCANOUT_BLOB , VIRTIO_GPU_CMD_CTX_CREATE = 0x0200 , VIRTIO_GPU_CMD_CTX_DESTROY ,
  VIRTIO_GPU_CMD_CTX_ATTACH_RESOURCE , VIRTIO_GPU_CMD_CTX_DETACH_RESOURCE , VIRTIO_GPU_CMD_RESOURCE_CREATE_3D , VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D ,
  VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D , VIRTIO_GPU_CMD_SUBMIT_3D , VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB , VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB ,
  VIRTIO_GPU_CMD_UPDATE_CURSOR = 0x0300 , VIRTIO_GPU_CMD_MOVE_CURSOR , VIRTIO_GPU_RESP_OK_NODATA = 0x1100 , VIRTIO_GPU_RESP_OK_DISPLAY_INFO ,
  VIRTIO_GPU_RESP_OK_CAPSET_INFO , VIRTIO_GPU_RESP_OK_CAPSET , VIRTIO_GPU_RESP_OK_EDID , VIRTIO_GPU_RESP_OK_RESOURCE_UUID ,
  VIRTIO_GPU_RESP_OK_MAP_INFO , VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200 , VIRTIO_GPU_RESP_ERR_OUT_OF_MEMORY , VIRTIO_GPU_RESP_ERR_INVALID_SCANOUT_ID ,
  VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID , VIRTIO_GPU_RESP_ERR_INVALID_CONTEXT_ID , VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER
}
 
enum  virtio_gpu_formats {
  VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM = 1 , VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM = 2 , VIRTIO_GPU_FORMAT_A8R8G8B8_UNORM = 3 , VIRTIO_GPU_FORMAT_X8R8G8B8_UNORM = 4 ,
  VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM = 67 , VIRTIO_GPU_FORMAT_X8B8G8R8_UNORM = 68 , VIRTIO_GPU_FORMAT_A8B8G8R8_UNORM = 121 , VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM = 134
}
 

Functions

bool gpu_is_virgl_supported ()
 gpu_is_virgl_supported – returns if virgl is supported by host
 
bool gpu_is_edid_supported ()
 gpu_is_edid_supported – returns if edid blob is supported by host
 
void gpu_execute_command (VirtioCommonCfg *cfg, void *cmd, size_t len)
 gpu_execute_command – submit a command to gpu
 
int gpu_allocate_resource_id ()
 gpu_allocate_resource_id – allocates resource for commands
 
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 won't satisfy this
 
VirtioCommonCfggpu_get_config_pointer ()
 gpu_get_config_pointer – return the pointer virtio common config descriptor from pcie
 

Macro Definition Documentation

◆ VIRTIO_GPU_ATTACH_BACKING

#define VIRTIO_GPU_ATTACH_BACKING   0x201

◆ VIRTIO_GPU_CREATE_RESOURCE_2D

#define VIRTIO_GPU_CREATE_RESOURCE_2D   0x200

◆ VIRTIO_GPU_FLAG_FENCE

#define VIRTIO_GPU_FLAG_FENCE   (1<<0)

◆ VIRTIO_GPU_FLAG_INFO_RING_IDX

#define VIRTIO_GPU_FLAG_INFO_RING_IDX   (1<<1)

◆ VIRTIO_GPU_FLUSH

#define VIRTIO_GPU_FLUSH   0x203

◆ VIRTIO_GPU_GET_SCREEN_RSRC_ID

#define VIRTIO_GPU_GET_SCREEN_RSRC_ID   0x204

◆ VIRTIO_GPU_TRANSFER_TO_HOST2D

#define VIRTIO_GPU_TRANSFER_TO_HOST2D   0x202

Enumeration Type Documentation

◆ virtio_gpu_ctrl_type

Enumerator
VIRTIO_GPU_CMD_GET_DISPLAY_INFO 
VIRTIO_GPU_CMD_RESOURCE_CREATE_2D 
VIRTIO_GPU_CMD_RESOURCE_UNREF 
VIRTIO_GPU_CMD_SET_SCANOUT 
VIRTIO_GPU_CMD_RESOURCE_FLUSH 
VIRTIO_GPU_CMD_TRANSFER_TO_HOST2D 
VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING 
VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING 
VIRTIO_GPU_CMD_GET_CAPSET_INFO 
VIRTIO_GPU_CMD_GET_CAPSET 
VIRTIO_GPU_CMD_GET_EDID 
VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID 
VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB 
VIRTIO_GPU_CMD_SET_SCANOUT_BLOB 
VIRTIO_GPU_CMD_CTX_CREATE 
VIRTIO_GPU_CMD_CTX_DESTROY 
VIRTIO_GPU_CMD_CTX_ATTACH_RESOURCE 
VIRTIO_GPU_CMD_CTX_DETACH_RESOURCE 
VIRTIO_GPU_CMD_RESOURCE_CREATE_3D 
VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D 
VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D 
VIRTIO_GPU_CMD_SUBMIT_3D 
VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB 
VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB 
VIRTIO_GPU_CMD_UPDATE_CURSOR 
VIRTIO_GPU_CMD_MOVE_CURSOR 
VIRTIO_GPU_RESP_OK_NODATA 
VIRTIO_GPU_RESP_OK_DISPLAY_INFO 
VIRTIO_GPU_RESP_OK_CAPSET_INFO 
VIRTIO_GPU_RESP_OK_CAPSET 
VIRTIO_GPU_RESP_OK_EDID 
VIRTIO_GPU_RESP_OK_RESOURCE_UUID 
VIRTIO_GPU_RESP_OK_MAP_INFO 
VIRTIO_GPU_RESP_ERR_UNSPEC 
VIRTIO_GPU_RESP_ERR_OUT_OF_MEMORY 
VIRTIO_GPU_RESP_ERR_INVALID_SCANOUT_ID 
VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID 
VIRTIO_GPU_RESP_ERR_INVALID_CONTEXT_ID 
VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER 

◆ virtio_gpu_formats

Enumerator
VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM 
VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM 
VIRTIO_GPU_FORMAT_A8R8G8B8_UNORM 
VIRTIO_GPU_FORMAT_X8R8G8B8_UNORM 
VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM 
VIRTIO_GPU_FORMAT_X8B8G8R8_UNORM 
VIRTIO_GPU_FORMAT_A8B8G8R8_UNORM 
VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM 

Function Documentation

◆ gpu_allocate_resource_id()

int gpu_allocate_resource_id ( )
extern

gpu_allocate_resource_id – allocates resource for commands

Returns
newly allocated resource id

◆ gpu_attach_back_cmd()

void gpu_attach_back_cmd ( VirtioCommonCfg cfg,
void *  req,
uint32_t  len1,
void *  req2,
uint32_t  len2 
)
extern

gpu_attach_back_cmd – attach backing stroe command needs two descriptor previous gpu_execute_command won't satisfy this

Parameters
cfg– pointer to virtio common config
req– pointer to request command one
len1– request command one length
req2– pointer to request command two
len2– request command two length

◆ gpu_execute_command()

void gpu_execute_command ( VirtioCommonCfg cfg,
void *  cmd,
size_t  len 
)
extern

gpu_execute_command – submit a command to gpu

Parameters
cfg– pointer to virtio common config
cmd– Pointer to command struct
len– total length of the command

◆ gpu_get_config_pointer()

VirtioCommonCfg * gpu_get_config_pointer ( )
extern

gpu_get_config_pointer – return the pointer virtio common config descriptor from pcie

Returns
system config descriptor from pcie config space

◆ gpu_is_edid_supported()

bool gpu_is_edid_supported ( )
extern

gpu_is_edid_supported – returns if edid blob is supported by host

Returns
true if supported, false if not supported

◆ gpu_is_virgl_supported()

bool gpu_is_virgl_supported ( )
extern

gpu_is_virgl_supported – returns if virgl is supported by host

Returns
true if supported, false if not supported