summary refs log tree commit diff
path: root/devices/src/virtio/mod.rs
diff options
context:
space:
mode:
authorKeiichi Watanabe <keiichiw@chromium.org>2019-12-06 22:24:40 +0900
committerCommit Bot <commit-bot@chromium.org>2020-05-23 09:54:13 +0000
commit57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f (patch)
tree11bc695e179762b6eac26302e6b89db55b251dba /devices/src/virtio/mod.rs
parentb2ca24c97b0084b805f7da28804b4c430c151ccb (diff)
downloadcrosvm-57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f.tar
crosvm-57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f.tar.gz
crosvm-57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f.tar.bz2
crosvm-57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f.tar.lz
crosvm-57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f.tar.xz
crosvm-57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f.tar.zst
crosvm-57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f.zip
devices: virtio: Initial implementation of virtio-video device
This CL adds a fundamental part of the virtio video device, which will
be shared between the encoder and the decoder.
Both devices uses the virtio-video protocol proposed as RFC v3 [1,2].
The corresponding driver code is at CL:2060327 and its children CLs.

The actual decoding and encoding logic will be implemented in different
CLs.

[1]: mail: https://markmail.org/thread/wxdne5re7aaugbjg
[2]: PDF: https://drive.google.com/file/d/1jOsS2WdVhL4PpcWLO8Zukq5J0fXDiWn-/view

BUG=b:147465619, b:140082257
TEST=cargo check --features=video-decoder,video-encoder
TEST=ARCVM started with --video-decoder --video-encoder

Cq-Depend: chromium:2203997
Change-Id: I01999eea218ba0f3aaed1558ca2311a57d0c6819
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1973973
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Tested-by: Keiichi Watanabe <keiichiw@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
Diffstat (limited to 'devices/src/virtio/mod.rs')
-rw-r--r--devices/src/virtio/mod.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/devices/src/virtio/mod.rs b/devices/src/virtio/mod.rs
index 4d5d2cb..ce62551 100644
--- a/devices/src/virtio/mod.rs
+++ b/devices/src/virtio/mod.rs
@@ -17,6 +17,8 @@ mod queue;
 mod rng;
 #[cfg(feature = "tpm")]
 mod tpm;
+#[cfg(any(feature = "video-decoder", feature = "video-encoder"))]
+mod video;
 mod virtio_device;
 mod virtio_pci_common_config;
 mod virtio_pci_device;
@@ -44,6 +46,8 @@ pub use self::queue::*;
 pub use self::rng::*;
 #[cfg(feature = "tpm")]
 pub use self::tpm::*;
+#[cfg(any(feature = "video-decoder", feature = "video-encoder"))]
+pub use self::video::*;
 pub use self::virtio_device::*;
 pub use self::virtio_pci_device::*;
 pub use self::wl::*;
@@ -76,6 +80,8 @@ const TYPE_CRYPTO: u32 = 20;
 const TYPE_IOMMU: u32 = 23;
 const TYPE_FS: u32 = 26;
 const TYPE_PMEM: u32 = 27;
+const TYPE_VIDEO_ENC: u32 = 30;
+const TYPE_VIDEO_DEC: u32 = 31;
 // Additional types invented by crosvm
 const MAX_VIRTIO_DEVICE_ID: u32 = 63;
 const TYPE_WL: u32 = MAX_VIRTIO_DEVICE_ID;
@@ -114,6 +120,8 @@ pub fn type_to_str(type_: u32) -> Option<&'static str> {
         TYPE_PMEM => "pmem",
         TYPE_WL => "wl",
         TYPE_TPM => "tpm",
+        TYPE_VIDEO_DEC => "video-decoder",
+        TYPE_VIDEO_ENC => "video-encoder",
         _ => return None,
     })
 }