err.h revision e45fc8c5f3979b8f265dbc322c241be658b82d17
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * VirtualBox Status Codes.
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * Copyright (C) 2006-2009 Sun Microsystems, Inc.
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * available from http://www.virtualbox.org. This file is free software;
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * you can redistribute it and/or modify it under the terms of the GNU
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * General Public License (GPL) as published by the Free Software
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * The contents of this file may alternatively be used under the terms
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * of the Common Development and Distribution License Version 1.0
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * VirtualBox OSE distribution, in which case the provisions of the
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * CDDL are applicable instead of those of the GPL.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * You may elect to license modified versions of this file under the
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * terms and conditions of either the GPL or the CDDL or both.
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * additional information or have any questions.
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** @defgroup grp_err Error Codes
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/* SED-START */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** @name Misc. Status Codes
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Failed to allocate VM memory. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** GC is toasted and the VMM should be terminated at once, but no need to panic about it :-) */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** Unsupported CPU. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Unsupported CPU mode. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Page not present. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Invalid/Corrupted configuration file. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** No configuration value exists. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Not selector not present. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Not code selector. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Not data selector. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Out of selector bounds. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Invalid selector. Usually beyond table limits. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Invalid requested privilegde level. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** PML4 entry not present. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Page directory pointer not present. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Raw mode doesn't support SMP. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Invalid VM handle. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Invalid VM handle. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Invalid Virtual CPU ID. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Too many VCPUs. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** @name Execution Monitor/Manager (EM) Status Codes
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * The order of the status codes between VINF_EM_FIRST and VINF_EM_LAST
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * are of vital importance. The lower the number the higher importance
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * as a scheduling instruction.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** First scheduling related status code. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Indicating that the VM is being terminated and that the the execution
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * shall stop. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Hypervisor code was stepped.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * EM will first send this to the debugger, and if the issue isn't
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * resolved there it will enter guru meditation. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Hit a breakpoint in the hypervisor code,
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * EM will first send this to the debugger, and if the issue isn't
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * resolved there it will enter guru meditation. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Hit a possible assertion in the hypervisor code,
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * EM will first send this to the debugger, and if the issue isn't
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * resolved there it will enter guru meditation. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Indicating that the VM should be suspended for debugging because
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * the developer wants to inspect the VM state. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Indicating success single stepping and that EM should report that
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * event to the debugger. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Indicating that a breakpoint was hit and that EM should notify the debugger
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * and in the event there is no debugger fail fatally. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Indicating that EM should single step an instruction.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * The instruction is stepped in the current execution mode (RAW/REM). */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Indicating that the VM is being turned off and that the EM should
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * exit to the VM awaiting the destruction request. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Indicating that the VM has been suspended and that the the thread
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * should wait for request telling it what to do next. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** Indicating that the VM has been reset and that scheduling goes
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * back to startup defaults. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Indicating that the VM has executed a halt instruction and that
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * the emulation thread should wait for an interrupt before resuming
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * execution. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Indicating that the VM has been resumed and that the thread should
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * start executing. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Indicating that we've got an out-of-memory condition and that we need
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * to take the appropriate actions to deal with this.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * @remarks It might seem odd at first that this has lower priority than VINF_EM_HALT,
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * VINF_EM_SUSPEND, and VINF_EM_RESUME. The reason is that these events are
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * vital to correctly operating the VM. Also, they can't normally occur together
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * with an out-of-memory condition, and even if that should happen the condition
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * will be rediscovered before executing any more code. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The fatal variant of VINF_EM_NO_MEMORY. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Indicating that a rescheduling to recompiled execution.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Typically caused by raw-mode executing code which is difficult/slow
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * to virtualize rawly.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * @remarks Important to have a higher priority (lower number) than the other rescheduling status codes. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Indicating that a rescheduling to vmx-mode execution.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Typically caused by REM detecting that hardware-accelerated raw-mode execution is possible. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Indicating that a rescheduling to raw-mode execution.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Typically caused by REM detecting that raw-mode execution is possible.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * @remarks Important to have a higher priority (lower number) than VINF_EM_RESCHEDULE. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Indicating that a rescheduling now is required. Typically caused by
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * interrupts having changed the EIP. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** PARAV call */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Go back into wait for SIPI mode */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Last scheduling related status code. (inclusive) */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Guest trap which couldn't be handled in GC.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * The trap is generally forwared to the REM and executed there. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Interrupted by external interrupt.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * The interrupt needed to be handled by the host OS. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Interrupted by external interrupt while in hypervisor code.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * The interrupt needed to be handled by the host OS and hypervisor execution must be
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * resumed. VM state is not complete at this point. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: A Ring switch was attempted.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Normal cause of action is to execute this in REM. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: A Ring switch was attempted using software interrupt.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Normal cause of action is to execute this in REM. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: A privileged instruction was attempted executed.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Normal cause of action is to execute this in REM. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Emulate instruction. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Unhandled TSS write.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Recompiler gets control. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Unhandled LDT write.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Recompiler gets control. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Unhandled IDT write.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Recompiler gets control. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Unhandled GDT write.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Recompiler gets control. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Unhandled Page Directory write.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Recompiler gets control. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: jump inside generated patch jump.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Fatal error. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Hlt instruction.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Recompiler gets control. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Ring-3 operation pending. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Timer pending. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Interrupt pending (guest). */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Encountered a stale selector. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: The IRET resuming guest code trapped. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Emulate (MM)IO intensive code in the recompiler. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The interpreter was unable to deal with the instruction at hand. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Internal EM error caused by an unknown warning or informational status code. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Pending VM request packet. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Start instruction stepping (debug only). */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Patch TPR access instruction. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** @name Debugging Facility (DBGF) DBGF Status Codes
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The function called requires the caller to be attached as a
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * debugger to the VM. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Someone (including the caller) was already attached as
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * debugger to the VM. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Tried to hald a debugger which was already halted.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * (This is a warning and not an error.) */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The DBGF has no more free breakpoint slots. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The DBGF couldn't find the specified breakpoint. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Attempted to enabled a breakpoint which was already enabled. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Attempted to disabled a breakpoint which was already disabled. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The breakpoint already exists. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The byte string was not found. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The OS was not detected. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The OS was not detected. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** @name Patch Manager (PATM) Status Codes
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Non fatal Patch Manager analysis phase warning */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Non fatal Patch Manager recompile phase warning (mapped to VWRN_CONTINUE_ANALYSIS). */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync#define VWRN_CONTINUE_RECOMPILE VWRN_CONTINUE_ANALYSIS
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Continue search (mapped to VWRN_CONTINUE_ANALYSIS). */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync#define VWRN_PATM_CONTINUE_SEARCH VWRN_CONTINUE_ANALYSIS
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Patch installation refused (patch too complex or unsupported instructions ) */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Unable to find patch */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Patch disabled */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Patch enabled */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Patch was already disabled */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Patch was already enabled */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Patch was removed. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: \#GP with EIP pointing to patch code. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** First leave GC code. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync#define VINF_PATM_LEAVEGC_FIRST VINF_PATM_PATCH_TRAP_GP
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: \#PF with EIP pointing to patch code. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: int3 with EIP pointing to patch code. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: \#PF for monitored patch page. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: duplicate instruction called at current eip. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Execute one instruction with the recompiler */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: attempt to patch MMIO write. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: attempt to patch MMIO read. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: pending irq after iret that sets IF. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Last leave GC code. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync#define VINF_PATM_LEAVEGC_LAST VINF_PATM_PENDING_IRQ_AFTER_IRET
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** No conflicts to resolve */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Detected unsafe code for patching */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Terminate search branch */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Already patched */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Spinlock detection failed. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Continue execution after patch trap. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** @name Code Scanning and Analysis Manager (CSAM) Status Codes
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Trap not handled */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Patch installed */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Page record not found */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: CSAM wants perform a task in ring-3. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** @name Page Monitor/Manager (PGM) Status Codes
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Attempt to create a GC mapping which conflicts with an existing mapping. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The physical handler range has no corresponding RAM range.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * If this is MMIO, see todo above the return. If not MMIO, then it's
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * someone else's fault... */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync#define VERR_PGM_HANDLER_PHYSICAL_NO_RAM_RANGE (-1601)
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Attempt to register an access handler for a virtual range of which a part
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * was already handled. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Attempt to register an access handler for a physical range of which a part
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * was already handled. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Invalid page directory specified to PGM. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Invalid GC physical address. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync#define VERR_PGM_INVALID_GC_PHYSICAL_ADDRESS (-1605)
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Invalid GC physical range. Usually used when a specified range crosses
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * a RAM region boundrary. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Specified access handler was not found. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Attempt to register a RAM range of which parts are already
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * covered by existing RAM ranges. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Failed to add new mappings because the current mappings are fixed
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * in guest os memory. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Failed to fix mappings because of a conflict with the intermediate code. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Failed to fix mappings because a mapping rejected the address. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Failed to fix mappings because the proposed memory area was to small. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: The urge to syncing CR3. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Page not marked for dirty bit tracking */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Page fault caused by dirty bit tracking; corrected */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Go ahead with the default Read/Write operation.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * This is returned by a HC physical or virtual handler when it wants the PGMPhys[Read|Write]
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * routine do the reading/writing. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The paging mode of the host is not supported yet. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync#define VERR_PGM_UNSUPPORTED_HOST_PAGING_MODE (-1617)
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The physical guest page is a reserved/mmio page and does not have any HC address. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** No page directory available for the hypervisor. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The shadow page pool was flushed.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * This means that a global CR3 sync was flagged. Anyone receiving this kind of status
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * will have to get down to a SyncCR3 ASAP. See also VINF_PGM_SYNC_CR3. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The shadow page pool was cleared.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * This is a error code internal to the shadow page pool, it will be
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * converted to a VERR_PGM_POOL_FLUSHED before leaving the pool code. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The returned shadow page is cached. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Returned by handler registration, modification and deregistration
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * when the shadow PTs could be updated because the guest page
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * aliased or/and mapped by multiple PTs. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Reason for leaving GC: Paging mode changed.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * PGMChangeMode() uses this to force a switch to HC so it can safely
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * deal with a mode switch.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** SyncPage modified the PDE.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * This is an internal status code used to communicate back to the \#PF handler
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * that the PDE was (probably) marked not-present and it should restart the instruction. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Physical range crosses dynamic ram chunk boundary; translation to HC ptr not safe. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync#define VERR_PGM_GCPHYS_RANGE_CROSSES_BOUNDARY (-1626)
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** Conflict between the core memory and the intermediate paging context, try again.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * There are some very special conditions applying to the intermediate paging context
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * (used during the world switches), and some times we continuously run into these
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * when asking the host kernel for memory during VM init. Let us know if you run into
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * this and we'll adjust the code so it tries harder to avoid it.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync#define VERR_PGM_INTERMEDIATE_PAGING_CONFLICT (-1627)
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The shadow paging mode is not supported yet. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync#define VERR_PGM_UNSUPPORTED_SHADOW_PAGING_MODE (-1628)
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The dynamic mapping cache for physical memory failed. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The auto usage cache for the dynamic mapping set is full. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The initialization of the dynamic mapping cache failed. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The expanding of the dynamic mapping cache failed. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The page is unassigned (akin to VERR_PGM_INVALID_GC_PHYSICAL_ADDRESS). */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Catch any access and route it thru PGM. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Catch write access and route it thru PGM. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** No CR3 root shadow page table.. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Trying to free a page with an invalid Page ID. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** PGMPhysWrite/Read hit a handler in Ring-0 or raw-mode context. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Trying to free a page that isn't RAM. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Not ROM page. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Not MMIO page. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Not MMIO2 page. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Already aliased to a different page. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Already aliased to the same page. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** PGM pool flush pending - return to ring 3. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Unable to use the range for a large page. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Don't mess around with ballooned pages. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** @name Memory Monitor (MM) Status Codes
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Attempt to register a RAM range of which parts are already
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * covered by existing RAM ranges. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Hypervisor memory allocation failed. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** @name Save State Manager (SSM) Status Codes
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The specified data unit already exist. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The specified data unit wasn't found. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The specified data unit wasn't owned by caller. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** General saved state file integrity error. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The saved state file magic was not recognized. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The saved state file version is not supported. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The saved state file size didn't match the one in the header. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** The CRC of the saved state file did not match. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The machine uuid field wasn't null. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** Saved state header integrity error. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** Unit header integrity error. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** Invalid unit magic (internal data tag). */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The file contained a data unit which no-one wants. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** Incorrect version numbers in the header. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** Footer integrity error. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** Record header integrity error. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** Termination record integrity error. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Termination record CRC mismatch. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** Decompression interity error. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** Saved state directory iintegrity error. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** The saved state directory magic is wrong. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** A data unit in the saved state file was defined but didn't any
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * routine for processing it. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** A restore routine attempted to load more data then the unit contained. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Not in the correct state for the attempted operation. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Not in the correct state for the attempted operation. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Unsupported data unit version.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * A SSM user returns this if it doesn't know the u32Version. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync#define VERR_SSM_UNSUPPORTED_DATA_UNIT_VERSION (-1840)
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The format of a data unit has changed.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * A SSM user returns this if it's not able to read the format for
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * other reasons than u32Version. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The CPUID instruction returns different information when loading than when saved.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Normally caused by hardware changes on the host, but could also be caused by
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * changes in the BIOS setup. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The RAM size differes between the saved state and the VM config. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** The state doesn't match the VM configuration in one or another way.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * (There are certain PCI reconfiguration which the OS could potentially
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * do which can cause this problem. Check this out when it happens.) */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The virtual clock freqency differs too much.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * The clock source for the virtual time isn't reliable or the code have changed. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** A timeout occured while waiting for async IDE operations to finish. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** One of the structure magics was wrong. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The data in the saved state doesn't conform to expectations. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Trying to read a 64-bit guest physical address into a 32-bit variable. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Trying to read a 64-bit guest virtual address into a 32-bit variable. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Vote for another pass. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Vote for done tell SSM not to call again until the final pass. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Vote for giving up. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Don't call again until the final pass. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Giving up a live snapshot/teleportation attempt because of too many
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * passes. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Giving up a live snapshot/teleportation attempt because the state grew to
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Giving up a live snapshot attempt because we're low on disk space. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The operation was cancelled. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Nothing that can be cancelled. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The operation has already been cancelled. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The machine was powered off while saving. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** The live snapshot/teleportation operation was aborted because of a guru
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * meditation. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** The live snapshot/teleportation operation was aborted because of a fatal
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * runtime error. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The VM was suspended before or while saving, don't resume execution. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** Complex SSM field fed to SSMR3PutStruct or SSMR3GetStruct. Use the
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * extended API. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** Invalid size of a SSM field with the specified transformation. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The specified field is outside the structure. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The field does not follow immediately the previous one. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The field contains an invalid callback or transformation index. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The field contains an invalid padding size. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The field contains a value that is out of range. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** @name Virtual Machine (VM) Status Codes
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** The specified at reset handler wasn't found. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Invalid VM request type.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * For the VMR3ReqAlloc() case, the caller just specified an illegal enmType. For
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * all the other occurences it means indicates corruption, broken logic, or stupid
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * interface user. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Invalid VM request state.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * The state of the request packet was not the expected and accepted one(s). Either
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * the interface user screwed up, or we've got corruption/broken logic. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Invalid VM request packet.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * One or more of the the VM controlled packet members didn't contain the correct
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * values. Some thing's broken. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** The status field has not been updated yet as the request is still
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * pending completion. Someone queried the iStatus field before the request
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * has been fully processed. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync#define VERR_VM_REQUEST_STATUS_STILL_PENDING (-1904)
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** The request has been freed, don't read the status now.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Someone is reading the iStatus field of a freed request packet. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** A VM api requiring EMT was called from another thread.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Use the VMR3ReqCall() apis to call it! */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The VM state was invalid for the requested operation.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Go check the 'VM Statechart Diagram.gif'. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The support driver is not installed.
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * On linux, open returned ENOENT. */
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** The support driver is not accessible.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * On linux, open returned EPERM. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Was not able to load the support driver.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * On linux, open returned ENODEV. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Was not able to open the support driver.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Generic open error used when none of the other ones fit. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** The installed support driver doesn't match the version of the user. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Saving the VM state is temporarily not allowed. Try again later. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** @name VBox Remote Desktop Protocol (VRDP) Status Codes
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Successful completion of operation (mapped to generic iprt status code). */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** VRDP transport operation timed out (mapped to generic iprt status code). */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Unsupported ISO protocol feature */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Security (en/decryption) engine error */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** VRDP protocol violation */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Unsupported VRDP protocol feature */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** VRDP protocol violation, client sends less data than expected */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Internal error, VRDP packet is in wrong operation mode */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** Memory allocation failed */
/** VMDK: Format is invalid/inconsistent. */