Skip to content

Commit 254a69a

Browse files
MRNIUclaude
andcommitted
refactor(memory): address crate 重构——拆分 span、重命名为 memory_types
重构 `crates/address` 为更准确的命名和更清晰的职责划分: **结构变更:** - 新建 `crates/span`:提取 `Span<A>` 通用半开区间为独立零依赖 crate - `crates/address` → `crates/memory_types`:包名更准确反映内容 - `page_num.rs` → `page_frame.rs`:文件名覆盖 Frame 和 Page 两种类型 **类型重命名:** - `AddrRange<A>` → `Span<A>`(通用术语,参考 Redox PageSpan) - `FrameRange` → `FrameSpan`,`PageRange` → `PageSpan` - 删除 `PhysPageNum`/`VirtPageNum` 别名,直接用 `Frame`/`Page`(默认类型参数) **代码审阅修复:** - 算术溢出:`debug_assert!` + 裸运算 → `checked_add/sub` + `expect` - 避免软件除法:乘除法全部替换为位移(`NUM_4K_PAGES_SHIFT`) - `From<*const T>` 和 `align_up_to` 结果经过 `Self::new()` 校验 - `Frame`/`Page` 加 `#[repr(transparent)]`、`const fn new/start_addr` - `PageSize` trait:`NUM_4K_PAGES_SHIFT`/`SIZE_IN_BYTES` 改为自动派生 - Display 输出 `Frame<4K>(0x42)` 格式,包含页大小信息 - 删除无用的 `page_size::tests` 模块 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Niu Zhihong <zhihong@nzhnb.com>
1 parent 62715a0 commit 254a69a

45 files changed

Lines changed: 658 additions & 698 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.lock

Lines changed: 19 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ members = [
1313
".",
1414
"crates/build_common",
1515
"crates/config",
16-
"crates/address",
16+
"crates/span",
17+
"crates/memory_types",
1718
"crates/macros",
1819
"crates/per_cpu",
1920
"crates/interrupt_state",
@@ -141,7 +142,7 @@ bench = false
141142
[dependencies]
142143
# --- 内部 crate ---
143144
config = { path = "crates/config" }
144-
address = { path = "crates/address" }
145+
memory_types = { path = "crates/memory_types" }
145146
per_cpu = { path = "crates/per_cpu" }
146147
interrupt_state = { path = "crates/interrupt_state" }
147148
sync = { path = "crates/sync" }

crates/address/README.md

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

crates/address/src/page_size.rs

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

0 commit comments

Comments
 (0)