summary refs log tree commit diff
path: root/devices
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2020-03-14 01:20:12 +0000
committerAlyssa Ross <hi@alyssa.is>2020-06-15 09:36:56 +0000
commit3806c2d8455b1a54cd20c9c9e6bd46fe95bf6a43 (patch)
tree25d51c098f7770fb982f51f5a33734c53ff3ad58 /devices
parentc7c60d2c07f573e0431d8b81cb169cc751b4ea99 (diff)
downloadcrosvm-3806c2d8455b1a54cd20c9c9e6bd46fe95bf6a43.tar
crosvm-3806c2d8455b1a54cd20c9c9e6bd46fe95bf6a43.tar.gz
crosvm-3806c2d8455b1a54cd20c9c9e6bd46fe95bf6a43.tar.bz2
crosvm-3806c2d8455b1a54cd20c9c9e6bd46fe95bf6a43.tar.lz
crosvm-3806c2d8455b1a54cd20c9c9e6bd46fe95bf6a43.tar.xz
crosvm-3806c2d8455b1a54cd20c9c9e6bd46fe95bf6a43.tar.zst
crosvm-3806c2d8455b1a54cd20c9c9e6bd46fe95bf6a43.zip
device_type
Diffstat (limited to 'devices')
-rw-r--r--devices/src/virtio/controller.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/devices/src/virtio/controller.rs b/devices/src/virtio/controller.rs
index 857bbe8..514a96b 100644
--- a/devices/src/virtio/controller.rs
+++ b/devices/src/virtio/controller.rs
@@ -83,6 +83,8 @@ pub enum MsgOnSocketRequest {
         memory_params: MemoryParams,
     },
 
+    DeviceType,
+
     Features,
 
     AckFeatures(u64),
@@ -127,6 +129,7 @@ impl From<BincodeRequest> for Request {
 
 #[derive(Debug, MsgOnSocket)]
 pub enum MsgOnSocketResponse {
+    DeviceType(u32),
     Features(u64),
     Reset(bool),
     Kill,
@@ -316,7 +319,16 @@ impl VirtioDevice for Controller {
     }
 
     fn device_type(&self) -> u32 {
-        TYPE_WL
+        if let Err(e) = self.socket.send(MsgOnSocketRequest::DeviceType) {
+            panic!("failed to send DeviceType: {}", e);
+        }
+
+        match self.socket.recv_msg_on_socket() {
+            Ok(MsgOnSocketResponse::DeviceType(device_type)) => device_type,
+            response => {
+                panic!("bad response to Reset: {:?}", response);
+            }
+        }
     }
 
     fn queue_max_sizes(&self) -> &[u16] {