Only enumerate pages in dev build
This commit is contained in:
parent
07136397d0
commit
4dc05da38d
7
Cargo.lock
generated
7
Cargo.lock
generated
@ -61,6 +61,12 @@ version = "1.5.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cfg-if"
|
||||||
|
version = "1.0.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "core2"
|
name = "core2"
|
||||||
version = "0.3.3"
|
version = "0.3.3"
|
||||||
@ -133,6 +139,7 @@ version = "0.3.1"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"acid_alloc",
|
"acid_alloc",
|
||||||
"acpi",
|
"acpi",
|
||||||
|
"cfg-if",
|
||||||
"enumflags2",
|
"enumflags2",
|
||||||
"fdt",
|
"fdt",
|
||||||
"flagset",
|
"flagset",
|
||||||
|
|||||||
@ -7,6 +7,7 @@ license = "MIT"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
acid_alloc = { version = "0.1.0", features = ["alloc"] }
|
acid_alloc = { version = "0.1.0", features = ["alloc"] }
|
||||||
acpi = { version = "6.0.1", optional = true }
|
acpi = { version = "6.0.1", optional = true }
|
||||||
|
cfg-if = "1.0.4"
|
||||||
enumflags2 = "0.7.12"
|
enumflags2 = "0.7.12"
|
||||||
fdt = { git = "https://github.com/repnop/fdt", version = "0.2.0-alpha1", optional = true }
|
fdt = { git = "https://github.com/repnop/fdt", version = "0.2.0-alpha1", optional = true }
|
||||||
flagset = "0.4.7"
|
flagset = "0.4.7"
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
|
|
||||||
|
use crate::constants::KERNEL_BUILD_PROFILE;
|
||||||
use crate::{LOGGER, LogLevel, format, log_info, memory::HHDM_RESPONSE};
|
use crate::{LOGGER, LogLevel, format, log_info, memory::HHDM_RESPONSE};
|
||||||
use x86_64::{
|
use x86_64::{
|
||||||
PhysAddr, VirtAddr,
|
PhysAddr, VirtAddr,
|
||||||
@ -32,8 +33,6 @@ pub fn get_mappings() {
|
|||||||
_ => unreachable!(),
|
_ => unreachable!(),
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
let pml4_phys_addr = Cr3::read_raw().0.start_address();
|
|
||||||
log_info!("Page Map Level 4 Address: 0x{:x}", pml4_phys_addr.as_u64());
|
|
||||||
log_info!(
|
log_info!(
|
||||||
"Page-Level Write-Through: {}",
|
"Page-Level Write-Through: {}",
|
||||||
Cr3::read().1.contains(Cr3Flags::PAGE_LEVEL_WRITETHROUGH)
|
Cr3::read().1.contains(Cr3Flags::PAGE_LEVEL_WRITETHROUGH)
|
||||||
@ -42,9 +41,13 @@ pub fn get_mappings() {
|
|||||||
"Page-Level Cache Disable: {}",
|
"Page-Level Cache Disable: {}",
|
||||||
Cr3::read().1.contains(Cr3Flags::PAGE_LEVEL_CACHE_DISABLE)
|
Cr3::read().1.contains(Cr3Flags::PAGE_LEVEL_CACHE_DISABLE)
|
||||||
);
|
);
|
||||||
let pml4: &'static mut PageTable = table_from_phys_addr(pml4_phys_addr);
|
|
||||||
|
|
||||||
iter_table(pml4, 4);
|
if KERNEL_BUILD_PROFILE == "debug" {
|
||||||
|
let pml4_phys_addr = Cr3::read_raw().0.start_address();
|
||||||
|
log_info!("Page Map Level 4 Address: 0x{:x}", pml4_phys_addr.as_u64());
|
||||||
|
let pml4: &'static mut PageTable = table_from_phys_addr(pml4_phys_addr);
|
||||||
|
iter_table(pml4, 4);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn table_from_phys_addr(address: PhysAddr) -> &'static mut PageTable {
|
fn table_from_phys_addr(address: PhysAddr) -> &'static mut PageTable {
|
||||||
|
|||||||
@ -144,7 +144,8 @@ impl SerialPort {
|
|||||||
|
|
||||||
/// Get whether the transmit buffer is empty.
|
/// Get whether the transmit buffer is empty.
|
||||||
pub fn is_transmit_empty(&mut self) -> bool {
|
pub fn is_transmit_empty(&mut self) -> bool {
|
||||||
self.get_line_status().contains(LineStatus::TransmitterEmpty)
|
self.get_line_status()
|
||||||
|
.contains(LineStatus::TransmitterEmpty)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn block_until_transmit_empty(&mut self) {
|
fn block_until_transmit_empty(&mut self) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user