diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-03-13 23:32:33 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-06-15 09:36:42 +0000 |
commit | 812263927a9fbcca6cf94563685efa310a734dbe (patch) | |
tree | 9c5b058963c284ef532061f09bce565f32294548 /devices/src/virtio | |
parent | 23dd7efca023fcb3c1e90486a48c1cb24f7f9951 (diff) | |
download | crosvm-812263927a9fbcca6cf94563685efa310a734dbe.tar crosvm-812263927a9fbcca6cf94563685efa310a734dbe.tar.gz crosvm-812263927a9fbcca6cf94563685efa310a734dbe.tar.bz2 crosvm-812263927a9fbcca6cf94563685efa310a734dbe.tar.lz crosvm-812263927a9fbcca6cf94563685efa310a734dbe.tar.xz crosvm-812263927a9fbcca6cf94563685efa310a734dbe.tar.zst crosvm-812263927a9fbcca6cf94563685efa310a734dbe.zip |
ack_features
Diffstat (limited to 'devices/src/virtio')
-rw-r--r-- | devices/src/virtio/controller.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/devices/src/virtio/controller.rs b/devices/src/virtio/controller.rs index 04cde10..374d11c 100644 --- a/devices/src/virtio/controller.rs +++ b/devices/src/virtio/controller.rs @@ -52,6 +52,9 @@ pub enum MsgOnSocketRequest { // resource_bridge: Option<ResourceRequestSocket>, memory_params: MemoryParams, }, + + AckFeatures(u64), + Activate { shm: MaybeOwnedFd<SharedMemory>, interrupt: MaybeOwnedFd<UnixSeqpacket>, @@ -61,6 +64,7 @@ pub enum MsgOnSocketRequest { in_queue_evt: MaybeOwnedFd<EventFd>, out_queue_evt: MaybeOwnedFd<EventFd>, }, + Kill, } @@ -217,7 +221,6 @@ impl Worker { pub struct Controller { kill_evt: Option<EventFd>, worker_thread: Option<thread::JoinHandle<()>>, - use_transition_flags: bool, socket: Arc<Socket>, } @@ -239,7 +242,6 @@ impl Controller { Ok(Controller { kill_evt: None, worker_thread: None, - use_transition_flags: false, socket: Arc::new(socket), }) } @@ -284,8 +286,8 @@ impl VirtioDevice for Controller { } fn ack_features(&mut self, value: u64) { - if value & (1 << VIRTIO_WL_F_TRANS_FLAGS) != 0 { - self.use_transition_flags = true; + if let Err(e) = self.socket.send(MsgOnSocketRequest::AckFeatures(value)) { + error!("failed to send AckFeatures: {}", e); } } @@ -318,8 +320,6 @@ impl VirtioDevice for Controller { }; self.kill_evt = Some(self_kill_evt); - let use_transition_flags = self.use_transition_flags; - let (ours, theirs) = UnixSeqpacket::pair().expect("pair failed"); if let Err(e) = self.socket.send(MsgOnSocketRequest::Activate { |