diff --git a/src/arch/aarch64/rmm.rs b/src/arch/aarch64/rmm.rs index 059cc1fe49f16444e30ac5d6d51c78744c40ab06..5af88af91fe5aa07fc34f5001fdb93dbcc31c6f7 100644 --- a/src/arch/aarch64/rmm.rs +++ b/src/arch/aarch64/rmm.rs @@ -57,18 +57,14 @@ pub struct BootloaderMemoryEntry { unsafe fn page_flags<A: Arch>(virt: VirtualAddress) -> PageFlags<A> { let virt_addr = virt.data(); - // Test for being inside a region - macro_rules! in_section { - ($n: ident) => { - virt_addr >= &concat_idents!(__, $n, _start) as *const u8 as usize - && virt_addr < &concat_idents!(__, $n, _end) as *const u8 as usize - }; - } - - if in_section!(text) { + if virt_addr >= &__text_start as *const u8 as usize + && virt_addr < &__text_end as *const u8 as usize + { // Remap text read-only, execute PageFlags::new().execute(true) - } else if in_section!(rodata) { + } else if virt_addr >= &__rodata_start as *const u8 as usize + && virt_addr < &__rodata_end as *const u8 as usize + { // Remap rodata read-only, no execute PageFlags::new() } else { diff --git a/src/arch/x86/rmm.rs b/src/arch/x86/rmm.rs index 4593c15977b621d73c3dafcade92557f1bfbec5f..4c635aaeacab9a030e5cf759b57876b0f06b7fc6 100644 --- a/src/arch/x86/rmm.rs +++ b/src/arch/x86/rmm.rs @@ -58,18 +58,14 @@ pub struct BootloaderMemoryEntry { unsafe fn page_flags<A: Arch>(virt: VirtualAddress) -> PageFlags<A> { let virt_addr = virt.data(); - // Test for being inside a region - macro_rules! in_section { - ($n: ident) => { - virt_addr >= &concat_idents!(__, $n, _start) as *const u8 as usize - && virt_addr < &concat_idents!(__, $n, _end) as *const u8 as usize - }; - } - - if in_section!(text) { + if virt_addr >= &__text_start as *const u8 as usize + && virt_addr < &__text_end as *const u8 as usize + { // Remap text read-only, execute PageFlags::new().execute(true) - } else if in_section!(rodata) { + } else if virt_addr >= &__rodata_start as *const u8 as usize + && virt_addr < &__rodata_end as *const u8 as usize + { // Remap rodata read-only, no execute PageFlags::new() } else { diff --git a/src/lib.rs b/src/lib.rs index d5d9e9cabccd073e273bb450925e25656312e428..55c27329fbb2fadb2a14327864608083b7bd36e9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -48,7 +48,6 @@ #![feature(array_chunks)] #![feature(iter_array_chunks)] #![feature(asm_const)] // TODO: Relax requirements of most asm invocations -#![feature(concat_idents)] #![feature(core_intrinsics)] #![feature(int_roundings)] #![feature(naked_functions)]