diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-03-13 22:33:19 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-06-15 09:36:36 +0000 |
commit | 135afeb7e4934d744542dad725c5996d6bcd70dc (patch) | |
tree | 429d0a50f12f67b34c249570736523b2ea3b9d45 | |
parent | a5dc93df5b96728226bd3fcbc4298e6fb54f146d (diff) | |
download | crosvm-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.rs | 4 | ||||
-rw-r--r-- | src/linux.rs | 3 | ||||
-rw-r--r-- | src/wl.rs | 15 |
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(®ions, shm).expect("GuestMemory::with_memfd failed"); |