diff options
author | Jeff Vander Stoep <jeffv@google.com> | 2024-02-06 10:00:06 +0100 |
---|---|---|
committer | Jeff Vander Stoep <jeffv@google.com> | 2024-02-06 10:00:07 +0100 |
commit | 5f6d8f6f393df674d5056410c14794388efcb301 (patch) | |
tree | 67534458d5ef8dd2a6dccc10a0d1c328afaed423 /src/mock.rs | |
parent | c74102c404fdf382693b76eed6ad2101672e7967 (diff) | |
download | virtio-queue-5f6d8f6f393df674d5056410c14794388efcb301.tar.gz |
Upgrade virtio-queue to 0.11.0
This project was upgraded with external_updater.
Usage: tools/external_updater/updater.sh update external/rust/crates/virtio-queue
For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
Test: TreeHugger
Change-Id: I8ba377033143d7b79f80ce85ffa9f960450db1a0
Diffstat (limited to 'src/mock.rs')
-rw-r--r-- | src/mock.rs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/mock.rs b/src/mock.rs index d026f80..1f43588 100644 --- a/src/mock.rs +++ b/src/mock.rs @@ -7,7 +7,9 @@ use std::marker::PhantomData; use std::mem::size_of; -use vm_memory::{Address, ByteValued, Bytes, GuestAddress, GuestMemory, GuestUsize}; +use vm_memory::{ + Address, ByteValued, Bytes, GuestAddress, GuestMemory, GuestMemoryError, GuestUsize, +}; use crate::defs::{VIRTQ_AVAIL_ELEMENT_SIZE, VIRTQ_AVAIL_RING_HEADER_SIZE}; use crate::{Descriptor, DescriptorChain, Error, Queue, QueueOwnedT, QueueT, VirtqUsedElem}; @@ -23,6 +25,8 @@ pub enum MockError { InvalidIndex, /// Invalid next avail InvalidNextAvail, + /// Guest memory errors + GuestMem(GuestMemoryError), } impl Display for MockError { @@ -39,6 +43,7 @@ impl Display for MockError { f, "invalid next available descriptor chain head in the queue" ), + GuestMem(e) => write!(f, "guest memory error: {}", e), } } } @@ -425,7 +430,7 @@ impl<'a, M: GuestMemory> MockSplitQueue<'a, M> { self.create_queue::<Queue>() .map_err(MockError::InvalidQueueParams)? .iter(self.mem) - .unwrap() + .map_err(MockError::InvalidQueueParams)? .next() .ok_or(MockError::InvalidNextAvail) } @@ -466,7 +471,7 @@ impl<'a, M: GuestMemory> MockSplitQueue<'a, M> { .mem .read_obj::<u16>(self.avail_addr().unchecked_add(2)) .map(u16::from_le) - .unwrap(); + .map_err(MockError::GuestMem)?; for (idx, desc) in descs.iter().enumerate() { let i = idx as u16 + offset; @@ -482,7 +487,7 @@ impl<'a, M: GuestMemory> MockSplitQueue<'a, M> { + (avail_idx + new_entries) as u64 * VIRTQ_AVAIL_ELEMENT_SIZE, ), ) - .unwrap(); + .map_err(MockError::GuestMem)?; new_entries += 1; } } @@ -493,7 +498,7 @@ impl<'a, M: GuestMemory> MockSplitQueue<'a, M> { u16::to_le(avail_idx + new_entries), self.avail_addr().unchecked_add(2), ) - .unwrap(); + .map_err(MockError::GuestMem)?; Ok(()) } |