Changeset 44375 in vbox for trunk/include/VBox/vmm/em.h
- Timestamp:
- Jan 25, 2013 12:41:24 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/em.h
r44373 r44375 95 95 } EMCODETYPE; 96 96 97 VMM DECL(EMSTATE)EMGetState(PVMCPU pVCpu);98 VMM DECL(void)EMSetState(PVMCPU pVCpu, EMSTATE enmNewState);97 VMM_INT_DECL(EMSTATE) EMGetState(PVMCPU pVCpu); 98 VMM_INT_DECL(void) EMSetState(PVMCPU pVCpu, EMSTATE enmNewState); 99 99 100 100 /** @name Callback handlers for instruction emulation functions. … … 152 152 #define EMIsSupervisorCodeRecompiled(pVM) ((pVM)->fRecompileSupervisor) 153 153 154 VMMDECL(void) EMSetInhibitInterruptsPC(PVMCPU pVCpu, RTGCUINTPTR PC); 155 VMMDECL(RTGCUINTPTR) EMGetInhibitInterruptsPC(PVMCPU pVCpu); 156 VMMDECL(int) EMInterpretDisasCurrent(PVM pVM, PVMCPU pVCpu, PDISCPUSTATE pCpu, unsigned *pcbInstr); 157 VMMDECL(int) EMInterpretDisasOneEx(PVM pVM, PVMCPU pVCpu, RTGCUINTPTR GCPtrInstr, PCCPUMCTXCORE pCtxCore, 158 PDISCPUSTATE pDISState, unsigned *pcbInstr); 159 VMMDECL(VBOXSTRICTRC) EMInterpretInstruction(PVMCPU pVCpu, PCPUMCTXCORE pCoreCtx, RTGCPTR pvFault); 160 VMMDECL(VBOXSTRICTRC) EMInterpretInstructionEx(PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, uint32_t *pcbWritten); 161 VMMDECL(VBOXSTRICTRC) EMInterpretInstructionDisasState(PVMCPU pVCpu, PDISCPUSTATE pDis, PCPUMCTXCORE pCoreCtx, RTGCPTR pvFault, EMCODETYPE enmCodeType); 154 VMMDECL(void) EMSetInhibitInterruptsPC(PVMCPU pVCpu, RTGCUINTPTR PC); 155 VMMDECL(RTGCUINTPTR) EMGetInhibitInterruptsPC(PVMCPU pVCpu); 156 VMM_INT_DECL(int) EMInterpretDisasCurrent(PVM pVM, PVMCPU pVCpu, PDISCPUSTATE pCpu, unsigned *pcbInstr); 157 VMM_INT_DECL(int) EMInterpretDisasOneEx(PVM pVM, PVMCPU pVCpu, RTGCUINTPTR GCPtrInstr, PCCPUMCTXCORE pCtxCore, 158 PDISCPUSTATE pDISState, unsigned *pcbInstr); 159 VMM_INT_DECL(VBOXSTRICTRC) EMInterpretInstruction(PVMCPU pVCpu, PCPUMCTXCORE pCoreCtx, RTGCPTR pvFault); 160 VMM_INT_DECL(VBOXSTRICTRC) EMInterpretInstructionEx(PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, uint32_t *pcbWritten); 161 VMM_INT_DECL(VBOXSTRICTRC) EMInterpretInstructionDisasState(PVMCPU pVCpu, PDISCPUSTATE pDis, PCPUMCTXCORE pCoreCtx, 162 RTGCPTR pvFault, EMCODETYPE enmCodeType); 162 163 163 164 #ifdef IN_RC 164 VMM DECL(int)EMInterpretIretV86ForPatm(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame);165 VMM_INT_DECL(int) EMInterpretIretV86ForPatm(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame); 165 166 #endif 166 167 167 VMM DECL(int)EMInterpretCpuId(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame);168 VMM DECL(int)EMInterpretRdtsc(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame);169 VMM DECL(int)EMInterpretRdpmc(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame);170 VMM DECL(int)EMInterpretRdtscp(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx);171 VMM DECL(VBOXSTRICTRC)EMInterpretInvlpg(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pAddrGC);172 VMM DECL(VBOXSTRICTRC)EMInterpretMWait(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame);173 VMM DECL(int)EMInterpretMonitor(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame);174 VMM DECL(int)EMInterpretDRxWrite(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint32_t DestRegDrx, uint32_t SrcRegGen);175 VMM DECL(int)EMInterpretDRxRead(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint32_t DestRegGen, uint32_t SrcRegDrx);176 VMM DECL(int)EMInterpretCRxWrite(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint32_t DestRegCrx, uint32_t SrcRegGen);177 VMM DECL(int)EMInterpretCRxRead(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint32_t DestRegGen, uint32_t SrcRegCrx);178 VMM DECL(int)EMInterpretLMSW(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint16_t u16Data);179 VMM DECL(int)EMInterpretCLTS(PVM pVM, PVMCPU pVCpu);168 VMM_INT_DECL(int) EMInterpretCpuId(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame); 169 VMM_INT_DECL(int) EMInterpretRdtsc(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame); 170 VMM_INT_DECL(int) EMInterpretRdpmc(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame); 171 VMM_INT_DECL(int) EMInterpretRdtscp(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx); 172 VMM_INT_DECL(VBOXSTRICTRC) EMInterpretInvlpg(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pAddrGC); 173 VMM_INT_DECL(VBOXSTRICTRC) EMInterpretMWait(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame); 174 VMM_INT_DECL(int) EMInterpretMonitor(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame); 175 VMM_INT_DECL(int) EMInterpretDRxWrite(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint32_t DestRegDrx, uint32_t SrcRegGen); 176 VMM_INT_DECL(int) EMInterpretDRxRead(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint32_t DestRegGen, uint32_t SrcRegDrx); 177 VMM_INT_DECL(int) EMInterpretCRxWrite(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint32_t DestRegCrx, uint32_t SrcRegGen); 178 VMM_INT_DECL(int) EMInterpretCRxRead(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint32_t DestRegGen, uint32_t SrcRegCrx); 179 VMM_INT_DECL(int) EMInterpretLMSW(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint16_t u16Data); 180 VMM_INT_DECL(int) EMInterpretCLTS(PVM pVM, PVMCPU pVCpu); 180 181 #ifndef VBOX_WITH_IEM 181 VMM DECL(int)EMInterpretRdmsr(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame);182 VMM DECL(int)EMInterpretWrmsr(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame);182 VMM_INT_DECL(int) EMInterpretRdmsr(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame); 183 VMM_INT_DECL(int) EMInterpretWrmsr(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame); 183 184 #endif /* !VBOX_WITH_IEM */ 184 VMM_INT_DECL(bool) EMShouldContinueAfterHalt(PVMCPU pVCpu, PCPUMCTX pCtx);185 VMM_INT_DECL(int) EMMonitorWaitPrepare(PVMCPU pVCpu, uint64_t rax, uint64_t rcx, uint64_t rdx);186 VMM_INT_DECL(int) EMMonitorWaitPerform(PVMCPU pVCpu, uint64_t rax, uint64_t rcx);185 VMM_INT_DECL(bool) EMShouldContinueAfterHalt(PVMCPU pVCpu, PCPUMCTX pCtx); 186 VMM_INT_DECL(int) EMMonitorWaitPrepare(PVMCPU pVCpu, uint64_t rax, uint64_t rcx, uint64_t rdx); 187 VMM_INT_DECL(int) EMMonitorWaitPerform(PVMCPU pVCpu, uint64_t rax, uint64_t rcx); 187 188 188 189 /** @name Assembly routines … … 214 215 /** @name REM locking routines 215 216 * @{ */ 216 VMMDECL(void) EMRemUnlock(PVM pVM);217 VMMDECL(void) EMRemLock(PVM pVM);218 VMMDECL(bool) EMRemIsLockOwner(PVM pVM);219 VMM DECL(int)EMRemTryLock(PVM pVM);217 VMMDECL(void) EMRemUnlock(PVM pVM); 218 VMMDECL(void) EMRemLock(PVM pVM); 219 VMMDECL(bool) EMRemIsLockOwner(PVM pVM); 220 VMM_INT_DECL(int) EMRemTryLock(PVM pVM); 220 221 /** @} */ 221 222 … … 225 226 * @{ 226 227 */ 227 228 VMMR3DECL(bool) EMR3IsRawRing3Enabled(PUVM pUVM);229 VMMR3DECL(bool) EMR3IsRawRing0Enabled(PUVM pUVM);230 231 VMMR3DECL(int) EMR3Init(PVM pVM);232 VMMR3DECL(void) EMR3Relocate(PVM pVM);233 VMMR3DECL(void) EMR3ResetCpu(PVMCPU pVCpu);234 VMMR3DECL(void) EMR3Reset(PVM pVM);235 VMMR3DECL(int) EMR3Term(PVM pVM);236 VMMR3DECL(DECLNORETURN(void)) EMR3FatalError(PVMCPU pVCpu, int rc);237 VMMR3DECL(int) EMR3ExecuteVM(PVM pVM, PVMCPU pVCpu);238 VMMR3DECL(int) EMR3CheckRawForcedActions(PVM pVM, PVMCPU pVCpu);239 VMMR3DECL(int) EMR3Interpret(PVM pVM);240 VMMR3_INT_DECL(int) EMR3NotifyResume(PVM pVM);241 VMMR3_INT_DECL(int) EMR3NotifySuspend(PVM pVM);242 VMMR3_INT_DECL(bool) EMR3IsExecutionAllowed(PVM pVM, PVMCPU pVCpu);243 228 244 229 /** … … 261 246 EMEXECPOLICY_32BIT_HACK = 0x7fffffff 262 247 } EMEXECPOLICY; 263 264 VMMR3DECL(int) EMR3SetExecutionPolicy(PVM pVM, EMEXECPOLICY enmPolicy, bool fEnforce); 248 VMMR3DECL(int) EMR3SetExecutionPolicy(PUVM pUVM, EMEXECPOLICY enmPolicy, bool fEnforce); 249 VMMR3DECL(bool) EMR3IsRawRing3Enabled(PUVM pUVM); 250 VMMR3DECL(bool) EMR3IsRawRing0Enabled(PUVM pUVM); 251 252 VMMR3_INT_DECL(int) EMR3Init(PVM pVM); 253 VMMR3_INT_DECL(void) EMR3Relocate(PVM pVM); 254 VMMR3_INT_DECL(void) EMR3ResetCpu(PVMCPU pVCpu); 255 VMMR3_INT_DECL(void) EMR3Reset(PVM pVM); 256 VMMR3_INT_DECL(int) EMR3Term(PVM pVM); 257 VMMR3DECL(DECLNORETURN(void)) EMR3FatalError(PVMCPU pVCpu, int rc); 258 VMMR3_INT_DECL(int) EMR3ExecuteVM(PVM pVM, PVMCPU pVCpu); 259 VMMR3_INT_DECL(int) EMR3CheckRawForcedActions(PVM pVM, PVMCPU pVCpu); 260 VMMR3_INT_DECL(int) EMR3NotifyResume(PVM pVM); 261 VMMR3_INT_DECL(int) EMR3NotifySuspend(PVM pVM); 262 VMMR3_INT_DECL(bool) EMR3IsExecutionAllowed(PVM pVM, PVMCPU pVCpu); 265 263 /** @} */ 266 264 #endif /* IN_RING3 */ 267 265 268 269 #ifdef IN_RC270 /** @defgroup grp_em_gc The EM Guest Context API271 * @ingroup grp_em272 * @{273 */274 VMMRCDECL(int) EMGCTrap(PVM pVM, unsigned uTrap, PCPUMCTXCORE pRegFrame);275 /** @} */276 #endif /* IN_RC */277 278 266 /** @} */ 279 267
Note:
See TracChangeset
for help on using the changeset viewer.