From bed9baac4bf89d2d3537f174b7ef615176440500 Mon Sep 17 00:00:00 2001 From: Paul Pan Date: Mon, 8 Apr 2024 23:05:46 +0800 Subject: [PATCH] feat: move utils into lib --- lib/utils/Cargo.lock | 86 +++++++++++++++++++ lib/utils/Cargo.toml | 11 +++ .../utils => lib/utils/src}/extern_addr.rs | 2 +- .../utils => lib/utils/src}/function_name.rs | 0 .../src/utils/mod.rs => lib/utils/src/lib.rs | 3 + {kernel/src/utils => lib/utils/src}/size.rs | 0 {kernel/src/utils => lib/utils/src}/then.rs | 1 + 7 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 lib/utils/Cargo.lock create mode 100644 lib/utils/Cargo.toml rename {kernel/src/utils => lib/utils/src}/extern_addr.rs (93%) rename {kernel/src/utils => lib/utils/src}/function_name.rs (100%) rename kernel/src/utils/mod.rs => lib/utils/src/lib.rs (65%) rename {kernel/src/utils => lib/utils/src}/size.rs (100%) rename {kernel/src/utils => lib/utils/src}/then.rs (97%) diff --git a/lib/utils/Cargo.lock b/lib/utils/Cargo.lock new file mode 100644 index 0000000..340c909 --- /dev/null +++ b/lib/utils/Cargo.lock @@ -0,0 +1,86 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "autocfg" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-traits" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "proc-macro2" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "syn" +version = "2.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "utils" +version = "0.1.0" +dependencies = [ + "vspace", +] + +[[package]] +name = "vspace" +version = "0.1.0" +dependencies = [ + "bitflags", + "num-derive", + "num-traits", +] diff --git a/lib/utils/Cargo.toml b/lib/utils/Cargo.toml new file mode 100644 index 0000000..a70827d --- /dev/null +++ b/lib/utils/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "utils" +version = "0.1.0" +edition = "2021" + +[features] +default = [] +legacy = [] + +[dependencies] +vspace = { path = "../vspace" } diff --git a/kernel/src/utils/extern_addr.rs b/lib/utils/src/extern_addr.rs similarity index 93% rename from kernel/src/utils/extern_addr.rs rename to lib/utils/src/extern_addr.rs index 7983627..57dc910 100644 --- a/kernel/src/utils/extern_addr.rs +++ b/lib/utils/src/extern_addr.rs @@ -1,4 +1,4 @@ -use crate::vspace::addr::{PhysAddr, VirtAddr}; +use vspace::addr::{PhysAddr, VirtAddr}; extern "C" { pub type ExternSymbol; diff --git a/kernel/src/utils/function_name.rs b/lib/utils/src/function_name.rs similarity index 100% rename from kernel/src/utils/function_name.rs rename to lib/utils/src/function_name.rs diff --git a/kernel/src/utils/mod.rs b/lib/utils/src/lib.rs similarity index 65% rename from kernel/src/utils/mod.rs rename to lib/utils/src/lib.rs index 248d066..624fef7 100644 --- a/kernel/src/utils/mod.rs +++ b/lib/utils/src/lib.rs @@ -1,3 +1,6 @@ +#![no_std] +#![feature(extern_types)] + pub mod extern_addr; pub mod function_name; pub mod size; diff --git a/kernel/src/utils/size.rs b/lib/utils/src/size.rs similarity index 100% rename from kernel/src/utils/size.rs rename to lib/utils/src/size.rs diff --git a/kernel/src/utils/then.rs b/lib/utils/src/then.rs similarity index 97% rename from kernel/src/utils/then.rs rename to lib/utils/src/then.rs index 3bca306..c51cfd7 100644 --- a/kernel/src/utils/then.rs +++ b/lib/utils/src/then.rs @@ -13,6 +13,7 @@ impl Then for bool { } } + #[inline] fn some T>(self, f: F, err: E) -> Result { if self { Ok(f())