Skip to content

Commit cefac50

Browse files
committed
refactor: 移动地址抽象到架构模块并更新相关引用
1 parent c912bad commit cefac50

5 files changed

Lines changed: 12 additions & 22 deletions

File tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//! 类型安全的地址抽象
1+
//! 类型安全的架构地址抽象
22
//!
33
//! 借鉴 moss-kernel 的地址类型体系设计:
44
//! - Sealed trait 防止外部实现(安全边界)

os/src/arch/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
1313
// ---- trait 定义 ----
1414

15+
pub mod address;
1516
pub mod arch;
1617
pub mod cpu_ops;
1718
pub mod virtual_memory;

os/src/hal/mod.rs

Lines changed: 0 additions & 10 deletions
This file was deleted.

os/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ extern crate alloc;
1616
mod arch;
1717
mod config;
1818
mod console;
19-
mod hal;
2019
mod kernel;
2120
mod sync;
2221
mod test;

os/src/mm/address/types.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -155,14 +155,14 @@ pub trait ConvertablePaddr {
155155
/// 通过 sealed trait 模式在编译期防止地址空间混用。
156156
#[repr(transparent)]
157157
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug)]
158-
pub struct Paddr(pub crate::hal::address::PA);
158+
pub struct Paddr(pub crate::arch::address::PA);
159159

160160
impl UsizeConvert for Paddr {
161161
fn as_usize(&self) -> usize {
162162
self.0.as_usize()
163163
}
164164
fn from_usize(value: usize) -> Self {
165-
Self(crate::hal::address::PA::from_usize(value))
165+
Self(crate::arch::address::PA::from_usize(value))
166166
}
167167
}
168168
crate::impl_calc_ops!(Paddr);
@@ -199,14 +199,14 @@ pub trait ConvertableVaddr {
199199
/// 通过 sealed trait 模式在编译期防止地址空间混用。
200200
#[repr(transparent)]
201201
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug)]
202-
pub struct Vaddr(pub crate::hal::address::VA);
202+
pub struct Vaddr(pub crate::arch::address::VA);
203203

204204
impl UsizeConvert for Vaddr {
205205
fn as_usize(&self) -> usize {
206206
self.0.as_usize()
207207
}
208208
fn from_usize(value: usize) -> Self {
209-
Self(crate::hal::address::VA::from_usize(value))
209+
Self(crate::arch::address::VA::from_usize(value))
210210
}
211211
}
212212
crate::impl_calc_ops!(Vaddr);
@@ -458,26 +458,26 @@ pub type VaddrRange = AddressRange<Vaddr>;
458458
// 与 hal::address 的类型转换
459459
// ============================================================================
460460

461-
impl From<Paddr> for crate::hal::address::PA {
461+
impl From<Paddr> for crate::arch::address::PA {
462462
fn from(p: Paddr) -> Self {
463463
p.0
464464
}
465465
}
466466

467-
impl From<crate::hal::address::PA> for Paddr {
468-
fn from(a: crate::hal::address::PA) -> Self {
467+
impl From<crate::arch::address::PA> for Paddr {
468+
fn from(a: crate::arch::address::PA) -> Self {
469469
Paddr(a)
470470
}
471471
}
472472

473-
impl From<Vaddr> for crate::hal::address::VA {
473+
impl From<Vaddr> for crate::arch::address::VA {
474474
fn from(v: Vaddr) -> Self {
475475
v.0
476476
}
477477
}
478478

479-
impl From<crate::hal::address::VA> for Vaddr {
480-
fn from(a: crate::hal::address::VA) -> Self {
479+
impl From<crate::arch::address::VA> for Vaddr {
480+
fn from(a: crate::arch::address::VA) -> Self {
481481
Vaddr(a)
482482
}
483483
}

0 commit comments

Comments
 (0)