summary refs log tree commit diff
diff options
context:
space:
mode:
authorGurchetan Singh <gurchetansingh@chromium.org>2019-01-25 15:10:54 -0800
committerCommit Bot <commit-bot@chromium.org>2019-09-20 16:55:29 +0000
commit45f86fd548673ce8896da2b7938d4942ae985fa2 (patch)
tree2c1ce4593dfebcece27aa176cc8982fb530878c1
parentb7da549c7ba8b883edc405068d3508f3d38c04e0 (diff)
downloadcrosvm-45f86fd548673ce8896da2b7938d4942ae985fa2.tar
crosvm-45f86fd548673ce8896da2b7938d4942ae985fa2.tar.gz
crosvm-45f86fd548673ce8896da2b7938d4942ae985fa2.tar.bz2
crosvm-45f86fd548673ce8896da2b7938d4942ae985fa2.tar.lz
crosvm-45f86fd548673ce8896da2b7938d4942ae985fa2.tar.xz
crosvm-45f86fd548673ce8896da2b7938d4942ae985fa2.tar.zst
crosvm-45f86fd548673ce8896da2b7938d4942ae985fa2.zip
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>
-rw-r--r--devices/src/virtio/gpu/protocol.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/devices/src/virtio/gpu/protocol.rs b/devices/src/virtio/gpu/protocol.rs
index a1b7164..26d7168 100644
--- a/devices/src/virtio/gpu/protocol.rs
+++ b/devices/src/virtio/gpu/protocol.rs
@@ -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",