From 4cbaeb7eaa2eea6581707b337775e614718cbf55 Mon Sep 17 00:00:00 2001 From: David Riley Date: Thu, 17 May 2018 17:03:13 -0700 Subject: 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 Tested-by: David Riley Reviewed-by: David Riley Reviewed-by: Zach Reizner --- devices/src/virtio/gpu/mod.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'devices/src/virtio/gpu/mod.rs') 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 { 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 { @@ -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)) }) } } -- cgit 1.4.1