Changeset 2010 in vbox for trunk/src/VBox
- Timestamp:
- Apr 10, 2007 2:40:25 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/EMAll.cpp
r2005 r2010 1603 1603 static int emInterpretMonitor(PVM pVM, PDISCPUSTATE pCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, uint32_t *pcbSize) 1604 1604 { 1605 uint32_t u32Dummy, u32ExtFeatures, cpl; 1606 1605 1607 if (pRegFrame->ecx != 0) 1606 1608 return VERR_EM_INTERPRETER; /* illegal value. */ 1607 1609 1608 1610 /* Get the current privilege level. */ 1609 uint32_tcpl = CPUMGetGuestCPL(pVM, pRegFrame);1611 cpl = CPUMGetGuestCPL(pVM, pRegFrame); 1610 1612 if (cpl != 0) 1611 1613 return VERR_EM_INTERPRETER; /* supervisor only */ 1612 1614 1615 CPUMGetGuestCpuId(pVM, 1, &u32Dummy, &u32Dummy, &u32ExtFeatures, &u32Dummy); 1616 if (!(u32ExtFeatures & X86_CPUID_FEATURE_ECX_MONITOR)) 1617 return VERR_EM_INTERPRETER; /* not supported */ 1618 1613 1619 return VINF_SUCCESS; 1614 1620 } … … 1620 1626 static int emInterpretMWait(PVM pVM, PDISCPUSTATE pCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, uint32_t *pcbSize) 1621 1627 { 1628 uint32_t u32Dummy, u32ExtFeatures, cpl; 1629 1622 1630 if (pRegFrame->ecx != 0) 1623 1631 return VERR_EM_INTERPRETER; /* illegal value. */ 1624 1632 1625 1633 /* Get the current privilege level. */ 1626 uint32_tcpl = CPUMGetGuestCPL(pVM, pRegFrame);1634 cpl = CPUMGetGuestCPL(pVM, pRegFrame); 1627 1635 if (cpl != 0) 1628 1636 return VERR_EM_INTERPRETER; /* supervisor only */ 1637 1638 CPUMGetGuestCpuId(pVM, 1, &u32Dummy, &u32Dummy, &u32ExtFeatures, &u32Dummy); 1639 if (!(u32ExtFeatures & X86_CPUID_FEATURE_ECX_MONITOR)) 1640 return VERR_EM_INTERPRETER; /* not supported */ 1629 1641 1630 1642 /** @todo not completely correct */
Note:
See TracChangeset
for help on using the changeset viewer.