[package] name = "ostd" description = "Rust OS framework that facilitates the development of and innovation in OS kernels" documentation = "https://asterinas.github.io/api-docs" readme = "README.md" version.workspace = true repository.workspace = true license.workspace = true edition.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # Settings for publishing docs in docs.rs [package.metadata.docs.rs] default-target = "x86_64-unknown-none" targets = ["x86_64-unknown-none"] [dependencies] align_ext.workspace = true bit_field.workspace = true bitflags.workspace = true bitvec.workspace = true cfg-if.workspace = true gimli.workspace = true id-alloc.workspace = true inherit-methods-macro.workspace = true int-to-c-enum.workspace = true intrusive-collections.workspace = true linux-boot-params.workspace = true log.workspace = true minicov = { workspace = true, optional = true } num-traits.workspace = true ostd-macros.workspace = true ostd-test.workspace = true ostd-pod.workspace = true spin.workspace = true smallvec.workspace = true volatile.workspace = true # The targets are chosen to prevent the generated machine code from using any # vector or floating-point registers. # # - `x86_64-unknown-none` satisfies this property, as explained by [the # official documentation](https://doc.rust-lang.org/rustc/platform-support/x86_64-unknown-none.html). # - `riscv64imac-unknown-none-elf` denotes a RISC-V ISA with only basic # extensions (`imac`) and no floating-point-related extensions. # - `loongarch64-unknown-none-softfloat` is rather self-explaining. [target.x86_64-unknown-none.dependencies] x86_64 = "0.14.13" x86 = "0.52.0" acpi = "=5.2.0" # This upstream often bump minor versions with API changes multiboot2 = "0.24.0" iced-x86 = { version = "1.21.0", default-features = false, features = [ "no_std", "decoder", "gas", ], optional = true } tdx-guest = { version = "0.2.2", optional = true } unwinding = { version = "=0.2.8", default-features = false, features = ["fde-gnu-eh-frame-hdr", "hide-trace", "panic", "personality", "unwinder"] } [target.riscv64imac-unknown-none-elf.dependencies] riscv = { version = "0.15.0", features = ["s-mode"] } sbi-rt = "0.0.3" fdt = { version = "0.1.5", features = ["pretty-printing"] } unwinding = { version = "=0.2.8", default-features = false, features = ["fde-static", "hide-trace", "panic", "personality", "unwinder"] } [target.loongarch64-unknown-none-softfloat.dependencies] loongArch64 = "0.2.5" fdt = { version = "0.1.5", features = ["pretty-printing"] } [features] default = ["cvm_guest"] # The guest OS support for Confidential VMs (CVMs), e.g., Intel TDX cvm_guest = ["dep:tdx-guest", "dep:iced-x86"] coverage = ["minicov"] riscv_sv39_mode = [] [lints] workspace = true