Update kernel/src/mem/mod.rs
This commit is contained in:
@@ -1,5 +1,3 @@
|
|||||||
//! `src/mem/mod.rs` — memory subsystem root
|
|
||||||
|
|
||||||
pub mod address;
|
pub mod address;
|
||||||
pub mod allocator;
|
pub mod allocator;
|
||||||
pub mod buddy;
|
pub mod buddy;
|
||||||
@@ -9,27 +7,18 @@ pub mod pmm;
|
|||||||
pub mod vmm;
|
pub mod vmm;
|
||||||
pub mod pm_router;
|
pub mod pm_router;
|
||||||
|
|
||||||
/// Initialise the physical memory manager.
|
|
||||||
///
|
|
||||||
/// Must be called before any heap allocation or VMM operation.
|
|
||||||
pub fn init_pmm(memmap: &limine::response::MemoryMapResponse) {
|
pub fn init_pmm(memmap: &limine::response::MemoryMapResponse) {
|
||||||
unsafe { pmm::BitmapPMM::init(memmap); }
|
unsafe { pmm::BitmapPMM::init(memmap); }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Initialise CPU features required by the VMM (INVPCID detection).
|
|
||||||
///
|
|
||||||
/// Must be called before `init_vmm` and any `AddressSpace::activate()`.
|
|
||||||
pub fn init_cpu_features() {
|
pub fn init_cpu_features() {
|
||||||
vmm::init_cpu_features();
|
vmm::init_cpu_features();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Initialise the kernel address space record (after PMM, heap, and the
|
|
||||||
/// initial P4 page table have been set up in `kmain`).
|
|
||||||
pub fn init_vmm(pml4_phys: address::PhysAddr) {
|
pub fn init_vmm(pml4_phys: address::PhysAddr) {
|
||||||
vmm::init_kernel_space(pml4_phys);
|
vmm::init_kernel_space(pml4_phys);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Physical memory statistics: `(used_pages, total_pages)`.
|
|
||||||
pub fn get_stats() -> (usize, usize) {
|
pub fn get_stats() -> (usize, usize) {
|
||||||
pmm::get_stats()
|
pmm::get_stats()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user