- Timestamp:
- May 25, 2015 3:51:11 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 100585
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp
r56048 r56063 5 5 6 6 /* 7 * Copyright (C) 2006-201 3Oracle Corporation7 * Copyright (C) 2006-2015 Oracle Corporation 8 8 * 9 9 * This file is part of VirtualBox Open Source Edition (OSE), as … … 16 16 */ 17 17 18 //#define IOM_USE_IEM_FOR_MMIO 18 19 19 20 /******************************************************************************* … … 29 30 #include <VBox/vmm/pgm.h> 30 31 #include <VBox/vmm/trpm.h> 31 #if defined(I EM_VERIFICATION_MODE) && defined(IN_RING3)32 #if defined(IOM_USE_IEM_FOR_MMIO) || (defined(IEM_VERIFICATION_MODE) && defined(IN_RING3)) 32 33 # include <VBox/vmm/iem.h> 33 34 #endif … … 572 573 573 574 575 #ifndef IOM_USE_IEM_FOR_MMIO 576 574 577 /** 575 578 * MOV reg, mem (read) … … 666 669 return rc; 667 670 } 671 672 #endif /* !IOM_USE_IEM_FOR_MMIO */ 668 673 669 674 … … 965 970 } 966 971 972 973 #ifndef IOM_USE_IEM_FOR_MMIO 967 974 968 975 /** … … 1497 1504 } 1498 1505 1506 #endif /* !IOM_USE_IEM_FOR_MMIO */ 1499 1507 1500 1508 /** … … 1510 1518 * @param pvUser Pointer to the MMIO ring-3 range entry. 1511 1519 */ 1512 static intiomMMIOHandler(PVM pVM, PVMCPU pVCpu, uint32_t uErrorCode, PCPUMCTXCORE pCtxCore, RTGCPHYS GCPhysFault, void *pvUser)1520 static VBOXSTRICTRC iomMMIOHandler(PVM pVM, PVMCPU pVCpu, uint32_t uErrorCode, PCPUMCTXCORE pCtxCore, RTGCPHYS GCPhysFault, void *pvUser) 1513 1521 { 1514 1522 int rc = IOM_LOCK_SHARED(pVM); … … 1585 1593 return rc; 1586 1594 } 1595 1596 #ifdef IOM_USE_IEM_FOR_MMIO 1597 1598 /* 1599 * Let IEM call us back via iomMmioHandler. 1600 */ 1601 VBOXSTRICTRC rcStrict = IEMExecOne(pVCpu); 1602 1603 STAM_PROFILE_STOP(&pVM->iom.s.StatRZMMIOHandler, a); 1604 PDMCritSectLeave(pDevIns->CTX_SUFF(pCritSectRo)); 1605 iomMmioReleaseRange(pVM, pRange); 1606 return rcStrict; 1607 1608 #else 1587 1609 1588 1610 /* … … 1617 1639 1618 1640 1619 # ifdef IOM_WITH_MOVS_SUPPORT1641 # ifdef IOM_WITH_MOVS_SUPPORT 1620 1642 case OP_MOVSB: 1621 1643 case OP_MOVSWD: … … 1632 1654 break; 1633 1655 } 1634 # endif1656 # endif 1635 1657 1636 1658 case OP_STOSB: … … 1713 1735 { 1714 1736 STAM_COUNTER_INC(&pVM->iom.s.StatRZMMIOFailures); 1715 # if defined(VBOX_WITH_STATISTICS) && !defined(IN_RING3)1737 # if defined(VBOX_WITH_STATISTICS) && !defined(IN_RING3) 1716 1738 switch (rc) 1717 1739 { … … 1724 1746 break; 1725 1747 } 1726 # endif1748 # endif 1727 1749 } 1728 1750 … … 1731 1753 iomMmioReleaseRange(pVM, pRange); 1732 1754 return rc; 1755 #endif /* !IOM_USE_IEM_FOR_MMIO */ 1733 1756 } 1734 1757
Note:
See TracChangeset
for help on using the changeset viewer.