diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-03-14 01:56:17 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-06-15 09:37:01 +0000 |
commit | 05da1266a09a5e958868ca5bdb479f25e275ea6b (patch) | |
tree | 895ce7d3565ad99b0e369fbe171759d1bc57df28 /devices/src/virtio | |
parent | fa7932782af1144b41c1a049e16c44fb5bfbe1a2 (diff) | |
download | crosvm-05da1266a09a5e958868ca5bdb479f25e275ea6b.tar crosvm-05da1266a09a5e958868ca5bdb479f25e275ea6b.tar.gz crosvm-05da1266a09a5e958868ca5bdb479f25e275ea6b.tar.bz2 crosvm-05da1266a09a5e958868ca5bdb479f25e275ea6b.tar.lz crosvm-05da1266a09a5e958868ca5bdb479f25e275ea6b.tar.xz crosvm-05da1266a09a5e958868ca5bdb479f25e275ea6b.tar.zst crosvm-05da1266a09a5e958868ca5bdb479f25e275ea6b.zip |
queue_max_sizes
Diffstat (limited to 'devices/src/virtio')
-rw-r--r-- | devices/src/virtio/controller.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/devices/src/virtio/controller.rs b/devices/src/virtio/controller.rs index 22e2850..8ed0a3a 100644 --- a/devices/src/virtio/controller.rs +++ b/devices/src/virtio/controller.rs @@ -106,6 +106,8 @@ pub enum MsgOnSocketRequest { #[derive(Debug, Serialize, Deserialize)] pub enum BincodeRequest { + QueueMaxSizes, + ReadConfig { offset: u64, len: usize }, WriteConfig { offset: u64, data: Vec<u8> }, @@ -137,6 +139,8 @@ pub enum MsgOnSocketResponse { #[derive(Debug, Deserialize, Serialize)] pub enum BincodeResponse { + QueueMaxSizes(Vec<u16>), + ReadConfig(Vec<u8>), GetDeviceBars(Vec<PciBarConfiguration>), @@ -332,7 +336,16 @@ impl VirtioDevice for Controller { } fn queue_max_sizes(&self) -> Vec<u16> { - QUEUE_SIZES.to_vec() + if let Err(e) = self.socket.send(BincodeRequest::QueueMaxSizes) { + panic!("failed to send QueueMaxSizes: {}", e); + } + + match self.socket.recv_bincode() { + Ok(BincodeResponse::QueueMaxSizes(sizes)) => sizes, + response => { + panic!("bad response to Reset: {:?}", response); + } + } } fn features(&self) -> u64 { |