Changeset 60777 in vbox for trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-PagingProtect.c
- Timestamp:
- May 2, 2016 8:36:54 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-PagingProtect.c
r60686 r60777 32 32 #include <iprt/asm-amd64-x86.h> 33 33 #include <iprt/param.h> 34 34 bs3kit.h 35 35 36 36 /********************************************************************************************************************************* … … 114 114 if (pPT) 115 115 { 116 pPD->a[iPde].u = Bs3SelPtrToFlat(pPT) 117 | (pPD->a[iPde].u & ~(uint32_t)(X86_PTE_PG_MASK | X86_PDE4M_PS | X86_PDE4M_G | X86_PDE4M_D)); 116 ASMAtomicUoWriteU32(&pPD->a[iPde].u, 117 Bs3SelPtrToFlat(pPT) 118 | ( pPD->a[iPde].u 119 & ~(uint32_t)(X86_PTE_PG_MASK | X86_PDE4M_PS | X86_PDE4M_G | X86_PDE4M_D))); 118 120 BS3PAGING_DPRINTF2(("bs3PagingGetLegacyPte: iPde=%#x: %#RX32\n", iPde, pPD->a[iPde].u)); 119 121 if (fUseInvlPg) … … 181 183 if (pPD) 182 184 { 183 pPdpt->a[iPdpte].u = Bs3SelPtrToFlat(pPD) 184 | ( pPdpt->a[iPdpte].u 185 & ~(uint64_t)(X86_PDPE_PG_MASK | X86_PDE4M_PS | X86_PDE4M_G | X86_PDE4M_D)); 185 ASMAtomicUoWriteU64(&pPdpt->a[iPdpte].u, 186 Bs3SelPtrToFlat(pPD) 187 | ( pPdpt->a[iPdpte].u 188 & ~(uint64_t)(X86_PDPE_PG_MASK | X86_PDE4M_PS | X86_PDE4M_G | X86_PDE4M_D))); 186 189 if (fUseInvlPg) 187 190 ASMInvalidatePage(uFlat); … … 233 236 if (pPT) 234 237 { 235 pPD->a[iPde].u = Bs3SelPtrToFlat(pPT) 236 | (pPD->a[iPde].u & ~(uint64_t)(X86_PTE_PAE_PG_MASK | X86_PDE4M_PS | X86_PDE4M_G | X86_PDE4M_D)); 238 ASMAtomicUoWriteU64(&pPD->a[iPde].u, 239 Bs3SelPtrToFlat(pPT) 240 | ( pPD->a[iPde].u 241 & ~(uint64_t)(X86_PTE_PAE_PG_MASK | X86_PDE4M_PS | X86_PDE4M_G | X86_PDE4M_D))); 237 242 if (fUseInvlPg) 238 243 ASMInvalidatePage(uFlat);
Note:
See TracChangeset
for help on using the changeset viewer.