Changeset 7666 in vbox
- Timestamp:
- Mar 31, 2008 3:02:43 PM (17 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/x86.h
r7660 r7666 899 899 #define X86_PTE_PG_MASK ( 0xfffff000 ) 900 900 901 /** Bits 12- 51- - PAE - Physical Page number of the next level. */901 /** Bits 12-36 - - PAE - Physical Page number of the next level. */ 902 902 #if 1 /* we're using this internally and have to mask of the top 16-bit. */ 903 903 #define X86_PTE_PAE_PG_MASK ( 0x0000fffffffff000ULL ) … … 1210 1210 #define X86_PDE4M_PG_HIGH_SHIFT 19 1211 1211 1212 /** Bits 21-36 - - PAE - Physical Page number. */ 1213 #define X86_PDE2M_PAE_PG_MASK ( 0x0000000fffe00000ULL ) 1214 /** Bits 63 - NX - PAE - No execution flag. */ 1215 #define X86_PDE2M_PAE_NX RT_BIT_64(63) 1216 1217 /** Bits 21-39 - - AMD64 - Physical Page number. (bits 40-51 are reserved) */ 1218 #define X86_PDE2M_AMD64_PG_MASK ( 0x000000ffffe00000ULL ) 1219 /** Bits 63 - NX - AMD64 - No execution flag. */ 1220 #define X86_PDE2M_AMD64_NX X86_PDE2M_PAE_NX 1212 /** Bits 21-51 - - PAE & AMD64 - Physical Page number. (bits 40-51 (long mode) & bits 36-51 (pae legacy) are reserved according to the Intel docs; AMD allows for more) */ 1213 #define X86_PDE2M_PAE_PG_MASK ( 0x000fffffffe00000ULL ) 1214 /** Bits 63 - NX - PAE & AMD64 - No execution flag. */ 1215 #define X86_PDE2M_PAE_NX X86_PDE2M_PAE_NX 1221 1216 1222 1217 /** -
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r7664 r7666 864 864 PPGMPOOLPAGE pShwPage = pgmPoolGetPageByHCPhys(pVM, PdeDst.u & SHW_PDE_PG_MASK); 865 865 RTGCPHYS GCPhys = PdeSrc.u & GST_PDE_PG_MASK; 866 # if PGM_SHW_TYPE != PGM_TYPE_32BIT 866 # if PGM_SHW_TYPE != PGM_TYPE_32BIT \ 867 && PGM_GST_TYPE == PGM_TYPE_32BIT 868 /* Select the right PDE as we're emulating a 4kb page table with 2 shadow page tables. */ 867 869 GCPhys |= (iPDDst & 1) * (PAGE_SIZE/2); 868 870 # endif … … 1269 1271 { 1270 1272 GCPhys = PdeSrc.u & GST_PDE_PG_MASK; 1271 # if PGM_SHW_TYPE != PGM_TYPE_32BIT 1273 # if PGM_SHW_TYPE != PGM_TYPE_32BIT \ 1274 && PGM_GST_TYPE == PGM_TYPE_32BIT 1275 /* Select the right PDE as we're emulating a 4kb page table with 2 shadow page tables. */ 1276 /* Select the right PDE as we're emulating a 4kb page table with 2 shadow page tables. */ 1272 1277 GCPhys |= (iPDDst & 1) * (PAGE_SIZE/2); 1273 1278 # endif … … 1278 1283 # if PGM_SHW_TYPE != PGM_TYPE_32BIT \ 1279 1284 && PGM_GST_TYPE == PGM_TYPE_32BIT 1280 /* Select the right PDE as we're emulating a 4MB page with two 2 MB shadow PDEs */1285 /* Select the right PDE as we're emulating a 4MB page directory with two 2 MB shadow PDEs */ 1281 1286 GCPhys |= GCPtrPage & (1 << X86_PD_PAE_SHIFT); 1282 1287 # endif -
trunk/src/VBox/VMM/VMMAll/PGMAllGst.h
r7660 r7666 62 62 # define GST_PT_MASK X86_PT_MASK 63 63 # define GST_CR3_PAGE_MASK X86_CR3_PAGE_MASK 64 #elif PGM_GST_TYPE == PGM_TYPE_PAE 64 #elif PGM_GST_TYPE == PGM_TYPE_PAE \ 65 || PGM_GST_TYPE == PGM_TYPE_AMD64 65 66 # define GSTPT X86PTPAE 66 67 # define PGSTPT PX86PTPAE … … 78 79 # define GST_PD_MASK X86_PD_PAE_MASK 79 80 # define GST_TOTAL_PD_ENTRIES (X86_PG_PAE_ENTRIES*4) 80 # define GST_PTE_PG_MASK X86_PTE_PAE_PG_MASK81 # define GST_PT_SHIFT X86_PT_PAE_SHIFT82 # define GST_PT_MASK X86_PT_PAE_MASK83 # define GST_CR3_PAGE_MASK X86_CR3_PAE_PAGE_MASK84 #elif PGM_GST_TYPE == PGM_TYPE_AMD6485 /* @todo */86 # define GSTPT X86PTPAE87 # define PGSTPT PX86PTPAE88 # define GSTPTE X86PTEPAE89 # define PGSTPTE PX86PTEPAE90 # define GSTPD X86PDPAE91 # define PGSTPD PX86PDPAE92 # define GSTPDE X86PDEPAE93 # define PGSTPDE PX86PDEPAE94 # define GST_BIG_PAGE_SIZE X86_PAGE_2M_SIZE95 # define GST_BIG_PAGE_OFFSET_MASK X86_PAGE_2M_OFFSET_MASK96 # define GST_PDE_PG_MASK X86_PDE_PAE_PG_MASK97 # define GST_PDE_BIG_PG_MASK X86_PDE2M_AMD64_PG_MASK98 # define GST_PD_SHIFT X86_PD_PAE_SHIFT99 # define GST_PD_MASK X86_PD_PAE_MASK100 # define GST_TOTAL_PD_ENTRIES (X86_PG_PAE_ENTRIES*512)101 81 # define GST_PTE_PG_MASK X86_PTE_PAE_PG_MASK 102 82 # define GST_PT_SHIFT X86_PT_PAE_SHIFT
Note:
See TracChangeset
for help on using the changeset viewer.