//\r
// Queue number for sending control commands.\r
//\r
-#define VIRTIO_GPU_CONTROL_QUEUE 0\r
+#define VIRTIO_GPU_CONTROL_QUEUE 0\r
\r
//\r
// Command and response types.\r
//\r
// - create/release a host-side 2D resource,\r
//\r
- VirtioGpuCmdResourceCreate2d = 0x0101,\r
- VirtioGpuCmdResourceUnref = 0x0102,\r
+ VirtioGpuCmdResourceCreate2d = 0x0101,\r
+ VirtioGpuCmdResourceUnref = 0x0102,\r
//\r
// - attach/detach guest RAM to/from a host-side 2D resource,\r
//\r
//\r
// - assign/unassign a host-side 2D resource to/from a scanout ("head").\r
//\r
- VirtioGpuCmdSetScanout = 0x0103,\r
+ VirtioGpuCmdSetScanout = 0x0103,\r
\r
//\r
// Commands related to drawing:\r
// - transfer a guest RAM update to the host-side 2D resource (does not imply\r
// host display refresh),\r
//\r
- VirtioGpuCmdTransferToHost2d = 0x0105,\r
+ VirtioGpuCmdTransferToHost2d = 0x0105,\r
//\r
// - trigger a host display refresh from the 2D resource.\r
//\r
- VirtioGpuCmdResourceFlush = 0x0104,\r
+ VirtioGpuCmdResourceFlush = 0x0104,\r
\r
//\r
// Success code for all of the above commands.\r
//\r
- VirtioGpuRespOkNodata = 0x1100,\r
+ VirtioGpuRespOkNodata = 0x1100,\r
} VIRTIO_GPU_CONTROL_TYPE;\r
\r
//\r
// Common request/response header.\r
//\r
-#define VIRTIO_GPU_FLAG_FENCE BIT0\r
+#define VIRTIO_GPU_FLAG_FENCE BIT0\r
\r
#pragma pack (1)\r
typedef struct {\r
// The guest sets Type to VirtioGpuCmd* in the requests. The host sets Type\r
// to VirtioGpuResp* in the responses.\r
//\r
- UINT32 Type;\r
+ UINT32 Type;\r
\r
//\r
// Fencing forces the host to complete the command before producing a\r
// response.\r
//\r
- UINT32 Flags;\r
- UINT64 FenceId;\r
+ UINT32 Flags;\r
+ UINT64 FenceId;\r
\r
//\r
// Unused.\r
//\r
- UINT32 CtxId;\r
- UINT32 Padding;\r
+ UINT32 CtxId;\r
+ UINT32 Padding;\r
} VIRTIO_GPU_CONTROL_HEADER;\r
#pragma pack ()\r
\r
//\r
#pragma pack (1)\r
typedef struct {\r
- UINT32 X;\r
- UINT32 Y;\r
- UINT32 Width;\r
- UINT32 Height;\r
+ UINT32 X;\r
+ UINT32 Y;\r
+ UINT32 Width;\r
+ UINT32 Height;\r
} VIRTIO_GPU_RECTANGLE;\r
#pragma pack ()\r
\r
\r
#pragma pack (1)\r
typedef struct {\r
- VIRTIO_GPU_CONTROL_HEADER Header;\r
- UINT32 ResourceId; // note: 0 is invalid\r
- UINT32 Format; // from VIRTIO_GPU_FORMATS\r
- UINT32 Width;\r
- UINT32 Height;\r
+ VIRTIO_GPU_CONTROL_HEADER Header;\r
+ UINT32 ResourceId; // note: 0 is invalid\r
+ UINT32 Format; // from VIRTIO_GPU_FORMATS\r
+ UINT32 Width;\r
+ UINT32 Height;\r
} VIRTIO_GPU_RESOURCE_CREATE_2D;\r
#pragma pack ()\r
\r
//\r
#pragma pack (1)\r
typedef struct {\r
- VIRTIO_GPU_CONTROL_HEADER Header;\r
- UINT32 ResourceId;\r
- UINT32 Padding;\r
+ VIRTIO_GPU_CONTROL_HEADER Header;\r
+ UINT32 ResourceId;\r
+ UINT32 Padding;\r
} VIRTIO_GPU_RESOURCE_UNREF;\r
#pragma pack ()\r
\r
//\r
#pragma pack (1)\r
typedef struct {\r
- UINT64 Addr;\r
- UINT32 Length;\r
- UINT32 Padding;\r
+ UINT64 Addr;\r
+ UINT32 Length;\r
+ UINT32 Padding;\r
} VIRTIO_GPU_MEM_ENTRY;\r
\r
typedef struct {\r
- VIRTIO_GPU_CONTROL_HEADER Header;\r
- UINT32 ResourceId;\r
- UINT32 NrEntries; // number of entries: constant 1\r
- VIRTIO_GPU_MEM_ENTRY Entry;\r
+ VIRTIO_GPU_CONTROL_HEADER Header;\r
+ UINT32 ResourceId;\r
+ UINT32 NrEntries; // number of entries: constant 1\r
+ VIRTIO_GPU_MEM_ENTRY Entry;\r
} VIRTIO_GPU_RESOURCE_ATTACH_BACKING;\r
#pragma pack ()\r
\r
//\r
#pragma pack (1)\r
typedef struct {\r
- VIRTIO_GPU_CONTROL_HEADER Header;\r
- UINT32 ResourceId;\r
- UINT32 Padding;\r
+ VIRTIO_GPU_CONTROL_HEADER Header;\r
+ UINT32 ResourceId;\r
+ UINT32 Padding;\r
} VIRTIO_GPU_RESOURCE_DETACH_BACKING;\r
#pragma pack ()\r
\r
//\r
#pragma pack (1)\r
typedef struct {\r
- VIRTIO_GPU_CONTROL_HEADER Header;\r
- VIRTIO_GPU_RECTANGLE Rectangle;\r
- UINT32 ScanoutId;\r
- UINT32 ResourceId;\r
+ VIRTIO_GPU_CONTROL_HEADER Header;\r
+ VIRTIO_GPU_RECTANGLE Rectangle;\r
+ UINT32 ScanoutId;\r
+ UINT32 ResourceId;\r
} VIRTIO_GPU_SET_SCANOUT;\r
#pragma pack ()\r
\r
//\r
#pragma pack (1)\r
typedef struct {\r
- VIRTIO_GPU_CONTROL_HEADER Header;\r
- VIRTIO_GPU_RECTANGLE Rectangle;\r
- UINT64 Offset;\r
- UINT32 ResourceId;\r
- UINT32 Padding;\r
+ VIRTIO_GPU_CONTROL_HEADER Header;\r
+ VIRTIO_GPU_RECTANGLE Rectangle;\r
+ UINT64 Offset;\r
+ UINT32 ResourceId;\r
+ UINT32 Padding;\r
} VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D;\r
#pragma pack ()\r
\r
//\r
#pragma pack (1)\r
typedef struct {\r
- VIRTIO_GPU_CONTROL_HEADER Header;\r
- VIRTIO_GPU_RECTANGLE Rectangle;\r
- UINT32 ResourceId;\r
- UINT32 Padding;\r
+ VIRTIO_GPU_CONTROL_HEADER Header;\r
+ VIRTIO_GPU_RECTANGLE Rectangle;\r
+ UINT32 ResourceId;\r
+ UINT32 Padding;\r
} VIRTIO_GPU_RESOURCE_FLUSH;\r
#pragma pack ()\r
\r