From 0444d328a6d7198e59aca9f8dd2e2d91501f9bac Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Wed, 11 Mar 2020 19:33:55 +0000 Subject: hacky construct Wl in external proc --- src/wl.rs | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'src') 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), -- cgit 1.4.1