diff --git a/Cargo.lock b/Cargo.lock index d298ff075..2c9d2df5c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1384,6 +1384,7 @@ dependencies = [ name = "vfio_user" version = "0.1.0" dependencies = [ + "argh", "bitflags", "env_logger", "libc", diff --git a/vfio_user/Cargo.toml b/vfio_user/Cargo.toml index ed7a32357..317404893 100644 --- a/vfio_user/Cargo.toml +++ b/vfio_user/Cargo.toml @@ -20,5 +20,6 @@ vm-memory = { version = "0.10.0", features = ["backend-mmap", "backend-atomic"] vmm-sys-util = "0.11.0" [dev-dependencies] +argh = "0.1.9" env_logger = "0.10.0" pci = { path = "../pci" } diff --git a/vfio_user/examples/gpio/main.rs b/vfio_user/examples/gpio/main.rs index c1a4f79f2..d41793e89 100644 --- a/vfio_user/examples/gpio/main.rs +++ b/vfio_user/examples/gpio/main.rs @@ -3,6 +3,7 @@ // SPDX-License-Identifier: Apache-2.0 // +use argh::FromArgs; use log::info; use pci::PciBarConfiguration; use std::{fs::File, mem::size_of, path::PathBuf}; @@ -24,9 +25,18 @@ impl pci::PciSubclass for PciVfioUserSubclass { } } +#[derive(FromArgs)] +/// GPIO test device +struct Args { + /// path to socket + #[argh(option)] + socket_path: String, +} + struct TestBackend { configuration: pci::PciConfiguration, } + impl TestBackend { fn new() -> TestBackend { let subclass = PciVfioUserSubclass::VfioUserSubclass; @@ -174,12 +184,12 @@ fn create_irqs() -> Vec { } fn main() { + let a: Args = argh::from_env(); env_logger::init(); - let regions = create_regions(); let irqs = create_irqs(); - let path = PathBuf::from("/tmp/vfio-user-test.socket"); + let path = PathBuf::from(a.socket_path); let s = Server::new(&path, true, irqs, regions).unwrap(); let mut test_backend = TestBackend::new(); s.run(&mut test_backend).unwrap();