[package]
authors = ["The Chromium OS Authors"]
edition.workspace = true
name = "devices"
rust-version.workspace = true
version = "0.1.0"

[dependencies]
acpi_tables = { workspace = true }
anyhow = { workspace = true }
arch = { path = "../arch" }
bitfield-struct = { version = "0.13.0", optional = true }
bitflags = { workspace = true }
byteorder = { workspace = true }
event_monitor = { path = "../event_monitor" }
hypervisor = { path = "../hypervisor" }
libc = { workspace = true }
linux-loader = { workspace = true, features = [
  "bzimage",
  "elf",
  "pe",
], optional = true }
log = { workspace = true }
num_enum = "0.7.6"
pci = { path = "../pci" }
serde = { workspace = true, features = ["derive"] }
thiserror = { workspace = true }
tpm = { path = "../tpm" }
vm-allocator = { path = "../vm-allocator" }
vm-device = { path = "../vm-device" }
vm-memory = { workspace = true, features = [
  "backend-atomic",
  "backend-bitmap",
  "backend-mmap",
] }
vm-migration = { path = "../vm-migration" }
vmm-sys-util = { workspace = true }
zerocopy = { version = "0.8.48", features = [
  "alloc",
  "derive",
], optional = true }

[target.'cfg(any(target_arch = "aarch64", target_arch = "riscv64"))'.dependencies]
arch = { path = "../arch" }

[features]
default = []
fw_cfg = ["arch/fw_cfg", "bitfield-struct", "linux-loader", "zerocopy"]
ivshmem = []
kvm = ["arch/kvm"]
pvmemcontrol = []

[lints]
workspace = true
