From 2bc12cb4691cb4e3167c3a9ac9c2bbe08461ce27 Mon Sep 17 00:00:00 2001 From: mii443 Date: Wed, 2 Jul 2025 01:17:28 +0900 Subject: [PATCH] add common --- .gitignore | 1 + nel_os_bootloader/Cargo.lock | 5 +++++ nel_os_bootloader/Cargo.toml | 1 + nel_os_common/Cargo.lock | 7 +++++++ nel_os_common/Cargo.toml | 6 ++++++ nel_os_common/src/lib.rs | 3 +++ nel_os_common/src/memory.rs | 17 +++++++++++++++++ 7 files changed, 40 insertions(+) create mode 100644 nel_os_common/Cargo.lock create mode 100644 nel_os_common/Cargo.toml create mode 100644 nel_os_common/src/lib.rs create mode 100644 nel_os_common/src/memory.rs diff --git a/.gitignore b/.gitignore index baf9102..a465cbc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ nel_os_bootloader/target nel_os_kernel/target +nel_os_common/target nel_os_bootloader/fat.img nel_os_bootloader/iso/ nel_os_bootloader/nel_os.iso diff --git a/nel_os_bootloader/Cargo.lock b/nel_os_bootloader/Cargo.lock index 310800a..aa16df7 100644 --- a/nel_os_bootloader/Cargo.lock +++ b/nel_os_bootloader/Cargo.lock @@ -49,10 +49,15 @@ version = "0.1.0" dependencies = [ "goblin", "log", + "nel_os_common", "uefi", "x86", ] +[[package]] +name = "nel_os_common" +version = "0.1.0" + [[package]] name = "plain" version = "0.2.3" diff --git a/nel_os_bootloader/Cargo.toml b/nel_os_bootloader/Cargo.toml index d42dfbb..1b16374 100644 --- a/nel_os_bootloader/Cargo.toml +++ b/nel_os_bootloader/Cargo.toml @@ -8,3 +8,4 @@ goblin = { version = "0.10.0", features = ["elf32", "elf64", "endian_fd"], defau log = "0.4.27" uefi = { version = "0.35.0", features = ["logger", "panic_handler", "alloc"] } x86 = "0.52.0" +nel_os_common = { path = "../nel_os_common" } diff --git a/nel_os_common/Cargo.lock b/nel_os_common/Cargo.lock new file mode 100644 index 0000000..a5dab31 --- /dev/null +++ b/nel_os_common/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "nel_os_common" +version = "0.1.0" diff --git a/nel_os_common/Cargo.toml b/nel_os_common/Cargo.toml new file mode 100644 index 0000000..e9ef893 --- /dev/null +++ b/nel_os_common/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "nel_os_common" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/nel_os_common/src/lib.rs b/nel_os_common/src/lib.rs new file mode 100644 index 0000000..581804b --- /dev/null +++ b/nel_os_common/src/lib.rs @@ -0,0 +1,3 @@ +#![no_std] + +pub mod memory; diff --git a/nel_os_common/src/memory.rs b/nel_os_common/src/memory.rs new file mode 100644 index 0000000..5eebc76 --- /dev/null +++ b/nel_os_common/src/memory.rs @@ -0,0 +1,17 @@ +#[repr(C)] +pub struct UsableMemory { + pub ranges: *const Range, + pub len: u64, +} + +#[repr(C)] +pub struct Range { + pub start: u64, + pub end: u64, +} + +impl UsableMemory { + pub fn ranges(&self) -> &[Range] { + unsafe { core::slice::from_raw_parts(self.ranges, self.len as usize) } + } +}