diff --git a/Cargo.lock b/Cargo.lock index 0da2cb7dc..a40bdcb52 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -251,6 +251,16 @@ dependencies = [ "xmas-elf", ] +[[package]] +name = "aster-pci" +version = "0.1.0" +dependencies = [ + "component", + "log", + "ostd", + "spin", +] + [[package]] name = "aster-rights" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 6861d4970..1644f916a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,6 +25,7 @@ members = [ "kernel/comps/mlsdisk", "kernel/comps/time", "kernel/comps/virtio", + "kernel/comps/pci", "kernel/libs/cpio-decoder", "kernel/libs/int-to-c-enum", "kernel/libs/int-to-c-enum/derive", diff --git a/Components.toml b/Components.toml index 670e33812..9debad6ca 100644 --- a/Components.toml +++ b/Components.toml @@ -13,6 +13,7 @@ network = { name = "aster-network" } mlsdisk = { name = "aster-mlsdisk" } systree = { name = "aster-systree" } keyboard = { name = "aster-keyboard" } +pci = { name = "aster-pci" } [whitelist] [whitelist.nix.main] diff --git a/Makefile b/Makefile index 22ef28c44..0df104bdc 100644 --- a/Makefile +++ b/Makefile @@ -207,6 +207,7 @@ OSDK_CRATES := \ kernel/comps/mlsdisk \ kernel/comps/time \ kernel/comps/virtio \ + kernel/comps/pci \ kernel/libs/aster-util \ kernel/libs/aster-bigtcp \ kernel/libs/xarray diff --git a/kernel/comps/pci/Cargo.toml b/kernel/comps/pci/Cargo.toml new file mode 100644 index 000000000..9d0290cd3 --- /dev/null +++ b/kernel/comps/pci/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "aster-pci" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +ostd = { path = "../../../ostd" } +component = { path = "../../libs/comp-sys/component" } +log = "0.4" +spin = "0.9.4" + +[lints] +workspace = true \ No newline at end of file diff --git a/kernel/comps/pci/src/lib.rs b/kernel/comps/pci/src/lib.rs new file mode 100644 index 000000000..8340962a9 --- /dev/null +++ b/kernel/comps/pci/src/lib.rs @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: MPL-2.0 + +//! PCI bus in Asterinas +#![no_std] +#![deny(unsafe_code)] + +use component::{init_component, ComponentInitError}; + +#[init_component] +fn pci_init() -> Result<(), ComponentInitError> { + init(); + Ok(()) +}