diff --git a/src/arch/aarch64.rs b/src/arch/aarch64.rs index 3a811a0184..106c102b6e 100644 --- a/src/arch/aarch64.rs +++ b/src/arch/aarch64.rs @@ -24,7 +24,7 @@ impl Arch for AArch64Arch { const ENTRY_FLAG_PRESENT: usize = 1 << 0; const ENTRY_FLAG_READONLY: usize = 1 << 7; const ENTRY_FLAG_READWRITE: usize = 0; - const ENTRY_FLAG_USER: usize = 1 << 6; + const ENTRY_FLAG_PAGE_USER: usize = 1 << 6; // This sets both userspace and privileged execute never //TODO: Separate the two? const ENTRY_FLAG_NO_EXEC: usize = 0b11 << 53; diff --git a/src/arch/emulate.rs b/src/arch/emulate.rs index 88a200769a..c44d72a72d 100644 --- a/src/arch/emulate.rs +++ b/src/arch/emulate.rs @@ -20,7 +20,7 @@ impl Arch for EmulateArch { const ENTRY_FLAG_PRESENT: usize = X8664Arch::ENTRY_FLAG_PRESENT; const ENTRY_FLAG_READONLY: usize = X8664Arch::ENTRY_FLAG_READONLY; const ENTRY_FLAG_READWRITE: usize = X8664Arch::ENTRY_FLAG_READWRITE; - const ENTRY_FLAG_USER: usize = X8664Arch::ENTRY_FLAG_USER; + const ENTRY_FLAG_PAGE_USER: usize = X8664Arch::ENTRY_FLAG_PAGE_USER; const ENTRY_FLAG_NO_EXEC: usize = X8664Arch::ENTRY_FLAG_NO_EXEC; const ENTRY_FLAG_EXEC: usize = X8664Arch::ENTRY_FLAG_EXEC; diff --git a/src/arch/mod.rs b/src/arch/mod.rs index f6f5ec9c53..0a3828106d 100644 --- a/src/arch/mod.rs +++ b/src/arch/mod.rs @@ -36,7 +36,8 @@ pub trait Arch: Clone + Copy { const ENTRY_FLAG_PRESENT: usize; const ENTRY_FLAG_READONLY: usize; const ENTRY_FLAG_READWRITE: usize; - const ENTRY_FLAG_USER: usize; + const ENTRY_FLAG_PAGE_USER: usize; // Leaf table user page flag + const ENTRY_FLAG_TABLE_USER: usize = Self::ENTRY_FLAG_PAGE_USER; // Directory user page table flag const ENTRY_FLAG_NO_EXEC: usize; const ENTRY_FLAG_EXEC: usize; const ENTRY_FLAG_GLOBAL: usize; diff --git a/src/arch/riscv64/sv39.rs b/src/arch/riscv64/sv39.rs index 0980428754..72b99a1e27 100644 --- a/src/arch/riscv64/sv39.rs +++ b/src/arch/riscv64/sv39.rs @@ -20,7 +20,8 @@ impl Arch for RiscV64Sv39Arch { const ENTRY_FLAG_PRESENT: usize = 1 << 0; const ENTRY_FLAG_READONLY: usize = 0; const ENTRY_FLAG_READWRITE: usize = 1 << 2; - const ENTRY_FLAG_USER: usize = 1 << 4; + const ENTRY_FLAG_PAGE_USER: usize = 1 << 4; + const ENTRY_FLAG_TABLE_USER: usize = 0; const ENTRY_FLAG_NO_EXEC: usize = 0; const ENTRY_FLAG_EXEC: usize = 1 << 3; const ENTRY_FLAG_GLOBAL: usize = 1 << 5; diff --git a/src/arch/riscv64/sv48.rs b/src/arch/riscv64/sv48.rs index b1142317f0..196aee28e3 100644 --- a/src/arch/riscv64/sv48.rs +++ b/src/arch/riscv64/sv48.rs @@ -20,7 +20,8 @@ impl Arch for RiscV64Sv48Arch { const ENTRY_FLAG_PRESENT: usize = 1 << 0; const ENTRY_FLAG_READONLY: usize = 0; const ENTRY_FLAG_READWRITE: usize = 1 << 2; - const ENTRY_FLAG_USER: usize = 1 << 4; + const ENTRY_FLAG_PAGE_USER: usize = 1 << 4; + const ENTRY_FLAG_TABLE_USER: usize = 0; const ENTRY_FLAG_NO_EXEC: usize = 0; const ENTRY_FLAG_EXEC: usize = 1 << 3; const ENTRY_FLAG_GLOBAL: usize = 1 << 5; diff --git a/src/arch/x86.rs b/src/arch/x86.rs index 8dcd238f3e..176aef175d 100644 --- a/src/arch/x86.rs +++ b/src/arch/x86.rs @@ -17,7 +17,7 @@ impl Arch for X86Arch { const ENTRY_FLAG_PRESENT: usize = 1 << 0; const ENTRY_FLAG_READONLY: usize = 0; const ENTRY_FLAG_READWRITE: usize = 1 << 1; - const ENTRY_FLAG_USER: usize = 1 << 2; + const ENTRY_FLAG_PAGE_USER: usize = 1 << 2; // Not used: const ENTRY_FLAG_HUGE: usize = 1 << 7; const ENTRY_FLAG_GLOBAL: usize = 1 << 8; const ENTRY_FLAG_NO_GLOBAL: usize = 0; diff --git a/src/arch/x86_64.rs b/src/arch/x86_64.rs index 113f66f036..ccde251a7c 100644 --- a/src/arch/x86_64.rs +++ b/src/arch/x86_64.rs @@ -16,7 +16,7 @@ impl Arch for X8664Arch { const ENTRY_FLAG_PRESENT: usize = 1 << 0; const ENTRY_FLAG_READONLY: usize = 0; const ENTRY_FLAG_READWRITE: usize = 1 << 1; - const ENTRY_FLAG_USER: usize = 1 << 2; + const ENTRY_FLAG_PAGE_USER: usize = 1 << 2; // Not used: const ENTRY_FLAG_HUGE: usize = 1 << 7; const ENTRY_FLAG_GLOBAL: usize = 1 << 8; const ENTRY_FLAG_NO_GLOBAL: usize = 0; diff --git a/src/page/flags.rs b/src/page/flags.rs index bffe12643e..ca03d1ce0f 100644 --- a/src/page/flags.rs +++ b/src/page/flags.rs @@ -72,12 +72,12 @@ impl PageFlags { #[must_use] #[inline(always)] pub fn user(self, value: bool) -> Self { - self.custom_flag(A::ENTRY_FLAG_USER, value) + self.custom_flag(A::ENTRY_FLAG_PAGE_USER, value) } #[inline(always)] pub fn has_user(&self) -> bool { - self.has_flag(A::ENTRY_FLAG_USER) + self.has_flag(A::ENTRY_FLAG_PAGE_USER) } #[must_use] diff --git a/src/page/mapper.rs b/src/page/mapper.rs index 28bea52791..5d2584ee63 100644 --- a/src/page/mapper.rs +++ b/src/page/mapper.rs @@ -123,7 +123,7 @@ impl PageMapper { let flags = A::ENTRY_FLAG_READWRITE | A::ENTRY_FLAG_DEFAULT_TABLE | if virt.kind() == TableKind::User { - A::ENTRY_FLAG_USER + A::ENTRY_FLAG_TABLE_USER } else { 0 };