summary refs log tree commit diff
path: root/devices/src/virtio/gpu/mod.rs
diff options
context:
space:
mode:
authorDavid Riley <davidriley@chromium.org>2018-05-17 17:03:13 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-07-30 23:08:03 -0700
commit4cbaeb7eaa2eea6581707b337775e614718cbf55 (patch)
treebbaca17540d6bd700aa9c243373ef07c41734f4e /devices/src/virtio/gpu/mod.rs
parentaf9d7edfb743e7f23f03f6500b382aef678dc7fb (diff)
downloadcrosvm-4cbaeb7eaa2eea6581707b337775e614718cbf55.tar
crosvm-4cbaeb7eaa2eea6581707b337775e614718cbf55.tar.gz
crosvm-4cbaeb7eaa2eea6581707b337775e614718cbf55.tar.bz2
crosvm-4cbaeb7eaa2eea6581707b337775e614718cbf55.tar.lz
crosvm-4cbaeb7eaa2eea6581707b337775e614718cbf55.tar.xz
crosvm-4cbaeb7eaa2eea6581707b337775e614718cbf55.tar.zst
crosvm-4cbaeb7eaa2eea6581707b337775e614718cbf55.zip
gpu: make process_descriptor return Option
In preparation of adding fence support, allow process_descriptor to
defer returning the descriptor until later by returning None.

BUG=None
TEST=build with --features=gpu; null_platform_test

Change-Id: I57e4dc438e7f5a925c870e0bd596f89a2ed4e083
Reviewed-on: https://chromium-review.googlesource.com/1073957
Commit-Ready: David Riley <davidriley@chromium.org>
Tested-by: David Riley <davidriley@chromium.org>
Reviewed-by: David Riley <davidriley@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'devices/src/virtio/gpu/mod.rs')
-rw-r--r--devices/src/virtio/gpu/mod.rs12
1 files changed, 7 insertions, 5 deletions
diff --git a/devices/src/virtio/gpu/mod.rs b/devices/src/virtio/gpu/mod.rs
index e5511fb..2b223fc 100644
--- a/devices/src/virtio/gpu/mod.rs
+++ b/devices/src/virtio/gpu/mod.rs
@@ -338,7 +338,9 @@ impl Frontend {
                                    &mut self.return_cursor_descriptors);
     }
 
-    fn process_descriptor(&mut self, mem: &GuestMemory, desc: QueueDescriptor) -> ReturnDescriptor {
+    fn process_descriptor(&mut self,
+                          mem: &GuestMemory,
+                          desc: QueueDescriptor) -> Option<ReturnDescriptor> {
         let mut resp = GpuResponse::ErrUnspec;
         let mut gpu_cmd = None;
         let mut len = 0;
@@ -384,10 +386,10 @@ impl Frontend {
                 }
             }
         }
-        ReturnDescriptor {
+        Some(ReturnDescriptor {
             index: desc.index,
             len,
-        }
+        })
     }
 
     fn process_ctrl(&mut self, mem: &GuestMemory) -> Option<ReturnDescriptor> {
@@ -396,7 +398,7 @@ impl Frontend {
             .or_else(|| {
                          self.ctrl_descriptors
                              .pop_front()
-                             .map(|desc| self.process_descriptor(mem, desc))
+                             .and_then(|desc| self.process_descriptor(mem, desc))
                      })
     }
 
@@ -406,7 +408,7 @@ impl Frontend {
             .or_else(|| {
                          self.cursor_descriptors
                              .pop_front()
-                             .map(|desc| self.process_descriptor(mem, desc))
+                             .and_then(|desc| self.process_descriptor(mem, desc))
                      })
     }
 }