mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-22 17:03:23 +00:00
Renaming concepts around pages and frames
This commit renames `Frame` -> `UntypedFrame` and `Page` -> `Frame`. So do other concepts in the following list: - `Segment` -> `UntypedSegment`, - `ContPages` -> `Segment`, - `DynPage` -> `AnyFrame`, - `PageMeta` -> `FrameMeta`, - `FrameMeta` -> `UntypedMeta`. This commit also re-organized the source in the `mm/page` and `mm/frame` module to accommodate the changes.
This commit is contained in:
committed by
Tate, Hongliang Tian
parent
10f1856306
commit
c9a37ccab1
@ -11,10 +11,9 @@ use crate::{
|
||||
arch::boot::smp::{bringup_all_aps, get_num_processors},
|
||||
cpu,
|
||||
mm::{
|
||||
frame::{self, Segment},
|
||||
kspace::KernelMeta,
|
||||
paddr_to_vaddr,
|
||||
page::{self, ContPages},
|
||||
PAGE_SIZE,
|
||||
paddr_to_vaddr, PAGE_SIZE,
|
||||
},
|
||||
task::Task,
|
||||
};
|
||||
@ -25,7 +24,7 @@ const AP_BOOT_STACK_SIZE: usize = PAGE_SIZE * 64;
|
||||
|
||||
pub(crate) struct ApBootInfo {
|
||||
/// It holds the boot stack top pointers used by all APs.
|
||||
pub(crate) boot_stack_array: ContPages<KernelMeta>,
|
||||
pub(crate) boot_stack_array: Segment<KernelMeta>,
|
||||
/// `per_ap_info` maps each AP's ID to its associated boot information.
|
||||
per_ap_info: BTreeMap<u32, PerApInfo>,
|
||||
}
|
||||
@ -33,10 +32,10 @@ pub(crate) struct ApBootInfo {
|
||||
struct PerApInfo {
|
||||
is_started: AtomicBool,
|
||||
// TODO: When the AP starts up and begins executing tasks, the boot stack will
|
||||
// no longer be used, and the `ContPages` can be deallocated (this problem also
|
||||
// no longer be used, and the `Segment` can be deallocated (this problem also
|
||||
// exists in the boot processor, but the memory it occupies should be returned
|
||||
// to the frame allocator).
|
||||
boot_stack_pages: ContPages<KernelMeta>,
|
||||
boot_stack_pages: Segment<KernelMeta>,
|
||||
}
|
||||
|
||||
static AP_LATE_ENTRY: Once<fn()> = Once::new();
|
||||
@ -64,12 +63,12 @@ pub fn boot_all_aps() {
|
||||
let mut per_ap_info = BTreeMap::new();
|
||||
// Use two pages to place stack pointers of all APs, thus support up to 1024 APs.
|
||||
let boot_stack_array =
|
||||
page::allocator::alloc_contiguous(2 * PAGE_SIZE, |_| KernelMeta::default()).unwrap();
|
||||
frame::allocator::alloc_contiguous(2 * PAGE_SIZE, |_| KernelMeta::default()).unwrap();
|
||||
assert!(num_cpus < 1024);
|
||||
|
||||
for ap in 1..num_cpus {
|
||||
let boot_stack_pages =
|
||||
page::allocator::alloc_contiguous(AP_BOOT_STACK_SIZE, |_| KernelMeta::default())
|
||||
frame::allocator::alloc_contiguous(AP_BOOT_STACK_SIZE, |_| KernelMeta::default())
|
||||
.unwrap();
|
||||
let boot_stack_ptr = paddr_to_vaddr(boot_stack_pages.end_paddr());
|
||||
let stack_array_ptr = paddr_to_vaddr(boot_stack_array.start_paddr()) as *mut u64;
|
||||
|
Reference in New Issue
Block a user