summary refs log tree commit diff
path: root/devices/src/virtio/block.rs
diff options
context:
space:
mode:
authorJakub Staron <jstaron@google.com>2019-04-09 12:31:14 -0700
committerchrome-bot <chrome-bot@chromium.org>2019-04-10 02:20:58 -0700
commite7c590507c26116b2f8c63b226b0b60839ecbeff (patch)
treee42b29942035bb7b4f83e85c0e2046edca281df7 /devices/src/virtio/block.rs
parent902e7c8450978ddf800b5a311f570aa982ff2ba4 (diff)
downloadcrosvm-e7c590507c26116b2f8c63b226b0b60839ecbeff.tar
crosvm-e7c590507c26116b2f8c63b226b0b60839ecbeff.tar.gz
crosvm-e7c590507c26116b2f8c63b226b0b60839ecbeff.tar.bz2
crosvm-e7c590507c26116b2f8c63b226b0b60839ecbeff.tar.lz
crosvm-e7c590507c26116b2f8c63b226b0b60839ecbeff.tar.xz
crosvm-e7c590507c26116b2f8c63b226b0b60839ecbeff.tar.zst
crosvm-e7c590507c26116b2f8c63b226b0b60839ecbeff.zip
Wrap the UnixSeqpacket with a more descriptive type.
Host/device sockets are now created as a pairs of MsgSockets instead of UnixSeqpacket sockets.

BUG=chromium:950663
TEST=cargo check
TEST=cargo test

Change-Id: I8f61a711fe3c2547bf5d18fcfa23bfd0dc0ef5fd
Reviewed-on: https://chromium-review.googlesource.com/1559041
Commit-Ready: Jakub Staroń <jstaron@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Tested-by: Jakub Staroń <jstaron@google.com>
Reviewed-by: Stephen Barber <smbarber@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'devices/src/virtio/block.rs')
-rw-r--r--devices/src/virtio/block.rs21
1 files changed, 12 insertions, 9 deletions
diff --git a/devices/src/virtio/block.rs b/devices/src/virtio/block.rs
index 71e7e4b..023e1df 100644
--- a/devices/src/virtio/block.rs
+++ b/devices/src/virtio/block.rs
@@ -18,13 +18,13 @@ use sync::Mutex;
 use sys_util::Error as SysError;
 use sys_util::Result as SysResult;
 use sys_util::{
-    net::UnixSeqpacket, EventFd, FileSetLen, FileSync, GuestAddress, GuestMemory, GuestMemoryError,
-    PollContext, PollToken, PunchHole, TimerFd, WriteZeroes,
+    EventFd, FileSetLen, FileSync, GuestAddress, GuestMemory, GuestMemoryError, PollContext,
+    PollToken, PunchHole, TimerFd, WriteZeroes,
 };
 
 use data_model::{DataInit, Le16, Le32, Le64};
-use msg_socket::{MsgReceiver, MsgSender, MsgSocket};
-use vm_control::{VmRequest, VmResponse};
+use msg_socket::{MsgReceiver, MsgSender};
+use vm_control::{VmControlResponseSocket, VmRequest, VmResponse};
 
 use super::{
     DescriptorChain, Queue, VirtioDevice, INTERRUPT_STATUS_CONFIG_CHANGED,
@@ -695,7 +695,12 @@ impl<T: DiskFile> Worker<T> {
         self.interrupt_evt.write(1).unwrap();
     }
 
-    fn run(&mut self, queue_evt: EventFd, kill_evt: EventFd, control_socket: UnixSeqpacket) {
+    fn run(
+        &mut self,
+        queue_evt: EventFd,
+        kill_evt: EventFd,
+        control_socket: VmControlResponseSocket,
+    ) {
         #[derive(PollToken)]
         enum Token {
             FlushTimer,
@@ -714,8 +719,6 @@ impl<T: DiskFile> Worker<T> {
         };
         let mut flush_timer_armed = false;
 
-        let control_socket = MsgSocket::<VmResponse, VmRequest>::new(control_socket);
-
         let poll_ctx: PollContext<Token> = match PollContext::new()
             .and_then(|pc| pc.add(&flush_timer, Token::FlushTimer).and(Ok(pc)))
             .and_then(|pc| pc.add(&queue_evt, Token::QueueAvailable).and(Ok(pc)))
@@ -819,7 +822,7 @@ pub struct Block<T: DiskFile> {
     disk_size: Arc<Mutex<u64>>,
     avail_features: u64,
     read_only: bool,
-    control_socket: Option<UnixSeqpacket>,
+    control_socket: Option<VmControlResponseSocket>,
 }
 
 fn build_config_space(disk_size: u64) -> virtio_blk_config {
@@ -845,7 +848,7 @@ impl<T: DiskFile> Block<T> {
     pub fn new(
         mut disk_image: T,
         read_only: bool,
-        control_socket: Option<UnixSeqpacket>,
+        control_socket: Option<VmControlResponseSocket>,
     ) -> SysResult<Block<T>> {
         let disk_size = disk_image.seek(SeekFrom::End(0))? as u64;
         if disk_size % SECTOR_SIZE != 0 {