VirtualBox

Changeset 45693 in vbox


Ignore:
Timestamp:
Apr 24, 2013 11:32:42 AM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
85238
Message:

VMM: Introducing VINF_EM_TRIPLE_FAULT status code for triple-fault conditions in HM, to result in a guru meditation.

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/err.h

    r45620 r45693  
    241241/** Unexpected guest mapping conflict detected. */
    242242#define VERR_EM_UNEXPECTED_MAPPING_CONFLICT (-1154)
     243/** Reason for leaving RC: A triple-fault condition. Currently, causes
     244 *  a guru meditation. */
     245#define VINF_EM_TRIPLE_FAULT                1155
    243246/** @} */
    244247
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r45685 r45693  
    55005500    }
    55015501    else if (enmTrpmEvent == TRPM_SOFTWARE_INT)
    5502     {
    55035502        u32IntrInfo |= (VMX_EXIT_INTERRUPTION_INFO_TYPE_SW_INT << VMX_EXIT_INTERRUPTION_INFO_TYPE_SHIFT);
    5504     }
    55055503    else
    55065504        AssertMsgFailed(("Invalid TRPM event type %d\n", enmTrpmEvent));
     
    60496047 *
    60506048 * @param   pVCpu               Pointer to the VMCPU.
    6051  * @param   pMixedCtx           Pointer to the guest-CPU context. The data may 
     6049 * @param   pMixedCtx           Pointer to the guest-CPU context. The data may
    60526050 *                              be out-of-sync. Make sure to update the required
    60536051 *                              fields before using them.
    60546052 * @param   u64IntrInfo         The VM-entry interruption-information field.
    6055  * @param   cbInstr             The VM-entry instruction length in bytes (for 
     6053 * @param   cbInstr             The VM-entry instruction length in bytes (for
    60566054 *                              software interrupts, exceptions and privileged
    60576055 *                              software exceptions).
    6058  * @param   u32ErrCode          The VM-entry exception error code. 
     6056 * @param   u32ErrCode          The VM-entry exception error code.
    60596057 * @param   GCPtrFaultAddress   The page-fault address for #PF exceptions.
    60606058 * @param   puIntrState         Pointer to the current guest interruptibility-state.
     
    67356733    if (rc == VERR_EM_INTERPRETER)
    67366734        rc = VINF_EM_RAW_EMULATE_INSTR;
     6735    else if (rc == VINF_EM_RESET)
     6736        rc = VINF_EM_TRIPLE_FAULT;
    67376737    hmR0VmxExitToRing3(pVM, pVCpu, pCtx, rc);
    67386738    return rc;
  • trunk/src/VBox/VMM/VMMR3/EM.cpp

    r45620 r45693  
    22462246                 */
    22472247                case VERR_VMM_RING0_ASSERTION:
     2248                case VINF_EM_TRIPLE_FAULT:
    22482249                    Log(("EMR3ExecuteVM: %Rrc: %d -> %d (EMSTATE_GURU_MEDITATION)\n", rc, enmOldState, EMSTATE_GURU_MEDITATION));
    22492250                    pVCpu->em.s.enmState = EMSTATE_GURU_MEDITATION;
  • trunk/src/VBox/VMM/VMMR3/VMMGuruMeditation.cpp

    r45531 r45693  
    289289        case VINF_EM_DBG_HYPER_BREAKPOINT:
    290290        case VINF_EM_DBG_HYPER_STEPPED:
     291        case VINF_EM_TRIPLE_FAULT:
    291292        case VERR_VMM_HYPER_CR3_MISMATCH:
    292293        {
  • trunk/src/VBox/VMM/include/EMHandleRCTmpl.h

    r45474 r45693  
    328328        case VERR_TRPM_PANIC:
    329329        case VERR_VMM_RING0_ASSERTION:
     330        case VINF_EM_TRIPLE_FAULT:
    330331        case VERR_VMM_HYPER_CR3_MISMATCH:
    331332        case VERR_VMM_RING3_CALL_DISABLED:
Note: See TracChangeset for help on using the changeset viewer.

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