summary refs log tree commit diff
path: root/devices/src/virtio/controller.rs
diff options
context:
space:
mode:
Diffstat (limited to 'devices/src/virtio/controller.rs')
-rw-r--r--devices/src/virtio/controller.rs33
1 files changed, 13 insertions, 20 deletions
diff --git a/devices/src/virtio/controller.rs b/devices/src/virtio/controller.rs
index ba2543f..4930e44 100644
--- a/devices/src/virtio/controller.rs
+++ b/devices/src/virtio/controller.rs
@@ -28,29 +28,26 @@
 //! the virtio queue, and routing messages in and out of `WlState`. Possible events include the kill
 //! event, available descriptors on the `in` or `out` queue, and incoming data on any vfd's socket.
 
-use std::collections::BTreeMap as Map;
 use std::fmt::{self, Formatter};
 use std::os::unix::io::{AsRawFd, RawFd};
-use std::path::PathBuf;
 use std::sync::Arc;
 use std::thread;
 
 use msg_socket::{MsgReceiver, MsgSocket};
 use msg_socket2::de::{EnumAccessWithFds, SeqAccessWithFds, VariantAccessWithFds, VisitorWithFds};
-use msg_socket2::ser::{SerializeStructVariantFds, SerializeTupleVariantFds};
+use msg_socket2::ser::{SerializeAdapter, SerializeStructVariantFds, SerializeTupleVariantFds};
 use msg_socket2::{DeserializeWithFds, DeserializerWithFds, FdSerializer, SerializeWithFds};
 use serde::ser::{SerializeStructVariant, SerializeTupleVariant, Serializer};
 use serde::{Deserialize, Serialize};
 use sys_util::net::UnixSeqpacket;
 use sys_util::{error, EventFd, GuestMemory, PollContext, PollToken, SharedMemory};
 
-use super::resource_bridge::*;
-use super::{Interrupt, InterruptProxyEvent, Queue, VirtioDevice};
+use super::{Interrupt, InterruptProxyEvent, Params, Queue, VirtioDevice};
 use crate::{
     pci::{PciAddress, PciBarConfiguration, PciCapability, PciCapabilityID},
     MemoryParams,
 };
-use vm_control::{MaybeOwnedFd, VmMemoryControlRequestSocket};
+use vm_control::MaybeOwnedFd;
 
 // As far as I can tell, these never change on the other side, so it's
 // fine to just copy them over.
@@ -82,9 +79,7 @@ impl PciCapability for RemotePciCapability {
 #[derive(Debug)]
 pub enum Request {
     Create {
-        // wayland_paths: Map<String, PathBuf>,
-        vm_socket: MaybeOwnedFd<UnixSeqpacket>,
-        // resource_bridge: Option<ResourceRequestSocket>,
+        device_params: Params,
         memory_params: MemoryParams,
     },
 
@@ -130,11 +125,11 @@ impl SerializeWithFds for Request {
 
         match self {
             Create {
-                vm_socket: _,
+                device_params,
                 memory_params,
             } => {
                 let mut sv = serializer.serialize_struct_variant("Request", 0, "Create", 2)?;
-                sv.serialize_field("vm_socket", &())?;
+                sv.serialize_field("device_params", &SerializeAdapter::new(device_params))?;
                 sv.serialize_field("memory_params", memory_params)?;
                 sv.end()
             }
@@ -209,11 +204,11 @@ impl SerializeWithFds for Request {
 
         match self {
             Create {
-                vm_socket,
+                device_params,
                 memory_params,
             } => {
                 let mut sv = serializer.serialize_struct_variant("Request", 0, "Create", 2)?;
-                sv.serialize_field("vm_socket", vm_socket)?;
+                sv.serialize_field("device_params", device_params)?;
                 sv.serialize_field("memory_params", memory_params)?;
                 sv.end()
             }
@@ -336,7 +331,9 @@ impl<'de> DeserializeWithFds<'de> for Request {
                                 }
 
                                 Ok(Request::Create {
-                                    vm_socket: seq.next_element()?.ok_or_else(|| too_short(0))?,
+                                    device_params: seq
+                                        .next_element()?
+                                        .ok_or_else(|| too_short(0))?,
                                     memory_params: seq
                                         .next_element()?
                                         .ok_or_else(|| too_short(1))?,
@@ -685,16 +682,12 @@ pub struct Controller {
 
 impl Controller {
     pub fn create(
-        wayland_paths: Map<String, PathBuf>,
-        vm_socket: VmMemoryControlRequestSocket,
-        resource_bridge: Option<ResourceRequestSocket>,
+        device_params: Params,
         memory_params: MemoryParams,
         socket: Socket,
     ) -> Result<Controller, msg_socket2::Error> {
         socket.send(Request::Create {
-            // wayland_paths,
-            vm_socket: MaybeOwnedFd::new_borrowed(&vm_socket),
-            // resource_bridge,
+            device_params,
             memory_params,
         })?;