summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2020-03-13 22:33:19 +0000
committerAlyssa Ross <hi@alyssa.is>2020-06-15 09:36:36 +0000
commit135afeb7e4934d744542dad725c5996d6bcd70dc (patch)
tree429d0a50f12f67b34c249570736523b2ea3b9d45
parenta5dc93df5b96728226bd3fcbc4298e6fb54f146d (diff)
downloadcrosvm-135afeb7e4934d744542dad725c5996d6bcd70dc.tar
crosvm-135afeb7e4934d744542dad725c5996d6bcd70dc.tar.gz
crosvm-135afeb7e4934d744542dad725c5996d6bcd70dc.tar.bz2
crosvm-135afeb7e4934d744542dad725c5996d6bcd70dc.tar.lz
crosvm-135afeb7e4934d744542dad725c5996d6bcd70dc.tar.xz
crosvm-135afeb7e4934d744542dad725c5996d6bcd70dc.tar.zst
crosvm-135afeb7e4934d744542dad725c5996d6bcd70dc.zip
send MemoryParams in create
-rw-r--r--devices/src/virtio/controller.rs4
-rw-r--r--src/linux.rs3
-rw-r--r--src/wl.rs15
3 files changed, 13 insertions, 9 deletions
diff --git a/devices/src/virtio/controller.rs b/devices/src/virtio/controller.rs
index 7b1b2cc..5d5d76a 100644
--- a/devices/src/virtio/controller.rs
+++ b/devices/src/virtio/controller.rs
@@ -35,6 +35,7 @@ use std::thread;
 
 use super::resource_bridge::*;
 use super::{Interrupt, InterruptProxyEvent, Queue, VirtioDevice, TYPE_WL, VIRTIO_F_VERSION_1};
+use crate::MemoryParams;
 use vm_control::{MaybeOwnedFd, VmMemoryControlRequestSocket};
 
 use msg_socket::{MsgOnSocket, MsgReceiver, MsgSocket};
@@ -48,6 +49,7 @@ pub enum MsgOnSocketRequest {
         // wayland_paths: Map<String, PathBuf>,
         vm_socket: MaybeOwnedFd<UnixSeqpacket>,
         // resource_bridge: Option<ResourceRequestSocket>,
+        memory_params: MemoryParams,
     },
     Activate {
         shm: MaybeOwnedFd<SharedMemory>,
@@ -223,12 +225,14 @@ impl Controller {
         wayland_paths: Map<String, PathBuf>,
         vm_socket: VmMemoryControlRequestSocket,
         resource_bridge: Option<ResourceRequestSocket>,
+        memory_params: MemoryParams,
         socket: Socket,
     ) -> Result<Controller, poly_msg_socket::Error> {
         socket.send(MsgOnSocketRequest::Create {
             // wayland_paths,
             vm_socket: MaybeOwnedFd::new_borrowed(&vm_socket),
             // resource_bridge,
+            memory_params,
         })?;
 
         Ok(Controller {
diff --git a/src/linux.rs b/src/linux.rs
index f43d48f..91f2f8c 100644
--- a/src/linux.rs
+++ b/src/linux.rs
@@ -759,6 +759,7 @@ fn create_wayland_device(
     cfg: &Config,
     socket: VmMemoryControlRequestSocket,
     resource_bridge: Option<virtio::resource_bridge::ResourceRequestSocket>,
+    memory_params: MemoryParams,
 ) -> DeviceResult {
     let wayland_socket_dirs = cfg
         .wayland_socket_paths
@@ -775,6 +776,7 @@ fn create_wayland_device(
         cfg.wayland_socket_paths.clone(),
         socket,
         resource_bridge,
+        memory_params,
         msg_socket,
     )
     .map_err(Error::ControllerCreate)?;
@@ -1169,6 +1171,7 @@ fn create_virtio_devices(
             cfg,
             wayland_device_socket,
             wl_resource_bridge,
+            mem_params,
         )?);
     }
 
diff --git a/src/wl.rs b/src/wl.rs
index 87dcec2..6b7f164 100644
--- a/src/wl.rs
+++ b/src/wl.rs
@@ -4,7 +4,6 @@ use devices::virtio::{
     BincodeRequest, BincodeResponse, InterruptProxy, InterruptProxyEvent, MsgOnSocketRequest,
     MsgOnSocketResponse, VirtioDevice, Wl,
 };
-use devices::MemoryParams;
 use msg_socket::MsgSocket;
 use poly_msg_socket::PolyMsgSocket;
 use std::collections::BTreeMap;
@@ -33,10 +32,11 @@ fn main() {
     let conn = server.accept().expect("accept failed");
     let msg_socket: Socket = PolyMsgSocket::new(conn);
 
-    let vm_socket = match msg_socket.recv() {
-        Ok(poly_msg_socket::Value::MsgOnSocket(MsgOnSocketRequest::Create { vm_socket })) => {
-            MsgSocket::new(vm_socket.owned())
-        }
+    let (vm_socket, memory_params) = match msg_socket.recv() {
+        Ok(poly_msg_socket::Value::MsgOnSocket(MsgOnSocketRequest::Create {
+            vm_socket,
+            memory_params,
+        })) => (MsgSocket::new(vm_socket.owned()), memory_params),
 
         Ok(msg) => {
             panic!("received unexpected message: {:?}", msg);
@@ -79,10 +79,7 @@ fn main() {
             })) => {
                 let shm = shm.owned();
 
-                let regions = arch_memory_regions(MemoryParams {
-                    size: shm.size(),
-                    has_bios: false,
-                });
+                let regions = arch_memory_regions(memory_params);
                 let mem =
                     GuestMemory::with_memfd(&regions, shm).expect("GuestMemory::with_memfd failed");