vbox的更動 3184 路徑 trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp
- 時間撮記:
- 2007-6-20 下午01:40:16 (17 年 以前)
- 檔案:
-
- 修改 1 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp
r3180 r3184 1597 1597 * @remark Assumes caller checked the access privileges (IOMInterpretCheckPortIOAccess) 1598 1598 * 1599 * @returns Strict VBox status code. Informational status codes other than the one documented 1599 * @returns Strict VBox status code. Informational status codes other than the one documented 1600 1600 * here are to be treated as internal failure. Use IOM_SUCCESS() to check for success. 1601 1601 * @retval VINF_SUCCESS Success. 1602 * @retval VINF_EM_FIRST-VINF_EM_LAST Success with some exceptions (see IOM_SUCCESS()), the 1602 * @retval VINF_EM_FIRST-VINF_EM_LAST Success with some exceptions (see IOM_SUCCESS()), the 1603 1603 * status code must be passed on to EM. 1604 1604 * @retval VINF_IOM_HC_IOPORT_READ Defer the read to ring-3. (R0/GC only) 1605 * @retval VINF_EM_RAW_EMULATE_INSTR Defer the read to the REM. 1605 1606 * @retval VINF_EM_RAW_GUEST_TRAP The exception was left pending. (TRPMRaiseXcptErr) 1606 1607 * @retval VINF_TRPM_XCPT_DISPATCHED The exception was raised and dispatched for raw-mode execution. (TRPMRaiseXcptErr) … … 1625 1626 if ( (uPrefix & PREFIX_REPNE) 1626 1627 || pRegFrame->eflags.Bits.u1DF) 1627 return VINF_EM_R ESCHEDULE_REM;1628 return VINF_EM_RAW_EMULATE_INSTR; 1628 1629 1629 1630 /* … … 1644 1645 /* Convert destination address es:edi. */ 1645 1646 RTGCPTR GCPtrDst; 1646 int rc = SELMToFlatEx(pVM, pRegFrame->eflags, pRegFrame->es, (RTGCPTR)pRegFrame->edi, &pRegFrame->esHid, 1647 int rc = SELMToFlatEx(pVM, pRegFrame->eflags, pRegFrame->es, (RTGCPTR)pRegFrame->edi, &pRegFrame->esHid, 1647 1648 SELMTOFLAT_FLAGS_HYPER | SELMTOFLAT_FLAGS_NO_PL, 1648 1649 &GCPtrDst, NULL); … … 1650 1651 { 1651 1652 Log(("INS destination address conversion failed -> fallback, rc=%d\n", rc)); 1652 return VINF_EM_R ESCHEDULE_REM;1653 return VINF_EM_RAW_EMULATE_INSTR; 1653 1654 } 1654 1655 … … 1661 1662 { 1662 1663 Log(("INS will generate a trap -> fallback, rc=%d\n", rc)); 1663 return VINF_EM_R ESCHEDULE_REM;1664 return VINF_EM_RAW_EMULATE_INSTR; 1664 1665 } 1665 1666 … … 1708 1709 * ES:EDI,DX[,ECX] 1709 1710 * 1710 * @returns Strict VBox status code. Informational status codes other than the one documented 1711 * @returns Strict VBox status code. Informational status codes other than the one documented 1711 1712 * here are to be treated as internal failure. Use IOM_SUCCESS() to check for success. 1712 1713 * @retval VINF_SUCCESS Success. 1713 * @retval VINF_EM_FIRST-VINF_EM_LAST Success with some exceptions (see IOM_SUCCESS()), the 1714 * @retval VINF_EM_FIRST-VINF_EM_LAST Success with some exceptions (see IOM_SUCCESS()), the 1714 1715 * status code must be passed on to EM. 1715 1716 * @retval VINF_IOM_HC_IOPORT_READ Defer the read to ring-3. (R0/GC only) 1717 * @retval VINF_EM_RAW_EMULATE_INSTR Defer the read to the REM. 1716 1718 * @retval VINF_EM_RAW_GUEST_TRAP The exception was left pending. (TRPMRaiseXcptErr) 1717 1719 * @retval VINF_TRPM_XCPT_DISPATCHED The exception was raised and dispatched for raw-mode execution. (TRPMRaiseXcptErr) … … 1752 1754 * @remark Assumes caller checked the access privileges (IOMInterpretCheckPortIOAccess) 1753 1755 * 1754 * @returns Strict VBox status code. Informational status codes other than the one documented 1756 * @returns Strict VBox status code. Informational status codes other than the one documented 1755 1757 * here are to be treated as internal failure. Use IOM_SUCCESS() to check for success. 1756 1758 * @retval VINF_SUCCESS Success. 1757 * @retval VINF_EM_FIRST-VINF_EM_LAST Success with some exceptions (see IOM_SUCCESS()), the 1759 * @retval VINF_EM_FIRST-VINF_EM_LAST Success with some exceptions (see IOM_SUCCESS()), the 1758 1760 * status code must be passed on to EM. 1759 1761 * @retval VINF_IOM_HC_IOPORT_WRITE Defer the write to ring-3. (R0/GC only) … … 1780 1782 if ( (uPrefix & (PREFIX_SEG | PREFIX_REPNE)) 1781 1783 || pRegFrame->eflags.Bits.u1DF) 1782 return VINF_EM_R ESCHEDULE_REM;1784 return VINF_EM_RAW_EMULATE_INSTR; 1783 1785 1784 1786 /* … … 1804 1806 { 1805 1807 Log(("OUTS source address conversion failed -> fallback, rc=%Vrc\n", rc)); 1806 return VINF_EM_R ESCHEDULE_REM;1808 return VINF_EM_RAW_EMULATE_INSTR; 1807 1809 } 1808 1810 … … 1814 1816 { 1815 1817 Log(("OUTS will generate a trap -> fallback, rc=%Vrc\n", rc)); 1816 return VINF_EM_R ESCHEDULE_REM;1818 return VINF_EM_RAW_EMULATE_INSTR; 1817 1819 } 1818 1820 … … 1865 1867 * DS:ESI,DX[,ECX] 1866 1868 * 1867 * @returns Strict VBox status code. Informational status codes other than the one documented 1869 * @returns Strict VBox status code. Informational status codes other than the one documented 1868 1870 * here are to be treated as internal failure. Use IOM_SUCCESS() to check for success. 1869 1871 * @retval VINF_SUCCESS Success. 1870 * @retval VINF_EM_FIRST-VINF_EM_LAST Success with some exceptions (see IOM_SUCCESS()), the 1872 * @retval VINF_EM_FIRST-VINF_EM_LAST Success with some exceptions (see IOM_SUCCESS()), the 1871 1873 * status code must be passed on to EM. 1872 1874 * @retval VINF_IOM_HC_IOPORT_WRITE Defer the write to ring-3. (R0/GC only) 1875 * @retval VINF_EM_RAW_EMULATE_INSTR Defer the write to the REM. 1873 1876 * @retval VINF_EM_RAW_GUEST_TRAP The exception was left pending. (TRPMRaiseXcptErr) 1874 1877 * @retval VINF_TRPM_XCPT_DISPATCHED The exception was raised and dispatched for raw-mode execution. (TRPMRaiseXcptErr)
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器