]> 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)
commit3b1cf30cfcc48d5209687acaefc5eb34be3494fc
tree9283eed9257e2804da3746875d0b539724b143dc
parent65dad3bea6f039ff578e9f9bf04db929c2c42adb
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