summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid Riley <davidriley@chromium.org>2019-08-27 14:15:34 -0700
committerCommit Bot <commit-bot@chromium.org>2019-09-17 22:35:32 +0000
commite5e30a705af867d15ae92ac0dbc783ee73dd17f1 (patch)
treef36330a9fe992c6108b2545e6933e606f2b08ccf
parent9dd75d0d3e1a7fa8226bef55a40a608beff5baf7 (diff)
downloadcrosvm-e5e30a705af867d15ae92ac0dbc783ee73dd17f1.tar
crosvm-e5e30a705af867d15ae92ac0dbc783ee73dd17f1.tar.gz
crosvm-e5e30a705af867d15ae92ac0dbc783ee73dd17f1.tar.bz2
crosvm-e5e30a705af867d15ae92ac0dbc783ee73dd17f1.tar.lz
crosvm-e5e30a705af867d15ae92ac0dbc783ee73dd17f1.tar.xz
crosvm-e5e30a705af867d15ae92ac0dbc783ee73dd17f1.tar.zst
crosvm-e5e30a705af867d15ae92ac0dbc783ee73dd17f1.zip
virtio: Make Reader interface cloneable.
BUG=chromium:993452
TEST=apitrace replay

Change-Id: If7dc8ef93d9e6b9783f2f8f124fcee5e016b3eb4
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1775364
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Tested-by: David Riley <davidriley@chromium.org>
Commit-Queue: David Riley <davidriley@chromium.org>
-rw-r--r--devices/src/virtio/descriptor_utils.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/devices/src/virtio/descriptor_utils.rs b/devices/src/virtio/descriptor_utils.rs
index 0ea4faa..2233931 100644
--- a/devices/src/virtio/descriptor_utils.rs
+++ b/devices/src/virtio/descriptor_utils.rs
@@ -40,12 +40,13 @@ pub type Result<T> = result::Result<T, Error>;
 
 impl std::error::Error for Error {}
 
-#[derive(PartialEq, Eq)]
+#[derive(Clone, PartialEq, Eq)]
 enum DescriptorFilter {
     OnlyReadable,
     OnlyWritable,
 }
 
+#[derive(Clone)]
 struct DescriptorChainConsumer<'a> {
     offset: usize,
     desc_chain: Option<DescriptorChain<'a>>,
@@ -200,6 +201,7 @@ impl<'a> DescriptorChainConsumer<'a> {
 /// descriptors after any device-readable descriptors (2.6.4.2 in Virtio Spec v1.1).
 /// Reader will skip iterating over descriptor chain when first writable
 /// descriptor is encountered.
+#[derive(Clone)]
 pub struct Reader<'a> {
     mem: &'a GuestMemory,
     buffer: DescriptorChainConsumer<'a>,