diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-06-07 09:47:21 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-07-02 12:33:02 +0000 |
commit | f57267d7e998ffec48794723b188b35489acfeec (patch) | |
tree | d0612accc4c8a20942bf333cb15e34c4203c1c4c /src/main.rs | |
parent | b7f9c8db01cd673a8b20bb5649f6cd06371b9695 (diff) | |
download | crosvm-f57267d7e998ffec48794723b188b35489acfeec.tar crosvm-f57267d7e998ffec48794723b188b35489acfeec.tar.gz crosvm-f57267d7e998ffec48794723b188b35489acfeec.tar.bz2 crosvm-f57267d7e998ffec48794723b188b35489acfeec.tar.lz crosvm-f57267d7e998ffec48794723b188b35489acfeec.tar.xz crosvm-f57267d7e998ffec48794723b188b35489acfeec.tar.zst crosvm-f57267d7e998ffec48794723b188b35489acfeec.zip |
devices: enable adding Wl sockets at runtime
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs index 87ecdb6..e5b5053 100644 --- a/src/main.rs +++ b/src/main.rs @@ -34,7 +34,7 @@ use sys_util::{ }; use vm_control::{ BalloonControlCommand, DiskControlCommand, MaybeOwnedFd, UsbControlCommand, UsbControlResult, - VmControlRequestSocket, VmRequest, VmResponse, USB_CONTROL_MAX_PORTS, + VmControlRequestSocket, VmRequest, VmResponse, WlControlCommand, USB_CONTROL_MAX_PORTS, }; fn executable_is_plugin(executable: &Option<Executable>) -> bool { @@ -2178,6 +2178,31 @@ fn modify_usb(mut args: std::env::Args) -> std::result::Result<(), ()> { } } +fn wl_cmd(mut args: std::env::Args) -> std::result::Result<(), ()> { + if args.len() < 2 { + print_help("crosvm wl", "SUBCOMMAND VM_SOCKET...", &[]); + println!("Manage attached virtio Wayland sockets."); + println!("Subcommands:"); + println!(" add NAME PATH VM_SOCKET"); + return Err(()); + } + let subcommand: &str = &args.next().unwrap(); + + let request = match subcommand { + "add" => { + let name = args.next().unwrap(); + let path = args.next().unwrap().into(); + VmRequest::WlCommand(WlControlCommand::AddSocket { name, path }) + } + _ => { + error!("Unknown wl subcommand '{}'", subcommand); + return Err(()); + } + }; + + vms_request(&request, args) +} + fn print_usage() { print_help("crosvm", "[stop|run]", &[]); println!("Commands:"); @@ -2189,6 +2214,7 @@ fn print_usage() { println!(" create_qcow2 Create a new qcow2 disk image file."); println!(" disk Manage attached virtual disk devices."); println!(" usb Manage attached virtual USB devices."); + println!(" wl Manage attached virtio_wl sockets."); println!(" version Show package version."); } @@ -2233,6 +2259,7 @@ fn crosvm_main() -> std::result::Result<(), ()> { Some("create_qcow2") => create_qcow2(args), Some("disk") => disk_cmd(args), Some("usb") => modify_usb(args), + Some("wl") => wl_cmd(args), Some("version") => pkg_version(), Some(c) => { println!("invalid subcommand: {:?}", c); |