virtio-gpu: add new + proposed kernel protocols

BUG=chromium:924405
TEST=compile

Change-Id: I550d5e60e8bde1378c226fc9da61eb60f1293811
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1591461
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: David Riley <davidriley@chromium.org>
This commit is contained in:
Gurchetan Singh 2019-01-25 15:10:54 -08:00 committed by Commit Bot
parent b7da549c7b
commit 45f86fd548

View file

@ -16,6 +16,11 @@ use super::{Reader, Writer};
use data_model::{DataInit, Le32, Le64};
pub const VIRTIO_GPU_F_VIRGL: u32 = 0;
pub const VIRTIO_GPU_F_EDID: u32 = 1;
/* The following capabilities are not upstreamed. */
pub const VIRTIO_GPU_F_MEMORY: u32 = 2;
pub const VIRTIO_GPU_F_SHARED_GUEST: u32 = 3;
pub const VIRTIO_GPU_F_HOST_COHERENT: u32 = 4;
pub const VIRTIO_GPU_UNDEFINED: u32 = 0x0;
@ -30,6 +35,7 @@ pub const VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING: u32 = 0x106;
pub const VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING: u32 = 0x107;
pub const VIRTIO_GPU_CMD_GET_CAPSET_INFO: u32 = 0x108;
pub const VIRTIO_GPU_CMD_GET_CAPSET: u32 = 0x109;
pub const VIRTIO_GPU_CMD_GET_EDID: u32 = 0x10a;
/* 3d commands */
pub const VIRTIO_GPU_CMD_CTX_CREATE: u32 = 0x200;
@ -40,6 +46,10 @@ pub const VIRTIO_GPU_CMD_RESOURCE_CREATE_3D: u32 = 0x204;
pub const VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D: u32 = 0x205;
pub const VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D: u32 = 0x206;
pub const VIRTIO_GPU_CMD_SUBMIT_3D: u32 = 0x207;
/* The following hypercalls are not upstreamed. */
pub const VIRTIO_GPU_CMD_RESOURCE_CREATE_V2: u32 = 0x208;
pub const VIRTIO_GPU_CMD_RESOURCE_CREATE_V2_UNREF: u32 = 0x209;
pub const VIRTIO_GPU_CMD_ALLOCATION_METADATA: u32 = 0x20a;
/* cursor commands */
pub const VIRTIO_GPU_CMD_UPDATE_CURSOR: u32 = 0x300;
@ -51,6 +61,8 @@ pub const VIRTIO_GPU_RESP_OK_DISPLAY_INFO: u32 = 0x1101;
pub const VIRTIO_GPU_RESP_OK_CAPSET_INFO: u32 = 0x1102;
pub const VIRTIO_GPU_RESP_OK_CAPSET: u32 = 0x1103;
pub const VIRTIO_GPU_RESP_OK_RESOURCE_PLANE_INFO: u32 = 0x1104;
pub const VIRTIO_GPU_RESP_OK_EDID: u32 = 0x1105;
pub const VIRTIO_GPU_RESP_OK_ALLOCATION_METADATA: u32 = 0x1106;
/* error responses */
pub const VIRTIO_GPU_RESP_ERR_UNSPEC: u32 = 0x1200;
@ -60,6 +72,18 @@ pub const VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID: u32 = 0x1203;
pub const VIRTIO_GPU_RESP_ERR_INVALID_CONTEXT_ID: u32 = 0x1204;
pub const VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER: u32 = 0x1205;
/* guest memory types (not upstreamed) */
pub const VIRTIO_GPU_MEMORY_UNDEFINED: u32 = 0;
pub const VIRTIO_GPU_MEMORY_TRANSFER: u32 = 1;
pub const VIRTIO_GPU_MEMORY_SHARED_GUEST: u32 = 2;
pub const VIRTIO_GPU_MEMORY_HOST_COHERENT: u32 = 3;
/* guest caching types (not upstreamed) */
pub const VIRTIO_GPU_UNDEFINED_CACHING: u32 = 0;
pub const VIRTIO_GPU_CACHED: u32 = 1;
pub const VIRTIO_GPU_WRITE_COMBINE: u32 = 2;
pub const VIRTIO_GPU_UNCACHED: u32 = 3;
pub fn virtio_gpu_cmd_str(cmd: u32) -> &'static str {
match cmd {
VIRTIO_GPU_CMD_GET_DISPLAY_INFO => "VIRTIO_GPU_CMD_GET_DISPLAY_INFO",
@ -72,6 +96,7 @@ pub fn virtio_gpu_cmd_str(cmd: u32) -> &'static str {
VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING => "VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING",
VIRTIO_GPU_CMD_GET_CAPSET_INFO => "VIRTIO_GPU_CMD_GET_CAPSET_INFO",
VIRTIO_GPU_CMD_GET_CAPSET => "VIRTIO_GPU_CMD_GET_CAPSET",
VIRTIO_GPU_CMD_GET_EDID => "VIRTIO_GPU_CMD_GET_EDID",
VIRTIO_GPU_CMD_CTX_CREATE => "VIRTIO_GPU_CMD_CTX_CREATE",
VIRTIO_GPU_CMD_CTX_DESTROY => "VIRTIO_GPU_CMD_CTX_DESTROY",
VIRTIO_GPU_CMD_CTX_ATTACH_RESOURCE => "VIRTIO_GPU_CMD_CTX_ATTACH_RESOURCE",
@ -80,6 +105,9 @@ pub fn virtio_gpu_cmd_str(cmd: u32) -> &'static str {
VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D => "VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D",
VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D => "VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D",
VIRTIO_GPU_CMD_SUBMIT_3D => "VIRTIO_GPU_CMD_SUBMIT_3D",
VIRTIO_GPU_CMD_RESOURCE_CREATE_V2 => "VIRTIO_GPU_CMD_RESOURCE_CREATE_V2",
VIRTIO_GPU_CMD_RESOURCE_CREATE_V2_UNREF => "VIRTIO_GPU_CMD_RESOURCE_CREATE_V2_UNREF",
VIRTIO_GPU_CMD_ALLOCATION_METADATA => "VIRTIO_GPU_CMD_ALLOCATION_METADATA",
VIRTIO_GPU_CMD_UPDATE_CURSOR => "VIRTIO_GPU_CMD_UPDATE_CURSOR",
VIRTIO_GPU_CMD_MOVE_CURSOR => "VIRTIO_GPU_CMD_MOVE_CURSOR",
VIRTIO_GPU_RESP_OK_NODATA => "VIRTIO_GPU_RESP_OK_NODATA",