diff --git a/src/arch/x86/mod.rs b/src/arch/x86/mod.rs index d2953396a2..d437ed1b2e 100644 --- a/src/arch/x86/mod.rs +++ b/src/arch/x86/mod.rs @@ -16,8 +16,6 @@ pub mod interrupt; /// Paging pub mod paging; -pub mod rmm; - pub use ::rmm::X86Arch as CurrentRmmArch; // Flags diff --git a/src/arch/x86/rmm.rs b/src/arch/x86/rmm.rs deleted file mode 100644 index 453382c44c..0000000000 --- a/src/arch/x86/rmm.rs +++ /dev/null @@ -1,17 +0,0 @@ -use rmm::{Arch, PageFlags, VirtualAddress}; - -pub unsafe fn page_flags(virt: VirtualAddress) -> PageFlags { - use crate::kernel_executable_offsets::*; - let virt_addr = virt.data(); - - if virt_addr >= __text_start() && virt_addr < __text_end() { - // Remap text read-only, execute - PageFlags::new().execute(true) - } else if virt_addr >= __rodata_start() && virt_addr < __rodata_end() { - // Remap rodata read-only, no execute - PageFlags::new() - } else { - // Remap everything else read-write, no execute - PageFlags::new().write(true) - } -} diff --git a/src/arch/x86_64/mod.rs b/src/arch/x86_64/mod.rs index 1ef5be50cb..7e102aee62 100644 --- a/src/arch/x86_64/mod.rs +++ b/src/arch/x86_64/mod.rs @@ -24,8 +24,6 @@ pub mod misc; /// Paging pub mod paging; -pub mod rmm; - pub use ::rmm::X8664Arch as CurrentRmmArch; // Flags diff --git a/src/arch/x86_shared/mod.rs b/src/arch/x86_shared/mod.rs index 181d49794e..bbc7f5f21d 100644 --- a/src/arch/x86_shared/mod.rs +++ b/src/arch/x86_shared/mod.rs @@ -20,6 +20,8 @@ pub mod ipi; /// Page table isolation pub mod pti; +pub mod rmm; + /// Initialization and start function pub mod start; diff --git a/src/arch/x86_64/rmm.rs b/src/arch/x86_shared/rmm.rs similarity index 89% rename from src/arch/x86_64/rmm.rs rename to src/arch/x86_shared/rmm.rs index 9d78a2f9f5..7516603a25 100644 --- a/src/arch/x86_64/rmm.rs +++ b/src/arch/x86_shared/rmm.rs @@ -14,5 +14,5 @@ pub unsafe fn page_flags(virt: VirtualAddress) -> PageFlags { // Remap everything else read-write, no execute PageFlags::new().write(true) }) - .global(cfg!(not(feature = "pti"))) + .global(cfg!(all(target_arch = "x86_64", not(feature = "pti")))) }