Turnstone Operating System
Loading...
Searching...
No Matches
video_virtio.h File Reference

video support for virtio devices More...

#include <types.h>
#include <driver/virtio.h>
#include <memory.h>
#include <pci.h>

Classes

struct  virtio_gpu_config_t
 
struct  virtio_gpu_ctrl_hdr_t
 
struct  virtio_gpu_rect_t
 
struct  virtio_gpu_display_one_t
 
struct  virtio_gpu_resp_display_info_t
 
struct  virtio_gpu_get_edid_t
 
struct  virtio_gpu_resp_edid_t
 
struct  virtio_gpu_resource_create_2d_t
 
struct  virtio_gpu_resource_unref_t
 
struct  virtio_gpu_set_scanout_t
 
struct  virtio_gpu_resource_flush_t
 
struct  virtio_gpu_transfer_to_host_2d_t
 
struct  virtio_gpu_mem_entry_t
 
struct  virtio_gpu_resource_attach_backing_t
 
struct  virtio_gpu_resource_detach_backing_t
 
struct  virtio_gpu_get_capset_info_t
 
struct  virtio_gpu_resp_capset_info_t
 
struct  virtio_gpu_get_capset_t
 
struct  virtio_gpu_resp_capset_t
 
struct  virtio_gpu_resource_assign_uuid_t
 
struct  virtio_gpu_resp_resource_uuid_t
 
struct  virtio_gpu_resource_create_blob_t
 
struct  virtio_gpu_set_scanout_blob_t
 
struct  virtio_gpu_ctx_create_t
 
struct  virtio_gpu_ctx_destroy_t
 
struct  virtio_gpu_ctx_resource_t
 
struct  virtio_gpu_resource_create_3d_t
 
struct  virtio_gpu_box_t
 
struct  virtio_gpu_transfer_host_3d_t
 
struct  virtio_gpu_cmd_submit_t
 
struct  virtio_gpu_resource_map_blob_t
 
struct  virtio_gpu_resp_map_info_t
 
struct  virtio_gpu_resource_unmap_blob_t
 
struct  virtio_gpu_cursor_pos_t
 
struct  virtio_gpu_update_cursor_t
 
struct  virtio_gpu_wrapper_t
 

Macros

#define __VIDEO_VIRTIO_H   0
 
#define VIRTIO_GPU_F_VIRGL   0
 
#define VIRTIO_GPU_F_EDID   1
 
#define VIRTIO_GPU_F_RESOURCE_UUID   2
 
#define VIRTIO_GPU_F_RESOURCE_BLOB   3
 
#define VIRTIO_GPU_F_CONTEXT_INIT   4
 
#define VIRTIO_GPU_FLAG_FENCE   (1 << 0)
 
#define VIRTIO_GPU_FLAG_INFO_RING_IDX   (1 << 1)
 
#define VIRTIO_GPU_MAX_SCANOUTS   16
 
#define VIRTIO_GPU_CAPSET_VIRGL   1
 
#define VIRTIO_GPU_CAPSET_VIRGL2   2
 
#define VIRTIO_GPU_CAPSET_GFXSTREAM   3
 
#define VIRTIO_GPU_CAPSET_VENUS   4
 
#define VIRTIO_GPU_CAPSET_CROSS_DOMAIN   5
 
#define VIRTIO_GPU_BLOB_MEM_GUEST   1
 
#define VIRTIO_GPU_BLOB_MEM_HOST3D   2
 
#define VIRTIO_GPU_BLOB_MEM_HOST3D_GUEST   3
 
#define VIRTIO_GPU_BLOB_FLAG_USE_MAPPABLE   1
 
#define VIRTIO_GPU_BLOB_FLAG_USE_SHAREABLE   2
 
#define VIRTIO_GPU_BLOB_FLAG_USE_CROSS_DEVICE   4
 
#define VIRTIO_GPU_CONTEXT_INIT_CAPSET_ID_MASK   0x000000ff
 
#define VIRTIO_GPU_RESOURCE_FLAG_Y_0_TOP   (1 << 0)
 
#define VIRTIO_GPU_MAP_CACHE_MASK   0x0f
 
#define VIRTIO_GPU_MAP_CACHE_NONE   0x00
 
#define VIRTIO_GPU_MAP_CACHE_CACHED   0x01
 
#define VIRTIO_GPU_MAP_CACHE_UNCACHED   0x02
 
#define VIRTIO_GPU_MAP_CACHE_WC   0x03
 

Typedefs

typedef struct virtio_gpu_config_t virtio_gpu_config_t
 
typedef enum virtio_gpu_ctrl_type_t virtio_gpu_ctrl_type_t
 
typedef struct virtio_gpu_ctrl_hdr_t virtio_gpu_ctrl_hdr_t
 
typedef struct virtio_gpu_rect_t virtio_gpu_rect_t
 
typedef struct virtio_gpu_display_one_t virtio_gpu_display_one_t
 
typedef struct virtio_gpu_resp_display_info_t virtio_gpu_resp_display_info_t
 
typedef struct virtio_gpu_get_edid_t virtio_gpu_get_edid_t
 
typedef struct virtio_gpu_resp_edid_t virtio_gpu_resp_edid_t
 
typedef enum virtio_gpu_formats_t virtio_gpu_formats_t
 
typedef struct virtio_gpu_resource_create_2d_t virtio_gpu_resource_create_2d_t
 
typedef struct virtio_gpu_resource_unref_t virtio_gpu_resource_unref_t
 
typedef struct virtio_gpu_set_scanout_t virtio_gpu_set_scanout_t
 
typedef struct virtio_gpu_resource_flush_t virtio_gpu_resource_flush_t
 
typedef struct virtio_gpu_transfer_to_host_2d_t virtio_gpu_transfer_to_host_2d_t
 
typedef struct virtio_gpu_mem_entry_t virtio_gpu_mem_entry_t
 
typedef struct virtio_gpu_resource_attach_backing_t virtio_gpu_resource_attach_backing_t
 
typedef struct virtio_gpu_resource_detach_backing_t virtio_gpu_resource_detach_backing_t
 
typedef struct virtio_gpu_get_capset_info_t virtio_gpu_get_capset_info_t
 
typedef struct virtio_gpu_resp_capset_info_t virtio_gpu_resp_capset_info_t
 
typedef struct virtio_gpu_get_capset_t virtio_gpu_get_capset_t
 
typedef struct virtio_gpu_resp_capset_t virtio_gpu_resp_capset_t
 
typedef struct virtio_gpu_resource_assign_uuid_t virtio_gpu_resource_assign_uuid_t
 
typedef struct virtio_gpu_resp_resource_uuid_t virtio_gpu_resp_resource_uuid_t
 
typedef struct virtio_gpu_resource_create_blob_t virtio_gpu_resource_create_blob_t
 
typedef struct virtio_gpu_set_scanout_blob_t virtio_gpu_set_scanout_blob_t
 
typedef struct virtio_gpu_ctx_create_t virtio_gpu_ctx_create_t
 
typedef struct virtio_gpu_ctx_destroy_t virtio_gpu_ctx_destroy_t
 
typedef struct virtio_gpu_ctx_resource_t virtio_gpu_ctx_resource_t
 
typedef struct virtio_gpu_resource_create_3d_t virtio_gpu_resource_create_3d_t
 
typedef struct virtio_gpu_box_t virtio_gpu_box_t
 
typedef struct virtio_gpu_transfer_host_3d_t virtio_gpu_transfer_host_3d_t
 
typedef struct virtio_gpu_cmd_submit_t virtio_gpu_cmd_submit_t
 
typedef struct virtio_gpu_resource_map_blob_t virtio_gpu_resource_map_blob_t
 
typedef struct virtio_gpu_resp_map_info_t virtio_gpu_resp_map_info_t
 
typedef struct virtio_gpu_resource_unmap_blob_t virtio_gpu_resource_unmap_blob_t
 
typedef struct virtio_gpu_cursor_pos_t virtio_gpu_cursor_pos_t
 
typedef struct virtio_gpu_update_cursor_t virtio_gpu_update_cursor_t
 
typedef struct virtio_gpu_wrapper_t virtio_gpu_wrapper_t
 

Enumerations

enum  virtio_gpu_ctrl_type_t {
  VIRTIO_GPU_CMD_GET_DISPLAY_INFO = 0x0100 , VIRTIO_GPU_CMD_RESOURCE_CREATE_2D = 0x0101 , VIRTIO_GPU_CMD_RESOURCE_UNREF = 0x0102 , VIRTIO_GPU_CMD_SET_SCANOUT = 0x0103 ,
  VIRTIO_GPU_CMD_RESOURCE_FLUSH = 0x0104 , VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D = 0x0105 , VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING = 0x0106 , VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING = 0x0107 ,
  VIRTIO_GPU_CMD_GET_CAPSET_INFO = 0x0108 , VIRTIO_GPU_CMD_GET_CAPSET = 0x0109 , VIRTIO_GPU_CMD_GET_EDID = 0x010a , VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID = 0x010b ,
  VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB = 0x010c , VIRTIO_GPU_CMD_SET_SCANOUT_BLOB = 0x010d , VIRTIO_GPU_CMD_CTX_CREATE = 0x0200 , VIRTIO_GPU_CMD_CTX_DESTROY = 0x0201 ,
  VIRTIO_GPU_CMD_CTX_ATTACH_RESOURCE = 0x0202 , VIRTIO_GPU_CMD_CTX_DETACH_RESOURCE = 0x0203 , VIRTIO_GPU_CMD_RESOURCE_CREATE_3D = 0x0204 , VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D = 0x0205 ,
  VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D = 0x0206 , VIRTIO_GPU_CMD_SUBMIT_3D = 0x0207 , VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB = 0x0208 , VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB = 0x0209 ,
  VIRTIO_GPU_CMD_UPDATE_CURSOR = 0x0300 , VIRTIO_GPU_CMD_MOVE_CURSOR = 0x0301 , VIRTIO_GPU_RESP_OK_NODATA = 0x1100 , VIRTIO_GPU_RESP_OK_DISPLAY_INFO = 0x1101 ,
  VIRTIO_GPU_RESP_OK_CAPSET_INFO = 0x1102 , VIRTIO_GPU_RESP_OK_CAPSET = 0x1103 , VIRTIO_GPU_RESP_OK_EDID = 0x1104 , VIRTIO_GPU_RESP_OK_RESOURCE_UUID = 0x1105 ,
  VIRTIO_GPU_RESP_OK_MAP_INFO = 0x1106 , VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200 , VIRTIO_GPU_RESP_ERR_OUT_OF_MEMORY = 0x1201 , VIRTIO_GPU_RESP_ERR_INVALID_SCANOUT_ID = 0x1202 ,
  VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID = 0x1203 , VIRTIO_GPU_RESP_ERR_INVALID_CONTEXT_ID = 0x1204 , VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER = 0x1205
}
 
enum  virtio_gpu_formats_t {
  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

int8_t virtio_video_init (memory_heap_t *heap, const pci_dev_t *device)
 

Detailed Description

video support for virtio devices

This work is licensed under TURNSTONE OS Public License. Please read and understand latest version of Licence.