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.rs92
1 files changed, 46 insertions, 46 deletions
diff --git a/devices/src/virtio/controller.rs b/devices/src/virtio/controller.rs
index 9b0784c..0b10aac 100644
--- a/devices/src/virtio/controller.rs
+++ b/devices/src/virtio/controller.rs
@@ -126,10 +126,10 @@ pub enum Request {
 }
 
 impl SerializeWithFds for Request {
-    fn serialize<S>(&self, serializer: SerializerWithFds<S>) -> Result<S::Ok, S::Error>
-    where
-        S: Serializer,
-    {
+    fn serialize<S: SerializerWithFds>(
+        &self,
+        mut serializer: S,
+    ) -> Result<<S::Ser as Serializer>::Ok, <S::Ser as Serializer>::Error> {
         use Request::*;
 
         match self {
@@ -137,37 +137,41 @@ impl SerializeWithFds for Request {
                 vm_socket,
                 memory_params,
             } => {
+                serializer.fds().push(vm_socket.as_raw_fd());
+
                 let mut sv = serializer
-                    .serializer
+                    .serializer()
                     .serialize_struct_variant("Request", 0, "Create", 1)?;
 
                 sv.skip_field("vm_socket")?;
-                serializer.fds.push(vm_socket.as_raw_fd());
-
                 sv.serialize_field("memory_params", memory_params)?;
 
                 sv.end()
             }
 
-            DebugLabel => serializer
-                .serializer
-                .serialize_unit_variant("Request", 1, "DebugLabel"),
+            DebugLabel => {
+                serializer
+                    .serializer()
+                    .serialize_unit_variant("Request", 1, "DebugLabel")
+            }
 
-            DeviceType => serializer
-                .serializer
-                .serialize_unit_variant("Request", 2, "DeviceType"),
+            DeviceType => {
+                serializer
+                    .serializer()
+                    .serialize_unit_variant("Request", 2, "DeviceType")
+            }
             QueueMaxSizes => {
                 serializer
-                    .serializer
+                    .serializer()
                     .serialize_unit_variant("Request", 3, "QueueMaxSizes")
             }
 
             Features => serializer
-                .serializer
+                .serializer()
                 .serialize_unit_variant("Request", 4, "Features"),
 
             AckFeatures(features) => {
-                let mut tv = serializer.serializer.serialize_tuple_variant(
+                let mut tv = serializer.serializer().serialize_tuple_variant(
                     "Request",
                     5,
                     "AckFeatures",
@@ -178,7 +182,7 @@ impl SerializeWithFds for Request {
             }
 
             ReadConfig { offset, len } => {
-                let mut sv = serializer.serializer.serialize_struct_variant(
+                let mut sv = serializer.serializer().serialize_struct_variant(
                     "Request",
                     6,
                     "ReadConfig",
@@ -190,7 +194,7 @@ impl SerializeWithFds for Request {
             }
 
             WriteConfig { offset, data } => {
-                let mut sv = serializer.serializer.serialize_struct_variant(
+                let mut sv = serializer.serializer().serialize_struct_variant(
                     "Request",
                     7,
                     "WriteConfig",
@@ -210,37 +214,33 @@ impl SerializeWithFds for Request {
                 in_queue_evt,
                 out_queue_evt,
             } => {
+                serializer.fds().push(shm.as_raw_fd());
+                serializer.fds().push(interrupt.as_raw_fd());
+                serializer.fds().push(interrupt_resample_evt.as_raw_fd());
+                serializer.fds().push(in_queue_evt.as_raw_fd());
+                serializer.fds().push(out_queue_evt.as_raw_fd());
+
                 let mut sv = serializer
-                    .serializer
+                    .serializer()
                     .serialize_struct_variant("Request", 8, "Activate", 2)?;
 
                 sv.skip_field("shm")?;
-                serializer.fds.push(shm.as_raw_fd());
-
                 sv.skip_field("interrupt")?;
-                serializer.fds.push(interrupt.as_raw_fd());
-
                 sv.skip_field("interrupt_resample_evt")?;
-                serializer.fds.push(interrupt_resample_evt.as_raw_fd());
-
                 sv.serialize_field("in_queue", in_queue)?;
                 sv.serialize_field("out_queue", out_queue)?;
-
                 sv.skip_field("in_queue_evt")?;
-                serializer.fds.push(in_queue_evt.as_raw_fd());
-
                 sv.skip_field("out_queue_evt")?;
-                serializer.fds.push(out_queue_evt.as_raw_fd());
 
                 sv.end()
             }
 
             Reset => serializer
-                .serializer
+                .serializer()
                 .serialize_unit_variant("Request", 9, "Reset"),
 
             GetDeviceBars(address) => {
-                let mut sv = serializer.serializer.serialize_struct_variant(
+                let mut sv = serializer.serializer().serialize_struct_variant(
                     "Request",
                     10,
                     "GetDeviceBars",
@@ -252,12 +252,12 @@ impl SerializeWithFds for Request {
 
             GetDeviceCaps => {
                 serializer
-                    .serializer
+                    .serializer()
                     .serialize_unit_variant("Request", 11, "GetDeviceCaps")
             }
 
             Kill => serializer
-                .serializer
+                .serializer()
                 .serialize_unit_variant("Request", 12, "Kill"),
         }
     }
@@ -674,15 +674,15 @@ pub enum Response {
 }
 
 impl SerializeWithFds for Response {
-    fn serialize<S>(&self, serializer: SerializerWithFds<S>) -> Result<S::Ok, S::Error>
-    where
-        S: Serializer,
-    {
+    fn serialize<S: SerializerWithFds>(
+        &self,
+        serializer: S,
+    ) -> Result<<S::Ser as Serializer>::Ok, <S::Ser as Serializer>::Error> {
         use Response::*;
 
         match self {
             DebugLabel(label) => {
-                let mut tv = serializer.serializer.serialize_tuple_variant(
+                let mut tv = serializer.serializer().serialize_tuple_variant(
                     "Response",
                     0,
                     "DebugLabel",
@@ -693,7 +693,7 @@ impl SerializeWithFds for Response {
             }
 
             DeviceType(device_type) => {
-                let mut tv = serializer.serializer.serialize_tuple_variant(
+                let mut tv = serializer.serializer().serialize_tuple_variant(
                     "Response",
                     1,
                     "DeviceType",
@@ -704,7 +704,7 @@ impl SerializeWithFds for Response {
             }
 
             QueueMaxSizes(sizes) => {
-                let mut tv = serializer.serializer.serialize_tuple_variant(
+                let mut tv = serializer.serializer().serialize_tuple_variant(
                     "Response",
                     2,
                     "QueueMaxSizes",
@@ -716,14 +716,14 @@ impl SerializeWithFds for Response {
 
             Features(features) => {
                 let mut tv = serializer
-                    .serializer
+                    .serializer()
                     .serialize_tuple_variant("Response", 3, "Features", 1)?;
                 tv.serialize_field(features)?;
                 tv.end()
             }
 
             ReadConfig(config) => {
-                let mut tv = serializer.serializer.serialize_tuple_variant(
+                let mut tv = serializer.serializer().serialize_tuple_variant(
                     "Response",
                     4,
                     "ReadConfig",
@@ -735,14 +735,14 @@ impl SerializeWithFds for Response {
 
             Reset(success) => {
                 let mut tv = serializer
-                    .serializer
+                    .serializer()
                     .serialize_tuple_variant("Response", 5, "Reset", 1)?;
                 tv.serialize_field(success)?;
                 tv.end()
             }
 
             GetDeviceBars(bars) => {
-                let mut tv = serializer.serializer.serialize_tuple_variant(
+                let mut tv = serializer.serializer().serialize_tuple_variant(
                     "Response",
                     6,
                     "GetDeviceBars",
@@ -753,7 +753,7 @@ impl SerializeWithFds for Response {
             }
 
             GetDeviceCaps(caps) => {
-                let mut tv = serializer.serializer.serialize_tuple_variant(
+                let mut tv = serializer.serializer().serialize_tuple_variant(
                     "Response",
                     7,
                     "GetDeviceCaps",
@@ -764,7 +764,7 @@ impl SerializeWithFds for Response {
             }
 
             Kill => serializer
-                .serializer
+                .serializer()
                 .serialize_unit_variant("Response", 8, "Kill"),
         }
     }