Changeset 12989 in vbox for trunk/include/VBox/em.h
- Timestamp:
- Oct 6, 2008 2:15:39 AM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 37424
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/em.h
r12688 r12989 78 78 } EMSTATE; 79 79 80 EMDECL(EMSTATE) EMGetState(PVM pVM);80 VMMDECL(EMSTATE) EMGetState(PVM pVM); 81 81 82 82 /** @name Callback handlers for instruction emulation functions. … … 115 115 #define EMIsRawRing0Enabled(pVM) ((pVM)->fRawR0Enabled) 116 116 117 EMDECL(void)EMSetInhibitInterruptsPC(PVM pVM, RTGCUINTPTR PC);118 EMDECL(RTGCUINTPTR) EMGetInhibitInterruptsPC(PVM pVM);119 EMDECL(int)EMInterpretDisasOne(PVM pVM, PCCPUMCTXCORE pCtxCore, PDISCPUSTATE pCpu, unsigned *pcbInstr);120 EMDECL(int)EMInterpretDisasOneEx(PVM pVM, RTGCUINTPTR GCPtrInstr, PCCPUMCTXCORE pCtxCore,121 122 EMDECL(int)EMInterpretInstruction(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, uint32_t *pcbSize);123 EMDECL(int)EMInterpretInstructionCPU(PVM pVM, PDISCPUSTATE pCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, uint32_t *pcbSize);124 EMDECL(int)EMInterpretCpuId(PVM pVM, PCPUMCTXCORE pRegFrame);125 EMDECL(int)EMInterpretRdtsc(PVM pVM, PCPUMCTXCORE pRegFrame);126 EMDECL(int)EMInterpretInvlpg(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPTR pAddrGC);127 EMDECL(int)EMInterpretIret(PVM pVM, PCPUMCTXCORE pRegFrame);128 EMDECL(int)EMInterpretDRxWrite(PVM pVM, PCPUMCTXCORE pRegFrame, uint32_t DestRegDrx, uint32_t SrcRegGen);129 EMDECL(int)EMInterpretDRxRead(PVM pVM, PCPUMCTXCORE pRegFrame, uint32_t DestRegGen, uint32_t SrcRegDrx);130 EMDECL(int)EMInterpretCRxWrite(PVM pVM, PCPUMCTXCORE pRegFrame, uint32_t DestRegCrx, uint32_t SrcRegGen);131 EMDECL(int)EMInterpretCRxRead(PVM pVM, PCPUMCTXCORE pRegFrame, uint32_t DestRegGen, uint32_t SrcRegCrx);132 EMDECL(int)EMInterpretLMSW(PVM pVM, uint16_t u16Data);133 EMDECL(int)EMInterpretCLTS(PVM pVM);134 EMDECL(int)EMInterpretPortIO(PVM pVM, PCPUMCTXCORE pCtxCore, PDISCPUSTATE pCpu, uint32_t cbOp);135 EMDECL(int)EMInterpretRdmsr(PVM pVM, PCPUMCTXCORE pRegFrame);136 EMDECL(int)EMInterpretWrmsr(PVM pVM, PCPUMCTXCORE pRegFrame);137 EMDECL(void)EMFlushREMTBs(PVM pVM);117 VMMDECL(void) EMSetInhibitInterruptsPC(PVM pVM, RTGCUINTPTR PC); 118 VMMDECL(RTGCUINTPTR) EMGetInhibitInterruptsPC(PVM pVM); 119 VMMDECL(int) EMInterpretDisasOne(PVM pVM, PCCPUMCTXCORE pCtxCore, PDISCPUSTATE pCpu, unsigned *pcbInstr); 120 VMMDECL(int) EMInterpretDisasOneEx(PVM pVM, RTGCUINTPTR GCPtrInstr, PCCPUMCTXCORE pCtxCore, 121 PDISCPUSTATE pCpu, unsigned *pcbInstr); 122 VMMDECL(int) EMInterpretInstruction(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, uint32_t *pcbSize); 123 VMMDECL(int) EMInterpretInstructionCPU(PVM pVM, PDISCPUSTATE pCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, uint32_t *pcbSize); 124 VMMDECL(int) EMInterpretCpuId(PVM pVM, PCPUMCTXCORE pRegFrame); 125 VMMDECL(int) EMInterpretRdtsc(PVM pVM, PCPUMCTXCORE pRegFrame); 126 VMMDECL(int) EMInterpretInvlpg(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPTR pAddrGC); 127 VMMDECL(int) EMInterpretIret(PVM pVM, PCPUMCTXCORE pRegFrame); 128 VMMDECL(int) EMInterpretDRxWrite(PVM pVM, PCPUMCTXCORE pRegFrame, uint32_t DestRegDrx, uint32_t SrcRegGen); 129 VMMDECL(int) EMInterpretDRxRead(PVM pVM, PCPUMCTXCORE pRegFrame, uint32_t DestRegGen, uint32_t SrcRegDrx); 130 VMMDECL(int) EMInterpretCRxWrite(PVM pVM, PCPUMCTXCORE pRegFrame, uint32_t DestRegCrx, uint32_t SrcRegGen); 131 VMMDECL(int) EMInterpretCRxRead(PVM pVM, PCPUMCTXCORE pRegFrame, uint32_t DestRegGen, uint32_t SrcRegCrx); 132 VMMDECL(int) EMInterpretLMSW(PVM pVM, uint16_t u16Data); 133 VMMDECL(int) EMInterpretCLTS(PVM pVM); 134 VMMDECL(int) EMInterpretPortIO(PVM pVM, PCPUMCTXCORE pCtxCore, PDISCPUSTATE pCpu, uint32_t cbOp); 135 VMMDECL(int) EMInterpretRdmsr(PVM pVM, PCPUMCTXCORE pRegFrame); 136 VMMDECL(int) EMInterpretWrmsr(PVM pVM, PCPUMCTXCORE pRegFrame); 137 VMMDECL(void) EMFlushREMTBs(PVM pVM); 138 138 139 139 /** @name Assembly routines 140 140 * @{ */ 141 EMDECL(uint32_t)EMEmulateCmp(uint32_t u32Param1, uint64_t u64Param2, size_t cb);142 EMDECL(uint32_t)EMEmulateAnd(void *pvParam1, uint64_t u64Param2, size_t cb);143 EMDECL(uint32_t)EMEmulateInc(void *pvParam1, size_t cb);144 EMDECL(uint32_t)EMEmulateDec(void *pvParam1, size_t cb);145 EMDECL(uint32_t)EMEmulateOr(void *pvParam1, uint64_t u64Param2, size_t cb);146 EMDECL(int)EMEmulateLockOr(void *pvParam1, uint64_t u64Param2, size_t cbSize, RTGCUINTREG32 *pf);147 EMDECL(uint32_t)EMEmulateXor(void *pvParam1, uint64_t u64Param2, size_t cb);148 EMDECL(uint32_t)EMEmulateAdd(void *pvParam1, uint64_t u64Param2, size_t cb);149 EMDECL(uint32_t)EMEmulateSub(void *pvParam1, uint64_t u64Param2, size_t cb);150 EMDECL(uint32_t)EMEmulateAdcWithCarrySet(void *pvParam1, uint64_t u64Param2, size_t cb);151 EMDECL(uint32_t)EMEmulateBtr(void *pvParam1, uint64_t u64Param2);152 EMDECL(int)EMEmulateLockBtr(void *pvParam1, uint64_t u64Param2, RTGCUINTREG32 *pf);153 EMDECL(uint32_t)EMEmulateBts(void *pvParam1, uint64_t u64Param2);154 EMDECL(uint32_t)EMEmulateBtc(void *pvParam1, uint64_t u64Param2);155 EMDECL(uint32_t)EMEmulateCmpXchg(void *pvParam1, uint64_t *pu32Param2, uint64_t u32Param3, size_t cbSize);156 EMDECL(uint32_t)EMEmulateLockCmpXchg(void *pvParam1, uint64_t *pu64Param2, uint64_t u64Param3, size_t cbSize);157 EMDECL(uint32_t)EMEmulateCmpXchg8b32(RTHCPTR pu32Param1, uint32_t *pEAX, uint32_t *pEDX, uint32_t uEBX, uint32_t uECX);158 EMDECL(uint32_t)EMEmulateLockCmpXchg8b(RTHCPTR pu32Param1, uint32_t *pEAX, uint32_t *pEDX, uint32_t uEBX, uint32_t uECX);141 VMMDECL(uint32_t) EMEmulateCmp(uint32_t u32Param1, uint64_t u64Param2, size_t cb); 142 VMMDECL(uint32_t) EMEmulateAnd(void *pvParam1, uint64_t u64Param2, size_t cb); 143 VMMDECL(uint32_t) EMEmulateInc(void *pvParam1, size_t cb); 144 VMMDECL(uint32_t) EMEmulateDec(void *pvParam1, size_t cb); 145 VMMDECL(uint32_t) EMEmulateOr(void *pvParam1, uint64_t u64Param2, size_t cb); 146 VMMDECL(int) EMEmulateLockOr(void *pvParam1, uint64_t u64Param2, size_t cbSize, RTGCUINTREG32 *pf); 147 VMMDECL(uint32_t) EMEmulateXor(void *pvParam1, uint64_t u64Param2, size_t cb); 148 VMMDECL(uint32_t) EMEmulateAdd(void *pvParam1, uint64_t u64Param2, size_t cb); 149 VMMDECL(uint32_t) EMEmulateSub(void *pvParam1, uint64_t u64Param2, size_t cb); 150 VMMDECL(uint32_t) EMEmulateAdcWithCarrySet(void *pvParam1, uint64_t u64Param2, size_t cb); 151 VMMDECL(uint32_t) EMEmulateBtr(void *pvParam1, uint64_t u64Param2); 152 VMMDECL(int) EMEmulateLockBtr(void *pvParam1, uint64_t u64Param2, RTGCUINTREG32 *pf); 153 VMMDECL(uint32_t) EMEmulateBts(void *pvParam1, uint64_t u64Param2); 154 VMMDECL(uint32_t) EMEmulateBtc(void *pvParam1, uint64_t u64Param2); 155 VMMDECL(uint32_t) EMEmulateCmpXchg(void *pvParam1, uint64_t *pu32Param2, uint64_t u32Param3, size_t cbSize); 156 VMMDECL(uint32_t) EMEmulateLockCmpXchg(void *pvParam1, uint64_t *pu64Param2, uint64_t u64Param3, size_t cbSize); 157 VMMDECL(uint32_t) EMEmulateCmpXchg8b32(RTHCPTR pu32Param1, uint32_t *pEAX, uint32_t *pEDX, uint32_t uEBX, uint32_t uECX); 158 VMMDECL(uint32_t) EMEmulateLockCmpXchg8b(RTHCPTR pu32Param1, uint32_t *pEAX, uint32_t *pEDX, uint32_t uEBX, uint32_t uECX); 159 159 /** @} */ 160 160 … … 164 164 * @{ 165 165 */ 166 EMR3DECL(int)EMR3Init(PVM pVM);167 EMR3DECL(void)EMR3Relocate(PVM pVM);168 EMR3DECL(void)EMR3Reset(PVM pVM);169 EMR3DECL(int)EMR3Term(PVM pVM);170 EMR3DECL(DECLNORETURN(void)) EMR3FatalError(PVM pVM, int rc);171 EMR3DECL(int)EMR3ExecuteVM(PVM pVM);172 EMR3DECL(int)EMR3CheckRawForcedActions(PVM pVM);173 EMR3DECL(int)EMR3Interpret(PVM pVM);166 VMMR3DECL(int) EMR3Init(PVM pVM); 167 VMMR3DECL(void) EMR3Relocate(PVM pVM); 168 VMMR3DECL(void) EMR3Reset(PVM pVM); 169 VMMR3DECL(int) EMR3Term(PVM pVM); 170 VMMR3DECL(DECLNORETURN(void)) EMR3FatalError(PVM pVM, int rc); 171 VMMR3DECL(int) EMR3ExecuteVM(PVM pVM); 172 VMMR3DECL(int) EMR3CheckRawForcedActions(PVM pVM); 173 VMMR3DECL(int) EMR3Interpret(PVM pVM); 174 174 175 175 /** … … 194 194 } EMRAWMODE; 195 195 196 EMR3DECL(int)EMR3RawSetMode(PVM pVM, EMRAWMODE enmMode);196 VMMR3DECL(int) EMR3RawSetMode(PVM pVM, EMRAWMODE enmMode); 197 197 /** @} */ 198 198 #endif /* IN_RING3 */ … … 204 204 * @{ 205 205 */ 206 EMGCDECL(int)EMGCTrap(PVM pVM, unsigned uTrap, PCPUMCTXCORE pRegFrame);207 EMGCDECL(uint32_t)EMGCEmulateLockCmpXchg(RTRCPTR pu32Param1, uint32_t *pu32Param2, uint32_t u32Param3, size_t cbSize, uint32_t *pEflags);208 EMGCDECL(uint32_t)EMGCEmulateCmpXchg(RTRCPTR pu32Param1, uint32_t *pu32Param2, uint32_t u32Param3, size_t cbSize, uint32_t *pEflags);209 EMGCDECL(uint32_t)EMGCEmulateLockCmpXchg8b(RTRCPTR pu32Param1, uint32_t *pEAX, uint32_t *pEDX, uint32_t uEBX, uint32_t uECX, uint32_t *pEflags);210 EMGCDECL(uint32_t)EMGCEmulateCmpXchg8b(RTRCPTR pu32Param1, uint32_t *pEAX, uint32_t *pEDX, uint32_t uEBX, uint32_t uECX, uint32_t *pEflags);211 EMGCDECL(uint32_t)EMGCEmulateLockXAdd(RTRCPTR pu32Param1, uint32_t *pu32Param2, size_t cbSize, uint32_t *pEflags);212 EMGCDECL(uint32_t)EMGCEmulateXAdd(RTRCPTR pu32Param1, uint32_t *pu32Param2, size_t cbSize, uint32_t *pEflags);206 VMMRCDECL(int) EMGCTrap(PVM pVM, unsigned uTrap, PCPUMCTXCORE pRegFrame); 207 VMMRCDECL(uint32_t) EMGCEmulateLockCmpXchg(RTRCPTR pu32Param1, uint32_t *pu32Param2, uint32_t u32Param3, size_t cbSize, uint32_t *pEflags); 208 VMMRCDECL(uint32_t) EMGCEmulateCmpXchg(RTRCPTR pu32Param1, uint32_t *pu32Param2, uint32_t u32Param3, size_t cbSize, uint32_t *pEflags); 209 VMMRCDECL(uint32_t) EMGCEmulateLockCmpXchg8b(RTRCPTR pu32Param1, uint32_t *pEAX, uint32_t *pEDX, uint32_t uEBX, uint32_t uECX, uint32_t *pEflags); 210 VMMRCDECL(uint32_t) EMGCEmulateCmpXchg8b(RTRCPTR pu32Param1, uint32_t *pEAX, uint32_t *pEDX, uint32_t uEBX, uint32_t uECX, uint32_t *pEflags); 211 VMMRCDECL(uint32_t) EMGCEmulateLockXAdd(RTRCPTR pu32Param1, uint32_t *pu32Param2, size_t cbSize, uint32_t *pEflags); 212 VMMRCDECL(uint32_t) EMGCEmulateXAdd(RTRCPTR pu32Param1, uint32_t *pu32Param2, size_t cbSize, uint32_t *pEflags); 213 213 /** @} */ 214 214 #endif /* IN_GC */
Note:
See TracChangeset
for help on using the changeset viewer.