]> Projects (at) Tadryanom (dot) Me - AdrOS.git/commit
feat: PAE paging + NX bit support
authorTulio A M Mendes <[email protected]>
Wed, 11 Feb 2026 23:21:00 +0000 (20:21 -0300)
committerTulio A M Mendes <[email protected]>
Fri, 13 Feb 2026 02:20:50 +0000 (23:20 -0300)
commitbb1b61759fa423f76c9f17f6bb26057547f091dc
tree034c8a17a57d99b7695f5bfef9f47b4f94dca942
parent958386d7402b8992b2834bd6d6e5287832d059f0
feat: PAE paging + NX bit support

- src/arch/x86/boot.S: complete rewrite for PAE 3-level page tables
  PDPT (4 entries) + 4 PDs (512 entries each) + 8 PTs covering 16MB
  CR4.PAE enabled before paging, recursive mapping via PD[3][508-511]
- src/arch/x86/vmm.c: complete rewrite for 64-bit PAE entries
  New recursive mapping accessors (PD at 0xFFFFC000, PT at 0xFF800000)
  NX bit support (bit 63), VMM_FLAG_NX added
  All address space ops updated: create, clone, destroy, CoW, fault handler
- src/arch/x86/ap_trampoline.S: enable CR4.PAE before paging for APs
- src/arch/x86/elf.c: updated page table check to PAE 64-bit entries
- src/arch/x86/uaccess.c: updated page present/writable checks for PAE
- include/vmm.h: added VMM_FLAG_NX define
- cppcheck clean, 19/19 smoke tests pass
include/vmm.h
src/arch/x86/ap_trampoline.S
src/arch/x86/boot.S
src/arch/x86/elf.c
src/arch/x86/uaccess.c
src/arch/x86/vmm.c