crosvm/Cargo.toml
Dmytro Maluka 74031b483f x86_64: acpi: support for assigning physical GPEs
Wire up GPE eventfd forwarding and crosvm's GPE emulation.

This patch allows to provide ACPIPMResource with the list of GPEs
which should work as direct physical (passthrough) GPEs rather than
purely emulated ones.

BUG=b:205072342
TEST=see CL:3492224

Change-Id: Idb8ef36299c793f56d73246d15ff89f495bb30ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3492223
Reviewed-by: Dmitry Torokhov <dtor@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Tomasz Nowicki <tnowicki@google.com>
2022-03-21 09:16:38 +00:00

204 lines
5.3 KiB
TOML

[package]
name = "crosvm"
version = "0.1.0"
authors = ["The Chromium OS Authors"]
edition = "2021"
default-run = "crosvm"
# b:223855233
resolver = "1"
[lib]
path = "src/crosvm.rs"
[[bin]]
name = "crosvm"
path = "src/main.rs"
[[bin]]
name = "crosvm-direct"
path = "src/main.rs"
required-features = [ "direct" ]
[profile.release]
panic = 'abort'
overflow-checks = true
# Reproduces the options used when building crosvm for Chrome OS.
[profile.chromeos]
inherits = "release"
opt-level = "s"
# Enables LTO to further reduce the size of the binary.
[profile.lto]
inherits = "chromeos"
lto = true
# We currently need to exclude some crates from the workspace to allow
# these crates to be independently built by portage. These crates will
# eventually be moved into separate repositories.
# The only workspace members that need to be explicitly specified here are those
# that are not dependencies of the crosvm root crate.
[workspace]
members = [
"aarch64",
"acpi_tables",
"arch",
"base",
"bit_field",
"crosvm-fuzz",
"crosvm_control",
"crosvm_plugin",
"devices",
"disk",
"fuse",
"gpu_display",
"hypervisor",
"integration_tests",
"kernel_cmdline",
"kernel_loader",
"kvm",
"kvm_sys",
"libcras_stub",
"libvda",
"linux_input_sys",
"net_sys",
"net_util",
"power_monitor",
"protos",
"qcow_utils",
"resources",
"rutabaga_gfx",
"system_api_stub",
"tpm2",
"tpm2-sys",
"usb_sys",
"usb_util",
"vfio_sys",
"vhost",
"virtio_sys",
"vm_control",
"vm_memory",
"x86_64",
"third_party/vmm_vhost",
]
exclude = [
"common/assertions",
"common/audio_streams",
"common/balloon_control",
"common/cros-fuzz",
"common/cros_async",
"common/cros_asyncv2",
"common/data_model",
"common/io_uring",
"common/p9",
"common/sync",
"common/sys_util",
"common/sys_util_core",
"common/win_sys_util",
"common/win_util",
]
[features]
all-linux = [
# TODO(b/203105868): Enable remaining features on linux builds.
"composite-disk",
"default",
"gdb",
"tpm",
"virgl_renderer_next",
"virgl_renderer",
"x",
]
audio = ["devices/audio"]
audio_cras = ["devices/audio_cras"]
chromeos = ["base/chromeos", "audio_cras", "devices/chromeos"]
composite-disk = ["protos/composite-disk", "protobuf", "disk/composite-disk"]
default = ["audio", "gpu", "usb"]
default-no-sandbox = []
direct = ["devices/direct", "arch/direct", "x86_64/direct"]
gdb = ["gdbstub", "gdbstub_arch", "arch/gdb", "vm_control/gdb", "x86_64/gdb"]
gfxstream = ["devices/gfxstream"]
gpu = ["devices/gpu"]
libvda = ["devices/libvda"]
linux-armhf = [
"composite-disk",
"default",
"gdb",
"tpm",
]
linux-x86_64 = ["all-linux", "plugin"]
linux-aarch64 = ["all-linux"]
plugin = ["protos/plugin", "crosvm_plugin", "kvm", "kvm_sys", "protobuf"]
power-monitor-powerd = ["arch/power-monitor-powerd"]
tpm = ["devices/tpm"]
usb = ["devices/usb"]
video-decoder = ["devices/video-decoder"]
video-encoder = ["devices/video-encoder"]
virgl_renderer = ["devices/virgl_renderer"]
virgl_renderer_next = ["rutabaga_gfx/virgl_renderer_next"]
wl-dmabuf = ["devices/minigbm"]
x = ["devices/x"]
[dependencies]
anyhow = "1.0.32"
arch = { path = "arch" }
assertions = { path = "common/assertions" }
audio_streams = "*"
base = "*"
bit_field = { path = "bit_field" }
crosvm_plugin = { path = "crosvm_plugin", optional = true }
data_model = "*"
devices = { path = "devices" }
disk = { path = "disk" }
enumn = "0.1.0"
gdbstub = { version = "0.5.0", optional = true }
gdbstub_arch = { version = "0.1.0", optional = true }
rutabaga_gfx = { path = "rutabaga_gfx"}
hypervisor = { path = "hypervisor" }
kernel_cmdline = { path = "kernel_cmdline" }
kernel_loader = { path = "kernel_loader" }
kvm = { path = "kvm", optional = true }
kvm_sys = { path = "kvm_sys", optional = true }
libc = "0.2.93"
libcras = "*"
minijail = "*" # provided by ebuild
net_util = { path = "net_util" }
p9 = "*"
protobuf = { version = "2.3", optional = true }
protos = { path = "protos", optional = true }
remain = "*"
resources = { path = "resources" }
scudo = { version = "0.1", optional = true }
serde_json = "*"
sync = { path = "common/sync" }
tempfile = "3"
thiserror = { version = "1.0.20" }
vhost = { path = "vhost" }
vm_control = { path = "vm_control" }
acpi_tables = { path = "acpi_tables" }
vm_memory = { path = "vm_memory" }
[target.'cfg(target_arch = "x86_64")'.dependencies]
x86_64 = { path = "x86_64" }
[target.'cfg(any(target_arch = "aarch64", target_arch = "arm"))'.dependencies]
aarch64 = { path = "aarch64" }
[dev-dependencies]
base = "*"
[patch.crates-io]
assertions = { path = "common/assertions" }
audio_streams = { path = "common/audio_streams" }
base = { path = "base" }
sys_util_core = { path = "common/sys_util_core" }
cros_async = { path = "common/cros_async" }
cros_fuzz = { path = "common/cros-fuzz" } # ignored by ebuild
data_model = { path = "common/data_model" }
libcras = { path = "libcras_stub" } # ignored by ebuild
p9 = { path = "common/p9" } # ignored by ebuild
sync = { path = "common/sync" }
sys_util = { path = "common/sys_util" }
system_api = { path = "system_api_stub" } # ignored by ebuild
wire_format_derive = { path = "common/p9/wire_format_derive" } # ignored by ebuild
minijail = { path = "third_party/minijail/rust/minijail" } # ignored by ebuild