mirror of
https://github.com/phil-opp/blog_os.git
synced 2025-12-16 14:27:49 +00:00
PAGE_SIZE is already defined in memory/mod.rs
This commit is contained in:
@@ -13,7 +13,8 @@ TODO
|
||||
Let's create a basic `memory/paging/mod.rs` module:
|
||||
|
||||
```rust
|
||||
pub const PAGE_SIZE: usize = 4096;
|
||||
use memory::PAGE_SIZE;
|
||||
|
||||
const ENTRY_COUNT: usize = 512;
|
||||
|
||||
pub type PhysicalAddress = usize;
|
||||
@@ -23,7 +24,7 @@ pub struct Page {
|
||||
number: usize,
|
||||
}
|
||||
```
|
||||
We define constants for the page size and the number of entries per table. To make future function signatures more expressive, we can use the type aliases `PhysicalAddress` and `VirtualAddress`. The `Page` struct is similar to the `Frame` struct in the [previous post], but represents a virtual page instead of a physical frame.
|
||||
We import the `PAGE_SIZE` and define a constant for the number of entries per table. To make future function signatures more expressive, we can use the type aliases `PhysicalAddress` and `VirtualAddress`. The `Page` struct is similar to the `Frame` struct in the [previous post], but represents a virtual page instead of a physical frame.
|
||||
|
||||
[previous post]: {{ page.previous.url }}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use core::ptr::Unique;
|
||||
use memory::{Frame, FrameAllocator};
|
||||
use memory::{PAGE_SIZE, Frame, FrameAllocator};
|
||||
use self::table::{Table, Level4};
|
||||
use self::entry::*;
|
||||
|
||||
@@ -30,7 +30,6 @@ pub fn test<A>(frame_allocator: &mut A)
|
||||
mapping::map(&Page::containing_address(0x0), PRESENT, frame_allocator);
|
||||
}
|
||||
|
||||
pub const PAGE_SIZE: usize = 4096;
|
||||
const ENTRY_COUNT: usize = 512;
|
||||
|
||||
pub type PhysicalAddress = usize;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use super::{VirtualAddress, PhysicalAddress, Page, PAGE_SIZE, ENTRY_COUNT};
|
||||
use super::{VirtualAddress, PhysicalAddress, Page, ENTRY_COUNT};
|
||||
use super::table::P4;
|
||||
use super::entry::HUGE_PAGE;
|
||||
use memory::Frame;
|
||||
use memory::{PAGE_SIZE, Frame};
|
||||
|
||||
pub fn translate(virtual_address: VirtualAddress) -> Option<PhysicalAddress> {
|
||||
let offset = virtual_address % PAGE_SIZE;
|
||||
|
||||
Reference in New Issue
Block a user