- Timestamp:
- Sep 23, 2008 10:33:35 AM (16 years ago)
- Location:
- trunk/src/VBox/VMM/VMMR0
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp
r12625 r12664 47 47 48 48 static int SVMR0InterpretInvpg(PVM pVM, PCPUMCTXCORE pRegFrame, uint32_t uASID); 49 50 /* IO operation lookup arrays. */ 51 static uint32_t aIOSize[4] = {1, 2, 0, 4}; 49 52 50 53 /** … … 1861 1864 for (unsigned i=0;i<4;i++) 1862 1865 { 1863 if ( pCtx->dr[i] == IoExitInfo.n.u16Port 1866 unsigned uBPLen = aIOSize[X86_DR7_GET_LEN(pCtx->dr[7], i)]; 1867 1868 if ( (IoExitInfo.n.u16Port >= pCtx->dr[i] && IoExitInfo.n.u16Port <= pCtx->dr[i] + uBPLen) 1864 1869 && (pCtx->dr[7] & (X86_DR7_L(i) | X86_DR7_G(i))) 1865 1870 && (pCtx->dr[7] & X86_DR7_RW(i, X86_DR7_RW_IO)) == X86_DR7_RW(i, X86_DR7_RW_IO)) -
trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
r12625 r12664 2174 2174 for (unsigned i=0;i<4;i++) 2175 2175 { 2176 if ( pCtx->dr[i] == uPort 2176 unsigned uBPLen = aIOSize[X86_DR7_GET_LEN(pCtx->dr[7], i)]; 2177 2178 if ( (uPort >= pCtx->dr[i] && uPort <= pCtx->dr[i] + uBPLen) 2177 2179 && (pCtx->dr[7] & (X86_DR7_L(i) | X86_DR7_G(i))) 2178 2180 && (pCtx->dr[7] & X86_DR7_RW(i, X86_DR7_RW_IO)) == X86_DR7_RW(i, X86_DR7_RW_IO))
Note:
See TracChangeset
for help on using the changeset viewer.