diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-03-11 19:33:55 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-06-15 09:36:15 +0000 |
commit | 0444d328a6d7198e59aca9f8dd2e2d91501f9bac (patch) | |
tree | 25453c681b3cd348535ed17a1d525ec910efd49f /src | |
parent | 2507cc57bc0145eb57305e60f6a7c21f3b4c9192 (diff) | |
download | crosvm-0444d328a6d7198e59aca9f8dd2e2d91501f9bac.tar crosvm-0444d328a6d7198e59aca9f8dd2e2d91501f9bac.tar.gz crosvm-0444d328a6d7198e59aca9f8dd2e2d91501f9bac.tar.bz2 crosvm-0444d328a6d7198e59aca9f8dd2e2d91501f9bac.tar.lz crosvm-0444d328a6d7198e59aca9f8dd2e2d91501f9bac.tar.xz crosvm-0444d328a6d7198e59aca9f8dd2e2d91501f9bac.tar.zst crosvm-0444d328a6d7198e59aca9f8dd2e2d91501f9bac.zip |
hacky construct Wl in external proc
Diffstat (limited to 'src')
-rw-r--r-- | src/wl.rs | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/src/wl.rs b/src/wl.rs index b35af8b..be473d4 100644 --- a/src/wl.rs +++ b/src/wl.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: BSD-3-Clause -use devices::virtio::{InterruptProxy, InterruptProxyEvent, SingleFd, Worker}; +use devices::virtio::{wl2, InterruptProxy, InterruptProxyEvent, SingleFd}; use msg_socket::{MsgReceiver, MsgSocket}; use std::collections::BTreeMap; use std::fs::remove_file; @@ -28,6 +28,8 @@ fn main() { let conn = server.accept().expect("accept failed"); let msg_socket: Socket = MsgSocket::new(conn); + let mut wl = None; + loop { match msg_socket.recv() { Ok(SingleFd { @@ -42,6 +44,10 @@ fn main() { out_queue_evt, kill_evt, }) => { + if wl.is_some() { + panic!("Received SingleFd twice"); + } + let shm = shm.owned(); let regions = arch_memory_regions(MemoryParams { @@ -58,24 +64,25 @@ fn main() { let mut wayland_paths = BTreeMap::new(); wayland_paths.insert("".into(), "/run/user/1000/wayland-0".into()); - let mut worker = Worker::new( + use devices::virtio::VirtioDevice; + + let mut wl_ = wl2::Wl::new(wayland_paths, vm_socket, None).unwrap(); + + println!("constructed Wl"); + + wl_.activate( mem, Box::new(InterruptProxy::new( interrupt, interrupt_resample_evt.owned(), )), - in_queue, - out_queue, - wayland_paths, - vm_socket, - use_transition_flags, - None, - ); - - worker.run( + vec![in_queue, out_queue], vec![in_queue_evt.owned(), out_queue_evt.owned()], - kill_evt.owned(), ); + + println!("activated Wl"); + + wl = Some(wl_); } Err(e) => panic!("recv failed {:?}", e), |