diff options
author | Tomasz Jeznach <tjeznach@chromium.org> | 2020-05-20 23:27:59 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-06-01 23:25:39 +0000 |
commit | 4264464153a7a788ef73c5015ac8bbde5f8ebe1c (patch) | |
tree | 38d1e2b38304f9fc81b9627a037fa11146a291fb /src/main.rs | |
parent | 2705264dc649a60077dfefc9924b8689d8f7d994 (diff) | |
download | crosvm-4264464153a7a788ef73c5015ac8bbde5f8ebe1c.tar crosvm-4264464153a7a788ef73c5015ac8bbde5f8ebe1c.tar.gz crosvm-4264464153a7a788ef73c5015ac8bbde5f8ebe1c.tar.bz2 crosvm-4264464153a7a788ef73c5015ac8bbde5f8ebe1c.tar.lz crosvm-4264464153a7a788ef73c5015ac8bbde5f8ebe1c.tar.xz crosvm-4264464153a7a788ef73c5015ac8bbde5f8ebe1c.tar.zst crosvm-4264464153a7a788ef73c5015ac8bbde5f8ebe1c.zip |
acpi: support user provided ACPI SDTs.
Enable support for user provided ACPI tables with supplementary system description. Argument --acpi-table shall point to exsting file or pseudo-file with valid ACPI table content. BUG=None TEST=boot Linux kernel with generated SSDT tables. Change-Id: I8eac21da070dcc325884ed888cc7bcb01bc086ce Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2212501 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Tested-by: Tomasz Jeznach <tjeznach@chromium.org> Commit-Queue: Tomasz Jeznach <tjeznach@chromium.org>
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs index 61fcd48..e8a6e6c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1232,6 +1232,23 @@ fn set_argument(cfg: &mut Config, name: &str, value: Option<&str>) -> argument:: "video-encoder" => { cfg.video_enc = true; } + "acpi-table" => { + let acpi_table = PathBuf::from(value.unwrap()); + if !acpi_table.exists() { + return Err(argument::Error::InvalidValue { + value: value.unwrap().to_owned(), + expected: String::from("the acpi-table path does not exist"), + }); + } + if !acpi_table.is_file() { + return Err(argument::Error::InvalidValue { + value: value.unwrap().to_owned(), + expected: String::from("the acpi-table path should be a file"), + }); + } + + cfg.acpi_tables.push(acpi_table); + } "help" => return Err(argument::Error::PrintHelp), _ => unreachable!(), @@ -1406,6 +1423,7 @@ writeback=BOOL - Indicates whether the VM can use writeback caching (default: fa Argument::flag("video-decoder", "(EXPERIMENTAL) enable virtio-video decoder device"), #[cfg(feature = "video-encoder")] Argument::flag("video-encoder", "(EXPERIMENTAL) enable virtio-video encoder device"), + Argument::value("acpi-table", "PATH", "Path to user provided ACPI table"), Argument::short_flag('h', "help", "Print help message.")]; let mut cfg = Config::default(); |