mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-06 02:25:23 +00:00
6fe08fa363
This is a separate hypervisor crate for interacting with Kvm in an abstract manner. The intention is to not leak the internals of kvm with its specific calls in various places in the codebase. Currently, this just creates an initial structure for adding various implementations over time. In addition, a SafeDescriptor class is added, that wraps a raw file descriptor safely, without needing to wrap it in the rust file class. The intention is to use this for non file raw descriptors. BUG=chromium:1077058 TEST=added a basic kvm test that creates a Kvm struct Change-Id: I4229203902e480b52435cde12bf0d25a322c71be Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2174756 Commit-Queue: Udam Saini <udam@google.com> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Dylan Reid <dgreid@chromium.org>
97 lines
2.6 KiB
TOML
97 lines
2.6 KiB
TOML
[package]
|
|
name = "crosvm"
|
|
version = "0.1.0"
|
|
authors = ["The Chromium OS Authors"]
|
|
edition = "2018"
|
|
|
|
[lib]
|
|
path = "src/crosvm.rs"
|
|
|
|
[[bin]]
|
|
name = "crosvm"
|
|
path = "src/main.rs"
|
|
|
|
[profile.release]
|
|
panic = 'abort'
|
|
overflow-checks = true
|
|
|
|
[workspace]
|
|
members = ["qcow_utils"]
|
|
exclude = [
|
|
"assertions",
|
|
"async_core",
|
|
"cros_async",
|
|
"data_model",
|
|
"rand_ish",
|
|
"sync",
|
|
"sys_util",
|
|
"syscall_defines",
|
|
"tempfile",
|
|
"hypervisor"
|
|
]
|
|
|
|
[features]
|
|
default-no-sandbox = []
|
|
gpu = ["devices/gpu"]
|
|
plugin = ["protos/plugin", "crosvm_plugin", "protobuf"]
|
|
tpm = ["devices/tpm"]
|
|
wl-dmabuf = ["devices/wl-dmabuf", "gpu_buffer", "resources/wl-dmabuf"]
|
|
x = ["devices/x"]
|
|
virtio-gpu-next = ["gpu_renderer/virtio-gpu-next"]
|
|
composite-disk = ["protos/composite-disk", "protobuf", "disk/composite-disk"]
|
|
gfxstream = ["devices/gfxstream"]
|
|
|
|
[dependencies]
|
|
arch = { path = "arch" }
|
|
assertions = { path = "assertions" }
|
|
audio_streams = "*"
|
|
bit_field = { path = "bit_field" }
|
|
crosvm_plugin = { path = "crosvm_plugin", optional = true }
|
|
data_model = "*"
|
|
devices = { path = "devices" }
|
|
disk = { path = "disk" }
|
|
enumn = { path = "enumn" }
|
|
gpu_buffer = { path = "gpu_buffer", optional = true }
|
|
gpu_renderer = { path = "gpu_renderer", optional = true }
|
|
io_jail = { path = "io_jail" }
|
|
kernel_cmdline = { path = "kernel_cmdline" }
|
|
kernel_loader = { path = "kernel_loader" }
|
|
kvm = { path = "kvm" }
|
|
kvm_sys = { path = "kvm_sys" }
|
|
libc = "0.2.44"
|
|
libcras = "*"
|
|
minijail-sys = "*" # provided by ebuild
|
|
msg_socket = { path = "msg_socket" }
|
|
net_util = { path = "net_util" }
|
|
p9 = { path = "p9" }
|
|
protobuf = { version = "2.3", optional = true }
|
|
protos = { path = "protos", optional = true }
|
|
rand_ish = { path = "rand_ish" }
|
|
remain = "*"
|
|
resources = { path = "resources" }
|
|
sync = { path = "sync" }
|
|
sys_util = "*"
|
|
vhost = { path = "vhost" }
|
|
vm_control = { path = "vm_control" }
|
|
acpi_tables = { path = "acpi_tables" }
|
|
|
|
[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]
|
|
sys_util = "*"
|
|
|
|
[patch.crates-io]
|
|
assertions = { path = "assertions" }
|
|
audio_streams = { path = "../../third_party/adhd/audio_streams" } # ignored by ebuild
|
|
data_model = { path = "data_model" }
|
|
libcras = { path = "../../third_party/adhd/cras/client/libcras" } # ignored by ebuild
|
|
minijail-sys = { path = "../../aosp/external/minijail" } # ignored by ebuild
|
|
poll_token_derive = { path = "sys_util/poll_token_derive" }
|
|
sync = { path = "sync" }
|
|
sys_util = { path = "sys_util" }
|
|
syscall_defines = { path = "syscall_defines" }
|
|
tempfile = { path = "tempfile" }
|