VirtualBox

Changeset 81002 in vbox for trunk/include/VBox/vmm


Ignore:
Timestamp:
Sep 25, 2019 9:12:34 AM (5 years ago)
Author:
vboxsync
Message:

VMM: bugref:9566 TRPM enhancements and cleanup. Bumps TRPM saved-state version.

Location:
trunk/include/VBox/vmm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/hm.h

    r80364 r81002  
    134134VMM_INT_DECL(bool)              HMCanExecuteVmxGuest(PVMCC pVM, PVMCPUCC pVCpu, PCCPUMCTX pCtx);
    135135VMM_INT_DECL(TRPMEVENT)         HMVmxEventTypeToTrpmEventType(uint32_t uIntInfo);
    136 VMM_INT_DECL(uint32_t)          HMTrpmEventTypeToVmxEventType(uint8_t uVector, TRPMEVENT enmTrpmEvent);
     136VMM_INT_DECL(uint32_t)          HMTrpmEventTypeToVmxEventType(uint8_t uVector, TRPMEVENT enmTrpmEvent, bool fIcebp);
    137137/** @} */
    138138
  • trunk/include/VBox/vmm/trpm.h

    r80938 r81002  
    4141
    4242/**
    43  * Trap: error code present or not
     43 * TRPM event type.
    4444 */
    45 typedef enum
    46 {
    47     TRPM_TRAP_HAS_ERRORCODE = 0,
    48     TRPM_TRAP_NO_ERRORCODE,
    49     /** The usual 32-bit paranoia. */
    50     TRPM_TRAP_32BIT_HACK = 0x7fffffff
    51 } TRPMERRORCODE;
    52 
    53 /**
    54  * TRPM event type
    55  */
    56 /** Note: must match trpm.mac! */
    5745typedef enum
    5846{
     
    6856typedef TRPMEVENT const *PCTRPMEVENT;
    6957
    70 /**
    71  * Invalid trap handler for trampoline calls
    72  */
    73 #define TRPM_INVALID_HANDLER        0
    74 
    7558VMMDECL(int)        TRPMQueryTrap(PVMCPU pVCpu, uint8_t *pu8TrapNo, PTRPMEVENT penmType);
    7659VMMDECL(uint8_t)    TRPMGetTrapNo(PVMCPU pVCpu);
    77 VMMDECL(RTGCUINT)   TRPMGetErrorCode(PVMCPU pVCpu);
     60VMMDECL(uint32_t)   TRPMGetErrorCode(PVMCPU pVCpu);
    7861VMMDECL(RTGCUINTPTR) TRPMGetFaultAddress(PVMCPU pVCpu);
    7962VMMDECL(uint8_t)    TRPMGetInstrLength(PVMCPU pVCpu);
     63VMMDECL(bool)       TRPMIsTrapDueToIcebp(PVMCPU pVCpu);
    8064VMMDECL(int)        TRPMResetTrap(PVMCPU pVCpu);
    8165VMMDECL(int)        TRPMAssertTrap(PVMCPUCC pVCpu, uint8_t u8TrapNo, TRPMEVENT enmType);
    82 VMMDECL(int)        TRPMAssertXcptPF(PVMCPUCC pVCpu, RTGCUINTPTR uCR2, RTGCUINT uErrorCode);
    83 VMMDECL(void)       TRPMSetErrorCode(PVMCPU pVCpu, RTGCUINT uErrorCode);
     66VMMDECL(int)        TRPMAssertXcptPF(PVMCPUCC pVCpu, RTGCUINTPTR uCR2, uint32_t uErrorCode);
     67VMMDECL(void)       TRPMSetErrorCode(PVMCPU pVCpu, uint32_t uErrorCode);
    8468VMMDECL(void)       TRPMSetFaultAddress(PVMCPU pVCpu, RTGCUINTPTR uCR2);
    8569VMMDECL(void)       TRPMSetInstrLength(PVMCPU pVCpu, uint8_t cbInstr);
     70VMMDECL(void)       TRPMSetTrapDueToIcebp(PVMCPU pVCpu);
    8671VMMDECL(bool)       TRPMIsSoftwareInterrupt(PVMCPU pVCpu);
    8772VMMDECL(bool)       TRPMHasTrap(PVMCPU pVCpu);
    88 VMMDECL(int)        TRPMQueryTrapAll(PVMCPU pVCpu, uint8_t *pu8TrapNo, PTRPMEVENT pEnmType, PRTGCUINT puErrorCode, PRTGCUINTPTR puCR2, uint8_t *pcbInstr);
    89 VMMDECL(void)       TRPMSaveTrap(PVMCPU pVCpu);
    90 VMMDECL(void)       TRPMRestoreTrap(PVMCPU pVCpu);
    91 VMMDECL(int)        TRPMRaiseXcpt(PVMCPU pVCpu, PCPUMCTXCORE pCtxCore, X86XCPT enmXcpt);
    92 VMMDECL(int)        TRPMRaiseXcptErr(PVMCPU pVCpu, PCPUMCTXCORE pCtxCore, X86XCPT enmXcpt, uint32_t uErr);
    93 VMMDECL(int)        TRPMRaiseXcptErrCR2(PVMCPU pVCpu, PCPUMCTXCORE pCtxCore, X86XCPT enmXcpt, uint32_t uErr, RTGCUINTPTR uCR2);
    94 
     73VMMDECL(int)        TRPMQueryTrapAll(PVMCPU pVCpu, uint8_t *pu8TrapNo, PTRPMEVENT pEnmType, uint32_t *puErrorCode,
     74                                     PRTGCUINTPTR puCR2, uint8_t *pcbInstr, bool *pfIcebp);
    9575
    9676#ifdef IN_RING3
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette