VirtualBox

source: vbox/trunk/include/VBox/err.h@ 15382

Last change on this file since 15382 was 15366, checked in by vboxsync, 16 years ago

Storage: Eradicated the last bits using the old VDI only backend, keeping only the testcases for now (no longer built).

Completely removed old iSCSI driver.

Added intnet option to addiscsidisk and adjusted documentation.

Made backend name comparisons case-insensitive.

Detect VMDK files not according to VMDK 1.0 and reject with clear error message.

Changed format probing logic to not fall through to the "unsupported" case if it's a known format, i.e. has valid header.

VBoxManage converthd generic format converter made official.

Added format flag to VBoxManage createhd, allows creating VMDK files.

VBoxManage convertdd reimplemented based on new framework, supporting any image format.

VBoxManage internalcommands sethduuid reimplemented based on new framework, supporting any image format.

Cleaned up error codes.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 61.1 KB
Line 
1/** @file
2 * VirtualBox Status Codes.
3 */
4
5/*
6 * Copyright (C) 2006-2007 Sun Microsystems, Inc.
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License (GPL) as published by the Free Software
12 * Foundation, in version 2 as it comes in the "COPYING" file of the
13 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15 *
16 * The contents of this file may alternatively be used under the terms
17 * of the Common Development and Distribution License Version 1.0
18 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19 * VirtualBox OSE distribution, in which case the provisions of the
20 * CDDL are applicable instead of those of the GPL.
21 *
22 * You may elect to license modified versions of this file under the
23 * terms and conditions of either the GPL or the CDDL or both.
24 *
25 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
26 * Clara, CA 95054 USA or visit http://www.sun.com if you need
27 * additional information or have any questions.
28 */
29
30#ifndef ___VBox_err_h
31#define ___VBox_err_h
32
33#include <VBox/cdefs.h>
34#include <iprt/err.h>
35
36
37/** @defgroup grp_err Error Codes
38 * @{
39 */
40
41/* SED-START */
42
43/** @name Misc. Status Codes
44 * @{
45 */
46/** Failed to allocate VM memory. */
47#define VERR_NO_VM_MEMORY (-1000)
48/** GC is toasted and the VMM should be terminated at once, but no need to panic about it :-) */
49#define VERR_DONT_PANIC (-1001)
50/** Unsupported CPU. */
51#define VERR_UNSUPPORTED_CPU (-1002)
52/** Unsupported CPU mode. */
53#define VERR_UNSUPPORTED_CPU_MODE (-1003)
54/** Page not present. */
55#define VERR_PAGE_NOT_PRESENT (-1004)
56/** Invalid/Corrupted configuration file. */
57#define VERR_CFG_INVALID_FORMAT (-1005)
58/** No configuration value exists. */
59#define VERR_CFG_NO_VALUE (-1006)
60/** Not selector not present. */
61#define VERR_SELECTOR_NOT_PRESENT (-1007)
62/** Not code selector. */
63#define VERR_NOT_CODE_SELECTOR (-1008)
64/** Not data selector. */
65#define VERR_NOT_DATA_SELECTOR (-1009)
66/** Out of selector bounds. */
67#define VERR_OUT_OF_SELECTOR_BOUNDS (-1010)
68/** Invalid selector. Usually beyond table limits. */
69#define VERR_INVALID_SELECTOR (-1011)
70/** Invalid requested privilegde level. */
71#define VERR_INVALID_RPL (-1012)
72/** PML4 entry not present. */
73#define VERR_PAGE_MAP_LEVEL4_NOT_PRESENT (-1013)
74/** Page directory pointer not present. */
75#define VERR_PAGE_DIRECTORY_PTR_NOT_PRESENT (-1014)
76/** @} */
77
78
79/** @name Execution Monitor/Manager (EM) Status Codes
80 *
81 * The order of the status codes between VINF_EM_FIRST and VINF_EM_LAST
82 * are of vital importance. The lower the number the higher importance
83 * as a scheduling instruction.
84 * @{
85 */
86/** First scheduling related status code. */
87#define VINF_EM_FIRST 1100
88/** Indicating that the VM is being terminated and that the the execution
89 * shall stop. */
90#define VINF_EM_TERMINATE 1100
91/** Hypervisor code was stepped.
92 * EM will first send this to the debugger, and if the issue isn't
93 * resolved there it will enter guru meditation. */
94#define VINF_EM_DBG_HYPER_STEPPED 1101
95/** Hit a breakpoint in the hypervisor code,
96 * EM will first send this to the debugger, and if the issue isn't
97 * resolved there it will enter guru meditation. */
98#define VINF_EM_DBG_HYPER_BREAKPOINT 1102
99/** Hit a possible assertion in the hypervisor code,
100 * EM will first send this to the debugger, and if the issue isn't
101 * resolved there it will enter guru meditation. */
102#define VINF_EM_DBG_HYPER_ASSERTION 1103
103/** Indicating that the VM should be suspended for debugging because
104 * the developer wants to inspect the VM state. */
105#define VINF_EM_DBG_STOP 1105
106/** Indicating success single stepping and that EM should report that
107 * event to the debugger. */
108#define VINF_EM_DBG_STEPPED 1106
109/** Indicating that a breakpoint was hit and that EM should notify the debugger
110 * and in the event there is no debugger fail fatally. */
111#define VINF_EM_DBG_BREAKPOINT 1107
112/** Indicating that EM should single step an instruction.
113 * The instruction is stepped in the current execution mode (RAW/REM). */
114#define VINF_EM_DBG_STEP 1108
115/** Indicating that the VM is being turned off and that the EM should
116 * exit to the VM awaiting the destruction request. */
117#define VINF_EM_OFF 1109
118/** Indicating that the VM has been reset and that scheduling goes
119 * back to startup defaults. */
120#define VINF_EM_RESET 1110
121/** Indicating that the VM has been suspended and that the the thread
122 * should wait for request telling it what to do next. */
123#define VINF_EM_SUSPEND 1111
124/** Indicating that the VM has executed a halt instruction and that
125 * the emulation thread should wait for an interrupt before resuming
126 * execution. */
127#define VINF_EM_HALT 1112
128/** Indicating that the VM has been resumed and that the thread should
129 * start executing. */
130#define VINF_EM_RESUME 1113
131/** Indicating that we've got an out-of-memory condition and that we need
132 * to take the appropriate actions to deal with this.
133 * @remarks It might seem odd at first that this has lower priority than VINF_EM_HALT,
134 * VINF_EM_SUSPEND, and VINF_EM_RESUME. The reason is that these events are
135 * vital to correctly operating the VM. Also, they can't normally occur together
136 * with an out-of-memory condition, and even if that should happen the condition
137 * will be rediscovered before executing any more code. */
138#define VINF_EM_NO_MEMORY 1114
139/** The fatal variant of VINF_EM_NO_MEMORY. */
140#define VERR_EM_NO_MEMORY (-1114)
141/** Indicating that a rescheduling to recompiled execution.
142 * Typically caused by raw-mode executing code which is difficult/slow
143 * to virtualize rawly.
144 * @remarks Important to have a higher priority (lower number) than the other rescheduling status codes. */
145#define VINF_EM_RESCHEDULE_REM 1115
146/** Indicating that a rescheduling to vmx-mode execution.
147 * Typically caused by REM detecting that hardware-accelerated raw-mode execution is possible. */
148#define VINF_EM_RESCHEDULE_HWACC 1116
149/** Indicating that a rescheduling to raw-mode execution.
150 * Typically caused by REM detecting that raw-mode execution is possible.
151 * @remarks Important to have a higher priority (lower number) than VINF_EM_RESCHEDULE. */
152#define VINF_EM_RESCHEDULE_RAW 1117
153/** Indicating that a rescheduling now is required. Typically caused by
154 * interrupts having changed the EIP. */
155#define VINF_EM_RESCHEDULE 1118
156/** PARAV call */
157#define VINF_EM_RESCHEDULE_PARAV 1119
158/** Last scheduling related status code. (inclusive) */
159#define VINF_EM_LAST 1119
160
161/** Reason for leaving GC: Guest trap which couldn't be handled in GC.
162 * The trap is generally forwared to the REM and executed there. */
163#define VINF_EM_RAW_GUEST_TRAP 1121
164/** Reason for leaving GC: Interrupted by external interrupt.
165 * The interrupt needed to be handled by the host OS. */
166#define VINF_EM_RAW_INTERRUPT 1122
167/** Reason for leaving GC: Interrupted by external interrupt while in hypervisor code.
168 * The interrupt needed to be handled by the host OS and hypervisor execution must be
169 * resumed. VM state is not complete at this point. */
170#define VINF_EM_RAW_INTERRUPT_HYPER 1123
171/** Reason for leaving GC: A Ring switch was attempted.
172 * Normal cause of action is to execute this in REM. */
173#define VINF_EM_RAW_RING_SWITCH 1124
174/** Reason for leaving GC: A Ring switch was attempted using software interrupt.
175 * Normal cause of action is to execute this in REM. */
176#define VINF_EM_RAW_RING_SWITCH_INT 1125
177/** Reason for leaving GC: A privileged instruction was attempted executed.
178 * Normal cause of action is to execute this in REM. */
179#define VINF_EM_RAW_EXCEPTION_PRIVILEGED 1126
180
181/** Reason for leaving GC: Emulate instruction. */
182#define VINF_EM_RAW_EMULATE_INSTR 1127
183/** Reason for leaving GC: Unhandled TSS write.
184 * Recompiler gets control. */
185#define VINF_EM_RAW_EMULATE_INSTR_TSS_FAULT 1128
186/** Reason for leaving GC: Unhandled LDT write.
187 * Recompiler gets control. */
188#define VINF_EM_RAW_EMULATE_INSTR_LDT_FAULT 1129
189/** Reason for leaving GC: Unhandled IDT write.
190 * Recompiler gets control. */
191#define VINF_EM_RAW_EMULATE_INSTR_IDT_FAULT 1130
192/** Reason for leaving GC: Unhandled GDT write.
193 * Recompiler gets control. */
194#define VINF_EM_RAW_EMULATE_INSTR_GDT_FAULT 1131
195/** Reason for leaving GC: Unhandled Page Directory write.
196 * Recompiler gets control. */
197#define VINF_EM_RAW_EMULATE_INSTR_PD_FAULT 1132
198/** Reason for leaving GC: jump inside generated patch jump.
199 * Fatal error. */
200#define VERR_EM_RAW_PATCH_CONFLICT (-1133)
201/** Reason for leaving GC: Hlt instruction.
202 * Recompiler gets control. */
203#define VINF_EM_RAW_EMULATE_INSTR_HLT 1134
204/** Reason for leaving GC: Ring-3 operation pending. */
205#define VINF_EM_RAW_TO_R3 1135
206/** Reason for leaving GC: Timer pending. */
207#define VINF_EM_RAW_TIMER_PENDING 1136
208/** Reason for leaving GC: Interrupt pending (guest). */
209#define VINF_EM_RAW_INTERRUPT_PENDING 1137
210/** Reason for leaving GC: Encountered a stale selector. */
211#define VINF_EM_RAW_STALE_SELECTOR 1138
212/** Reason for leaving GC: The IRET resuming guest code trapped. */
213#define VINF_EM_RAW_IRET_TRAP 1139
214/** The interpreter was unable to deal with the instruction at hand. */
215#define VERR_EM_INTERPRETER (-1148)
216/** Internal EM error caused by an unknown warning or informational status code. */
217#define VERR_EM_INTERNAL_ERROR (-1149)
218/** Pending VM request packet. */
219#define VINF_EM_PENDING_REQUEST (-1150)
220/** @} */
221
222
223/** @name Debugging Facility (DBGF) DBGF Status Codes
224 * @{
225 */
226/** The function called requires the caller to be attached as a
227 * debugger to the VM. */
228#define VERR_DBGF_NOT_ATTACHED (-1200)
229/** Someone (including the caller) was already attached as
230 * debugger to the VM. */
231#define VERR_DBGF_ALREADY_ATTACHED (-1201)
232/** Tried to hald a debugger which was already halted.
233 * (This is a warning and not an error.) */
234#define VWRN_DBGF_ALREADY_HALTED 1202
235/** The DBGF has no more free breakpoint slots. */
236#define VERR_DBGF_NO_MORE_BP_SLOTS (-1203)
237/** The DBGF couldn't find the specified breakpoint. */
238#define VERR_DBGF_BP_NOT_FOUND (-1204)
239/** Attempted to enabled a breakpoint which was already enabled. */
240#define VINF_DBGF_BP_ALREADY_ENABLED 1205
241/** Attempted to disabled a breakpoint which was already disabled. */
242#define VINF_DBGF_BP_ALREADY_DISABLED 1206
243/** The breakpoint already exists. */
244#define VINF_DBGF_BP_ALREADY_EXIST 1207
245/** The byte string was not found. */
246#define VERR_DBGF_MEM_NOT_FOUND (-1208)
247/** The OS was not detected. */
248#define VERR_DBGF_OS_NOT_DETCTED (-1209)
249/** The OS was not detected. */
250#define VINF_DBGF_OS_NOT_DETCTED 1209
251/** @} */
252
253
254/** @name Patch Manager (PATM) Status Codes
255 * @{
256 */
257/** Non fatal Patch Manager analysis phase warning */
258#define VWRN_CONTINUE_ANALYSIS 1400
259/** Non fatal Patch Manager recompile phase warning (mapped to VWRN_CONTINUE_ANALYSIS). */
260#define VWRN_CONTINUE_RECOMPILE VWRN_CONTINUE_ANALYSIS
261/** Continue search (mapped to VWRN_CONTINUE_ANALYSIS). */
262#define VWRN_PATM_CONTINUE_SEARCH VWRN_CONTINUE_ANALYSIS
263/** Patch installation refused (patch too complex or unsupported instructions ) */
264#define VERR_PATCHING_REFUSED (-1401)
265/** Unable to find patch */
266#define VERR_PATCH_NOT_FOUND (-1402)
267/** Patch disabled */
268#define VERR_PATCH_DISABLED (-1403)
269/** Patch enabled */
270#define VWRN_PATCH_ENABLED 1404
271/** Patch was already disabled */
272#define VERR_PATCH_ALREADY_DISABLED (-1405)
273/** Patch was already enabled */
274#define VERR_PATCH_ALREADY_ENABLED (-1406)
275/** Patch was removed. */
276#define VWRN_PATCH_REMOVED 1408
277
278/** Reason for leaving GC: \#GP with EIP pointing to patch code. */
279#define VINF_PATM_PATCH_TRAP_GP 1408
280/** First leave GC code. */
281#define VINF_PATM_LEAVEGC_FIRST VINF_PATM_PATCH_TRAP_GP
282/** Reason for leaving GC: \#PF with EIP pointing to patch code. */
283#define VINF_PATM_PATCH_TRAP_PF 1409
284/** Reason for leaving GC: int3 with EIP pointing to patch code. */
285#define VINF_PATM_PATCH_INT3 1410
286/** Reason for leaving GC: \#PF for monitored patch page. */
287#define VINF_PATM_CHECK_PATCH_PAGE 1411
288/** Reason for leaving GC: duplicate instruction called at current eip. */
289#define VINF_PATM_DUPLICATE_FUNCTION 1412
290/** Execute one instruction with the recompiler */
291#define VINF_PATCH_EMULATE_INSTR 1413
292/** Reason for leaving GC: attempt to patch MMIO write. */
293#define VINF_PATM_HC_MMIO_PATCH_WRITE 1414
294/** Reason for leaving GC: attempt to patch MMIO read. */
295#define VINF_PATM_HC_MMIO_PATCH_READ 1415
296/** Reason for leaving GC: pending irq after iret that sets IF. */
297#define VINF_PATM_PENDING_IRQ_AFTER_IRET 1416
298/** Last leave GC code. */
299#define VINF_PATM_LEAVEGC_LAST VINF_PATM_PENDING_IRQ_AFTER_IRET
300
301/** No conflicts to resolve */
302#define VERR_PATCH_NO_CONFLICT (-1425)
303/** Detected unsafe code for patching */
304#define VERR_PATM_UNSAFE_CODE (-1426)
305/** Terminate search branch */
306#define VWRN_PATCH_END_BRANCH 1427
307/** Already patched */
308#define VERR_PATM_ALREADY_PATCHED (-1428)
309/** Spinlock detection failed. */
310#define VINF_PATM_SPINLOCK_FAILED (1429)
311/** Continue execution after patch trap. */
312#define VINF_PATCH_CONTINUE (1430)
313
314/** @} */
315
316
317/** @name Code Scanning and Analysis Manager (CSAM) Status Codes
318 * @{
319 */
320/** Trap not handled */
321#define VWRN_CSAM_TRAP_NOT_HANDLED 1500
322/** Patch installed */
323#define VWRN_CSAM_INSTRUCTION_PATCHED 1501
324/** Page record not found */
325#define VWRN_CSAM_PAGE_NOT_FOUND 1502
326/** Reason for leaving GC: CSAM wants perform a task in ring-3. */
327#define VINF_CSAM_PENDING_ACTION 1503
328/** @} */
329
330
331/** @name Page Monitor/Manager (PGM) Status Codes
332 * @{
333 */
334/** Attempt to create a GC mapping which conflicts with an existing mapping. */
335#define VERR_PGM_MAPPING_CONFLICT (-1600)
336/** The physical handler range has no corresponding RAM range.
337 * If this is MMIO, see todo above the return. If not MMIO, then it's
338 * someone else's fault... */
339#define VERR_PGM_HANDLER_PHYSICAL_NO_RAM_RANGE (-1601)
340/** Attempt to register an access handler for a virtual range of which a part
341 * was already handled. */
342#define VERR_PGM_HANDLER_VIRTUAL_CONFLICT (-1602)
343/** Attempt to register an access handler for a physical range of which a part
344 * was already handled. */
345#define VERR_PGM_HANDLER_PHYSICAL_CONFLICT (-1603)
346/** Invalid page directory specified to PGM. */
347#define VERR_PGM_INVALID_PAGE_DIRECTORY (-1604)
348/** Invalid GC physical address. */
349#define VERR_PGM_INVALID_GC_PHYSICAL_ADDRESS (-1605)
350/** Invalid GC physical range. Usually used when a specified range crosses
351 * a RAM region boundrary. */
352#define VERR_PGM_INVALID_GC_PHYSICAL_RANGE (-1606)
353/** Specified access handler was not found. */
354#define VERR_PGM_HANDLER_NOT_FOUND (-1607)
355/** Attempt to register a RAM range of which parts are already
356 * covered by existing RAM ranges. */
357#define VERR_PGM_RAM_CONFLICT (-1608)
358/** Failed to add new mappings because the current mappings are fixed
359 * in guest os memory. */
360#define VERR_PGM_MAPPINGS_FIXED (-1609)
361/** Failed to fix mappings because of a conflict with the intermediate code. */
362#define VERR_PGM_MAPPINGS_FIX_CONFLICT (-1610)
363/** Failed to fix mappings because a mapping rejected the address. */
364#define VERR_PGM_MAPPINGS_FIX_REJECTED (-1611)
365/** Failed to fix mappings because the proposed memory area was to small. */
366#define VERR_PGM_MAPPINGS_FIX_TOO_SMALL (-1612)
367/** Reason for leaving GC: The urge to syncing CR3. */
368#define VINF_PGM_SYNC_CR3 1613
369/** Page not marked for dirty bit tracking */
370#define VINF_PGM_NO_DIRTY_BIT_TRACKING 1614
371/** Page fault caused by dirty bit tracking; corrected */
372#define VINF_PGM_HANDLED_DIRTY_BIT_FAULT 1615
373/** Go ahead with the default Read/Write operation.
374 * This is returned by a HC physical or virtual handler when it wants the PGMPhys[Read|Write]
375 * routine do the reading/writing. */
376#define VINF_PGM_HANDLER_DO_DEFAULT 1616
377/** The paging mode of the host is not supported yet. */
378#define VERR_PGM_UNSUPPORTED_HOST_PAGING_MODE (-1617)
379/** The physical guest page is a reserved/mmio page and does not have any HC address. */
380#define VERR_PGM_PHYS_PAGE_RESERVED (-1618)
381/** No page directory available for the hypervisor. */
382#define VERR_PGM_NO_HYPERVISOR_ADDRESS (-1619)
383/** The shadow page pool was flushed.
384 * This means that a global CR3 sync was flagged. Anyone receiving this kind of status
385 * will have to get down to a SyncCR3 ASAP. See also VINF_PGM_SYNC_CR3. */
386#define VERR_PGM_POOL_FLUSHED (-1620)
387/** The shadow page pool was cleared.
388 * This is a error code internal to the shadow page pool, it will be
389 * converted to a VERR_PGM_POOL_FLUSHED before leaving the pool code. */
390#define VERR_PGM_POOL_CLEARED (-1621)
391/** The returned shadow page is cached. */
392#define VINF_PGM_CACHED_PAGE 1622
393/** Returned by handler registration, modification and deregistration
394 * when the shadow PTs could be updated because the guest page
395 * aliased or/and mapped by multiple PTs. */
396#define VINF_PGM_GCPHYS_ALIASED 1623
397/** Reason for leaving GC: Paging mode changed.
398 * PGMChangeMode() uses this to force a switch to HC so it can safely
399 * deal with a mode switch.
400 */
401#define VINF_PGM_CHANGE_MODE 1624
402/** SyncPage modified the PDE.
403 * This is an internal status code used to communicate back to the \#PF handler
404 * that the PDE was (probably) marked not-present and it should restart the instruction. */
405#define VINF_PGM_SYNCPAGE_MODIFIED_PDE 1625
406/** Physical range crosses dynamic ram chunk boundary; translation to HC ptr not safe. */
407#define VERR_PGM_GCPHYS_RANGE_CROSSES_BOUNDARY (-1626)
408/** Conflict between the core memory and the intermediate paging context, try again.
409 * There are some very special conditions applying to the intermediate paging context
410 * (used during the world switches), and some times we continuously run into these
411 * when asking the host kernel for memory during VM init. Let us know if you run into
412 * this and we'll adjust the code so it tries harder to avoid it.
413 */
414#define VERR_PGM_INTERMEDIATE_PAGING_CONFLICT (-1627)
415/** The shadow paging mode is not supported yet. */
416#define VERR_PGM_UNSUPPORTED_SHADOW_PAGING_MODE (-1628)
417/** The dynamic mapping cache for physical memory failed. */
418#define VERR_PGM_DYNMAP_FAILED (-1629)
419/** The auto usage cache for the dynamic mapping set is full. */
420#define VERR_PGM_DYNMAP_FULL_SET (-1630)
421/** The initialization of the dynamic mapping cache failed. */
422#define VERR_PGM_DYNMAP_SETUP_ERROR (-1631)
423/** The expanding of the dynamic mapping cache failed. */
424#define VERR_PGM_DYNMAP_EXPAND_ERROR (-1632)
425/** The page is unassigned (akin to VERR_PGM_INVALID_GC_PHYSICAL_ADDRESS). */
426#define VERR_PGM_PHYS_TLB_UNASSIGNED (-1633)
427/** Catch any access and route it thru PGM. */
428#define VERR_PGM_PHYS_TLB_CATCH_ALL (-1634)
429/** Catch write access and route it thru PGM. */
430#define VINF_PGM_PHYS_TLB_CATCH_WRITE 1635
431
432/** @} */
433
434
435/** @name Memory Monitor (MM) Status Codes
436 * @{
437 */
438/** Attempt to register a RAM range of which parts are already
439 * covered by existing RAM ranges. */
440#define VERR_MM_RAM_CONFLICT (-1700)
441/** Hypervisor memory allocation failed. */
442#define VERR_MM_HYPER_NO_MEMORY (-1701)
443
444/** @} */
445
446
447/** @name Save State Manager (SSM) Status Codes
448 * @{
449 */
450/** The specified data unit already exist. */
451#define VERR_SSM_UNIT_EXISTS (-1800)
452/** The specified data unit wasn't found. */
453#define VERR_SSM_UNIT_NOT_FOUND (-1801)
454/** The specified data unit wasn't owned by caller. */
455#define VERR_SSM_UNIT_NOT_OWNER (-1802)
456/** General saved state file integrity error. */
457#define VERR_SSM_INTEGRITY (-1810)
458/** The saved state file magic was not recognized. */
459#define VERR_SSM_INTEGRITY_MAGIC (-1811)
460/** The saved state file version is not supported. */
461#define VERR_SSM_INTEGRITY_VERSION (-1812)
462/** The saved state file size didn't match the one in the header. */
463#define VERR_SSM_INTEGRITY_SIZE (-1813)
464/** The CRC of the saved state file did match. */
465#define VERR_SSM_INTEGRITY_CRC (-1814)
466/** The current virtual machine id didn't match the virtual machine id. */
467#define VERR_SMM_INTEGRITY_MACHINE (-1815)
468/** Invalid unit magic (internal data tag). */
469#define VERR_SSM_INTEGRITY_UNIT_MAGIC (-1816)
470/** The file contained a data unit which no-one wants. */
471#define VERR_SSM_INTEGRITY_UNIT_NOT_FOUND (-1817)
472/** A data unit in the saved state file was defined but didn't any
473 * routine for processing it. */
474#define VERR_SSM_NO_LOAD_EXEC (-1818)
475/** A restore routine attempted to load more data then the unit contained. */
476#define VERR_SSM_LOADED_TOO_MUCH (-1819)
477/** Not in the correct state for the attempted operation. */
478#define VERR_SSM_INVALID_STATE (-1820)
479
480/** Unsupported data unit version.
481 * A SSM user returns this if it doesn't know the u32Version. */
482#define VERR_SSM_UNSUPPORTED_DATA_UNIT_VERSION (-1821)
483/** The format of a data unit has changed.
484 * A SSM user returns this if it's not able to read the format for
485 * other reasons than u32Version. */
486#define VERR_SSM_DATA_UNIT_FORMAT_CHANGED (-1822)
487/** The CPUID instruction returns different information when loading than when saved.
488 * Normally caused by hardware changes on the host, but could also be caused by
489 * changes in the BIOS setup. */
490#define VERR_SSM_LOAD_CPUID_MISMATCH (-1823)
491/** The RAM size differes between the saved state and the VM config. */
492#define VERR_SSM_LOAD_MEMORY_SIZE_MISMATCH (-1824)
493/** The state doesn't match the VM configuration in one or another way.
494 * (There are certain PCI reconfiguration which the OS could potentially
495 * do which can cause this problem. Check this out when it happens.) */
496#define VERR_SSM_LOAD_CONFIG_MISMATCH (-1825)
497/** The virtual clock freqency differs too much.
498 * The clock source for the virtual time isn't reliable or the code have changed. */
499#define VERR_SSM_VIRTUAL_CLOCK_HZ (-1826)
500/** A timeout occured while waiting for async IDE operations to finish. */
501#define VERR_SSM_IDE_ASYNC_TIMEOUT (-1827)
502/** One of the structure magics was wrong. */
503#define VERR_SSM_STRUCTURE_MAGIC (-1828)
504/** The data in the saved state doesn't confirm to expectations. */
505#define VERR_SSM_UNEXPECTED_DATA (-1829)
506/** @} */
507
508
509/** @name Virtual Machine (VM) Status Codes
510 * @{
511 */
512/** The specified at reset handler wasn't found. */
513#define VERR_VM_ATRESET_NOT_FOUND (-1900)
514/** Invalid VM request type.
515 * For the VMR3ReqAlloc() case, the caller just specified an illegal enmType. For
516 * all the other occurences it means indicates corruption, broken logic, or stupid
517 * interface user. */
518#define VERR_VM_REQUEST_INVALID_TYPE (-1901)
519/** Invalid VM request state.
520 * The state of the request packet was not the expected and accepted one(s). Either
521 * the interface user screwed up, or we've got corruption/broken logic. */
522#define VERR_VM_REQUEST_STATE (-1902)
523/** Invalid VM request packet.
524 * One or more of the the VM controlled packet members didn't contain the correct
525 * values. Some thing's broken. */
526#define VERR_VM_REQUEST_INVALID_PACKAGE (-1903)
527/** The status field has not been updated yet as the request is still
528 * pending completion. Someone queried the iStatus field before the request
529 * has been fully processed. */
530#define VERR_VM_REQUEST_STATUS_STILL_PENDING (-1904)
531/** The request has been freed, don't read the status now.
532 * Someone is reading the iStatus field of a freed request packet. */
533#define VERR_VM_REQUEST_STATUS_FREED (-1905)
534/** A VM api requiring EMT was called from another thread.
535 * Use the VMR3ReqCall() apis to call it! */
536#define VERR_VM_THREAD_NOT_EMT (-1906)
537/** The VM state was invalid for the requested operation.
538 * Go check the 'VM Statechart Diagram.gif'. */
539#define VERR_VM_INVALID_VM_STATE (-1907)
540/** The support driver is not installed.
541 * On linux, open returned ENOENT. */
542#define VERR_VM_DRIVER_NOT_INSTALLED (-1908)
543/** The support driver is not accessible.
544 * On linux, open returned EPERM. */
545#define VERR_VM_DRIVER_NOT_ACCESSIBLE (-1909)
546/** Was not able to load the support driver.
547 * On linux, open returned ENODEV. */
548#define VERR_VM_DRIVER_LOAD_ERROR (-1910)
549/** Was not able to open the support driver.
550 * Generic open error used when none of the other ones fit. */
551#define VERR_VM_DRIVER_OPEN_ERROR (-1911)
552/** The installed support driver doesn't match the version of the user. */
553#define VERR_VM_DRIVER_VERSION_MISMATCH (-1912)
554/** Saving the VM state is temporarily not allowed. Try again later. */
555#define VERR_VM_SAVE_STATE_NOT_ALLOWED (-1913)
556/** @} */
557
558
559/** @name VBox Remote Desktop Protocol (VRDP) Status Codes
560 * @{
561 */
562/** Successful completion of operation (mapped to generic iprt status code). */
563#define VINF_VRDP_SUCCESS VINF_SUCCESS
564/** VRDP transport operation timed out (mapped to generic iprt status code). */
565#define VERR_VRDP_TIMEOUT VERR_TIMEOUT
566
567/** Unsupported ISO protocol feature */
568#define VERR_VRDP_ISO_UNSUPPORTED (-2000)
569/** Security (en/decryption) engine error */
570#define VERR_VRDP_SEC_ENGINE_FAIL (-2001)
571/** VRDP protocol violation */
572#define VERR_VRDP_PROTOCOL_ERROR (-2002)
573/** Unsupported VRDP protocol feature */
574#define VERR_VRDP_NOT_SUPPORTED (-2003)
575/** VRDP protocol violation, client sends less data than expected */
576#define VERR_VRDP_INSUFFICIENT_DATA (-2004)
577/** Internal error, VRDP packet is in wrong operation mode */
578#define VERR_VRDP_INVALID_MODE (-2005)
579/** Memory allocation failed */
580#define VERR_VRDP_NO_MEMORY (-2006)
581/** Client has been rejected */
582#define VERR_VRDP_ACCESS_DENIED (-2007)
583/** VRPD receives a packet that is not supported */
584#define VWRN_VRDP_PDU_NOT_SUPPORTED 2008
585/** VRDP script allowed the packet to be processed further */
586#define VINF_VRDP_PROCESS_PDU 2009
587/** VRDP script has completed its task */
588#define VINF_VRDP_OPERATION_COMPLETED 2010
589/** VRDP thread has started OK and will run */
590#define VINF_VRDP_THREAD_STARTED 2011
591/** Framebuffer is resized, terminate send bitmap procedure */
592#define VINF_VRDP_RESIZE_REQUESTED 2012
593/** Output can be enabled for the client. */
594#define VINF_VRDP_OUTPUT_ENABLE 2013
595/** @} */
596
597
598/** @name Configuration Manager (CFGM) Status Codes
599 * @{
600 */
601/** The integer value was too big for the requested representation. */
602#define VERR_CFGM_INTEGER_TOO_BIG (-2100)
603/** Child node was not found. */
604#define VERR_CFGM_CHILD_NOT_FOUND (-2101)
605/** Path to child node was invalid (i.e. empty). */
606#define VERR_CFGM_INVALID_CHILD_PATH (-2102)
607/** Value not found. */
608#define VERR_CFGM_VALUE_NOT_FOUND (-2103)
609/** No parent node specified. */
610#define VERR_CFGM_NO_PARENT (-2104)
611/** No node was specified. */
612#define VERR_CFGM_NO_NODE (-2105)
613/** The value is not an integer. */
614#define VERR_CFGM_NOT_INTEGER (-2106)
615/** The value is not a zero terminated character string. */
616#define VERR_CFGM_NOT_STRING (-2107)
617/** The value is not a byte string. */
618#define VERR_CFGM_NOT_BYTES (-2108)
619/** The specified string / bytes buffer was to small. Specify a larger one and retry. */
620#define VERR_CFGM_NOT_ENOUGH_SPACE (-2109)
621/** The path of a new node contained slashs or was empty. */
622#define VERR_CFGM_INVALID_NODE_PATH (-2160)
623/** A new node couldn't be inserted because one with the same name exists. */
624#define VERR_CFGM_NODE_EXISTS (-2161)
625/** A new leaf couldn't be inserted because one with the same name exists. */
626#define VERR_CFGM_LEAF_EXISTS (-2162)
627/** @} */
628
629
630/** @name Time Manager (TM) Status Codes
631 * @{
632 */
633/** The loaded timer state was incorrect. */
634#define VERR_TM_LOAD_STATE (-2200)
635/** The timer was not in the correct state for the request operation. */
636#define VERR_TM_INVALID_STATE (-2201)
637/** The timer was in a unknown state. Corruption or stupid coding error. */
638#define VERR_TM_UNKNOWN_STATE (-2202)
639/** The timer was stuck in an unstable state until we grew impatient and returned. */
640#define VERR_TM_UNSTABLE_STATE (-2203)
641/** @} */
642
643
644/** @name Recompiled Execution Manager (REM) Status Codes
645 * @{
646 */
647/** Fatal error in virtual hardware. */
648#define VERR_REM_VIRTUAL_HARDWARE_ERROR (-2300)
649/** Fatal error in the recompiler cpu. */
650#define VERR_REM_VIRTUAL_CPU_ERROR (-2301)
651/** Recompiler execution was interrupted by forced action. */
652#define VINF_REM_INTERRUPED_FF 2302
653/** Reason for leaving GC: Must flush pending invlpg operations to REM.
654 * Tell REM to flush page invalidations. Will temporary go to REM context
655 * from REM and perform the flushes. */
656#define VERR_REM_FLUSHED_PAGES_OVERFLOW (-2303)
657/** Too many similar traps. This is a very useful debug only
658 * check (we don't do double/tripple faults in REM). */
659#define VERR_REM_TOO_MANY_TRAPS (-2304)
660/** The REM is out of breakpoint slots. */
661#define VERR_REM_NO_MORE_BP_SLOTS (-2305)
662/** The REM could not find any breakpoint on the specified address. */
663#define VERR_REM_BP_NOT_FOUND (-2306)
664/** @} */
665
666
667/** @name Trap Manager / Monitor (TRPM) Status Codes
668 * @{
669 */
670/** No active trap. Cannot query or reset a non-existing trap. */
671#define VERR_TRPM_NO_ACTIVE_TRAP (-2400)
672/** Active trap. Cannot assert a new trap when when one is already active. */
673#define VERR_TRPM_ACTIVE_TRAP (-2401)
674/** Reason for leaving GC: Guest tried to write to our IDT - fatal.
675 * The VM will be terminated assuming the worst, i.e. that the
676 * guest has read the idtr register. */
677#define VERR_TRPM_SHADOW_IDT_WRITE (-2402)
678/** Reason for leaving GC: Fatal trap in hypervisor. */
679#define VERR_TRPM_DONT_PANIC (-2403)
680/** Reason for leaving GC: Double Fault. */
681#define VERR_TRPM_PANIC (-2404)
682/** The exception was dispatched for raw-mode execution. */
683#define VINF_TRPM_XCPT_DISPATCHED 2405
684/** @} */
685
686
687/** @name Selector Manager / Monitor (SELM) Status Code
688 * @{
689 */
690/** Reason for leaving GC: Guest tried to write to our GDT - fatal.
691 * The VM will be terminated assuming the worst, i.e. that the
692 * guest has read the gdtr register. */
693#define VERR_SELM_SHADOW_GDT_WRITE (-2500)
694/** Reason for leaving GC: Guest tried to write to our LDT - fatal.
695 * The VM will be terminated assuming the worst, i.e. that the
696 * guest has read the ldtr register. */
697#define VERR_SELM_SHADOW_LDT_WRITE (-2501)
698/** Reason for leaving GC: Guest tried to write to our TSS - fatal.
699 * The VM will be terminated assuming the worst, i.e. that the
700 * guest has read the ltr register. */
701#define VERR_SELM_SHADOW_TSS_WRITE (-2502)
702/** Reason for leaving GC: Sync the GDT table to solve a conflict. */
703#define VINF_SELM_SYNC_GDT 2503
704/** No valid TSS present. */
705#define VERR_SELM_NO_TSS (-2504)
706/** @} */
707
708
709/** @name I/O Manager / Monitor (IOM) Status Code
710 * @{
711 */
712/** The specified I/O port range was invalid.
713 * It was either empty or it was out of bounds. */
714#define VERR_IOM_INVALID_IOPORT_RANGE (-2600)
715/** The specified GC I/O port range didn't have a corresponding HC range.
716 * IOMIOPortRegisterHC() must be called before IOMIOPortRegisterGC(). */
717#define VERR_IOM_NO_HC_IOPORT_RANGE (-2601)
718/** The specified I/O port range intruded on an existing range. There is
719 * a I/O port conflict between two device, or a device tried to register
720 * the same range twice. */
721#define VERR_IOM_IOPORT_RANGE_CONFLICT (-2602)
722/** The I/O port range specified for removal wasn't found or it wasn't contiguous. */
723#define VERR_IOM_IOPORT_RANGE_NOT_FOUND (-2603)
724/** The specified I/O port range was owned by some other device(s). Both registration
725 * and deregistration, but in the first case only GC ranges. */
726#define VERR_IOM_NOT_IOPORT_RANGE_OWNER (-2604)
727
728/** The specified MMIO range was invalid.
729 * It was either empty or it was out of bounds. */
730#define VERR_IOM_INVALID_MMIO_RANGE (-2605)
731/** The specified GC MMIO range didn't have a corresponding HC range.
732 * IOMMMIORegisterHC() must be called before IOMMMIORegisterGC(). */
733#define VERR_IOM_NO_HC_MMIO_RANGE (-2606)
734/** The specified MMIO range was owned by some other device(s). Both registration
735 * and deregistration, but in the first case only GC ranges. */
736#define VERR_IOM_NOT_MMIO_RANGE_OWNER (-2607)
737/** The specified MMIO range intruded on an existing range. There is
738 * a MMIO conflict between two device, or a device tried to register
739 * the same range twice. */
740#define VERR_IOM_MMIO_RANGE_CONFLICT (-2608)
741/** The MMIO range specified for removal was not found. */
742#define VERR_IOM_MMIO_RANGE_NOT_FOUND (-2609)
743/** The MMIO range specified for removal was invalid. The range didn't match
744 * quite match a set of existing ranges. It's not possible to remove parts of
745 * a MMIO range, only one or more full ranges. */
746#define VERR_IOM_INCOMPLETE_MMIO_RANGE (-2610)
747/** An invalid I/O port size was specified for a read or write operation. */
748#define VERR_IOM_INVALID_IOPORT_SIZE (-2611)
749/** The MMIO handler was called for a bogus address! Internal error! */
750#define VERR_IOM_MMIO_HANDLER_BOGUS_CALL (-2612)
751/** The MMIO handler experienced a problem with the disassembler. */
752#define VERR_IOM_MMIO_HANDLER_DISASM_ERROR (-2613)
753/** The port being read was not present(/unused) and IOM shall return ~0 according to size. */
754#define VERR_IOM_IOPORT_UNUSED (-2614)
755/** Unused MMIO register read, fill with 00. */
756#define VINF_IOM_MMIO_UNUSED_00 2615
757/** Unused MMIO register read, fill with FF. */
758#define VINF_IOM_MMIO_UNUSED_FF 2616
759
760/** Reason for leaving GC: I/O port read. */
761#define VINF_IOM_HC_IOPORT_READ 2620
762/** Reason for leaving GC: I/O port write. */
763#define VINF_IOM_HC_IOPORT_WRITE 2621
764/** Reason for leaving GC: MMIO write. */
765#define VINF_IOM_HC_MMIO_READ 2623
766/** Reason for leaving GC: MMIO read. */
767#define VINF_IOM_HC_MMIO_WRITE 2624
768/** Reason for leaving GC: MMIO read/write. */
769#define VINF_IOM_HC_MMIO_READ_WRITE 2625
770/** @} */
771
772
773/** @name Virtual Machine Monitor (VMM) Status Codes
774 * @{
775 */
776/** Reason for leaving GC: Calling host function. */
777#define VINF_VMM_CALL_HOST 2700
778/** Reason for leaving R0: Hit a ring-0 assertion on EMT. */
779#define VERR_VMM_RING0_ASSERTION (-2701)
780/** @} */
781
782
783/** @name Pluggable Device and Driver Manager (PDM) Status Codes
784 * @{
785 */
786/** An invalid LUN specification was given. */
787#define VERR_PDM_NO_SUCH_LUN (-2800)
788/** A device encountered an unknown configuration value.
789 * This means that the device is potentially misconfigured and the device
790 * construction or unit attachment failed because of this. */
791#define VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES (-2801)
792/** The above driver doesn't export a interface required by a driver being
793 * attached to it. Typical misconfiguration problem. */
794#define VERR_PDM_MISSING_INTERFACE_ABOVE (-2802)
795/** The below driver doesn't export a interface required by the drive
796 * having attached it. Typical misconfiguration problem. */
797#define VERR_PDM_MISSING_INTERFACE_BELOW (-2803)
798/** A device didn't find a required interface with an attached driver.
799 * Typical misconfiguration problem. */
800#define VERR_PDM_MISSING_INTERFACE (-2804)
801/** A driver encountered an unknown configuration value.
802 * This means that the driver is potentially misconfigured and the driver
803 * construction failed because of this. */
804#define VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES (-2805)
805/** The PCI bus assigned to a device didn't have room for it.
806 * Either too many devices are configured on the same PCI bus, or there are
807 * some internal problem where PDM/PCI doesn't free up slots when unplugging devices. */
808#define VERR_PDM_TOO_PCI_MANY_DEVICES (-2806)
809/** A queue is out of free items, the queueing operation failed. */
810#define VERR_PDM_NO_QUEUE_ITEMS (-2807)
811/** Not possible to attach further drivers to the driver.
812 * A driver which doesn't support attachments (below of course) will
813 * return this status code if it found that further drivers were configured
814 * to be attached to it. */
815#define VERR_PDM_DRVINS_NO_ATTACH (-2808)
816/** Not possible to attach drivers to the device.
817 * A device which doesn't support attachments (below of course) will
818 * return this status code if it found that drivers were configured
819 * to be attached to it. */
820#define VERR_PDM_DEVINS_NO_ATTACH (-2809)
821/** No attached driver.
822 * The PDMDRVHLP::pfnAttach and PDMDEVHLP::pfnDriverAttach will return
823 * this error when no driver was configured to be attached. */
824#define VERR_PDM_NO_ATTACHED_DRIVER (-2810)
825/** The media geometry hasn't been set yet, so it cannot be obtained.
826 * The caller should then calculate the geometry from the media size. */
827#define VERR_PDM_GEOMETRY_NOT_SET (-2811)
828/** The media translation hasn't been set yet, so it cannot be obtained.
829 * The caller should then guess the translation. */
830#define VERR_PDM_TRANSLATION_NOT_SET (-2812)
831/** The media is not mounted, operation requires a mounted media. */
832#define VERR_PDM_MEDIA_NOT_MOUNTED (-2813)
833/** Mount failed because a media was already mounted. Unmount the media
834 * and retry the mount. */
835#define VERR_PDM_MEDIA_MOUNTED (-2814)
836/** The media is locked and cannot be unmounted. */
837#define VERR_PDM_MEDIA_LOCKED (-2815)
838/** No 'Type' attribute in the DrvBlock configuration.
839 * Misconfiguration. */
840#define VERR_PDM_BLOCK_NO_TYPE (-2816)
841/** The 'Type' attribute in the DrvBlock configuration had an unknown value.
842 * Misconfiguration. */
843#define VERR_PDM_BLOCK_UNKNOWN_TYPE (-2817)
844/** The 'Translation' attribute in the DrvBlock configuration had an unknown value.
845 * Misconfiguration. */
846#define VERR_PDM_BLOCK_UNKNOWN_TRANSLATION (-2818)
847/** The block driver type wasn't supported.
848 * Misconfiguration of the kind you get when attaching a floppy to an IDE controller. */
849#define VERR_PDM_UNSUPPORTED_BLOCK_TYPE (-2819)
850/** A attach or prepare mount call failed because the driver already
851 * had a driver attached. */
852#define VERR_PDM_DRIVER_ALREADY_ATTACHED (-2820)
853/** An attempt on deattaching a driver without anyone actually being attached, or
854 * performing any other operation on an attached driver. */
855#define VERR_PDM_NO_DRIVER_ATTACHED (-2821)
856/** The attached driver configuration is missing the 'Driver' attribute. */
857#define VERR_PDM_CFG_MISSING_DRIVER_NAME (-2822)
858/** The configured driver wasn't found.
859 * Either the necessary driver modules wasn't loaded, the name was
860 * misspelled, or it was a misconfiguration. */
861#define VERR_PDM_DRIVER_NOT_FOUND (-2823)
862/** The Ring-3 module was already loaded. */
863#define VINF_PDM_ALREADY_LOADED (2824)
864/** The name of the module clashed with an existing module. */
865#define VERR_PDM_MODULE_NAME_CLASH (-2825)
866/** Couldn't find any export for registration of drivers/devices. */
867#define VERR_PDM_NO_REGISTRATION_EXPORT (-2826)
868/** A module name is too long. */
869#define VERR_PDM_MODULE_NAME_TOO_LONG (-2827)
870/** Driver name clash. Another driver with the same name as the
871 * one begin registred exists. */
872#define VERR_PDM_DRIVER_NAME_CLASH (-2828)
873/** The version of the driver registration structure is unknown
874 * to this VBox version. Either mixing incompatible versions or
875 * the structure isn't correctly initialized. */
876#define VERR_PDM_UNKNOWN_DRVREG_VERSION (-2829)
877/** Invalid entry in the driver registration structure. */
878#define VERR_PDM_INVALID_DRIVER_REGISTRATION (-2830)
879/** Invalid host bit mask. */
880#define VERR_PDM_INVALID_DRIVER_HOST_BITS (-2831)
881/** Not possible to detach a driver because the above driver/device
882 * doesn't support it. The above entity doesn't implement the pfnDetach call. */
883#define VERR_PDM_DRIVER_DETACH_NOT_POSSIBLE (-2832)
884/** No PCI Bus is available to register the device with. This is usually a
885 * misconfiguration or in rare cases a buggy pci device. */
886#define VERR_PDM_NO_PCI_BUS (-2833)
887/** The device is not a registered PCI device and thus cannot
888 * perform any PCI operations. The device forgot to register it self. */
889#define VERR_PDM_NOT_PCI_DEVICE (-2834)
890
891/** The version of the device registration structure is unknown
892 * to this VBox version. Either mixing incompatible versions or
893 * the structure isn't correctly initialized. */
894#define VERR_PDM_UNKNOWN_DEVREG_VERSION (-2835)
895/** Invalid entry in the device registration structure. */
896#define VERR_PDM_INVALID_DEVICE_REGISTRATION (-2836)
897/** Invalid host bit mask. */
898#define VERR_PDM_INVALID_DEVICE_GUEST_BITS (-2837)
899/** The guest bit mask didn't match the guest being loaded. */
900#define VERR_PDM_INVALID_DEVICE_HOST_BITS (-2838)
901/** Device name clash. Another device with the same name as the
902 * one begin registred exists. */
903#define VERR_PDM_DEVICE_NAME_CLASH (-2839)
904/** The device wasn't found. There was no registered device
905 * by that name. */
906#define VERR_PDM_DEVICE_NOT_FOUND (-2840)
907/** The device instance was not found. */
908#define VERR_PDM_DEVICE_INSTANCE_NOT_FOUND (-2841)
909/** The device instance have no base interface. */
910#define VERR_PDM_DEVICE_INSTANCE_NO_IBASE (-2842)
911/** The device instance have no such logical unit. */
912#define VERR_PDM_DEVICE_INSTANCE_LUN_NOT_FOUND (-2843)
913/** The driver instance could not be found. */
914#define VERR_PDM_DRIVER_INSTANCE_NOT_FOUND (-2844)
915/** Logical Unit was not found. */
916#define VERR_PDM_LUN_NOT_FOUND (-2845)
917/** The Logical Unit was found, but it had no driver attached to it. */
918#define VERR_PDM_NO_DRIVER_ATTACHED_TO_LUN (-2846)
919/** The Logical Unit was found, but it had no driver attached to it. */
920#define VINF_PDM_NO_DRIVER_ATTACHED_TO_LUN 2846
921/** No PIC device instance is registered with the current VM and thus
922 * the PIC operation cannot be performed. */
923#define VERR_PDM_NO_PIC_INSTANCE (-2847)
924/** No APIC device instance is registered with the current VM and thus
925 * the APIC operation cannot be performed. */
926#define VERR_PDM_NO_APIC_INSTANCE (-2848)
927/** No DMAC device instance is registered with the current VM and thus
928 * the DMA operation cannot be performed. */
929#define VERR_PDM_NO_DMAC_INSTANCE (-2849)
930/** No RTC device instance is registered with the current VM and thus
931 * the RTC or CMOS operation cannot be performed. */
932#define VERR_PDM_NO_RTC_INSTANCE (-2850)
933/** Unable to open the host interface due to a sharing violation . */
934#define VERR_PDM_HIF_SHARING_VIOLATION (-2851)
935/** Unable to open the host interface. */
936#define VERR_PDM_HIF_OPEN_FAILED (-2852)
937/** The device doesn't support runtime driver attaching.
938 * The PDMDEVREG::pfnAttach callback function is NULL. */
939#define VERR_PDM_DEVICE_NO_RT_ATTACH (-2853)
940/** The device doesn't support runtime driver detaching.
941 * The PDMDEVREG::pfnDetach callback function is NULL. */
942#define VERR_PDM_DEVICE_NO_RT_DETACH (-2854)
943/** Invalid host interface version. */
944#define VERR_PDM_HIF_INVALID_VERSION (-2855)
945
946/** The version of the USB device registration structure is unknown
947 * to this VBox version. Either mixing incompatible versions or
948 * the structure isn't correctly initialized. */
949#define VERR_PDM_UNKNOWN_USBREG_VERSION (-2856)
950/** Invalid entry in the device registration structure. */
951#define VERR_PDM_INVALID_USB_REGISTRATION (-2857)
952/** Driver name clash. Another driver with the same name as the
953 * one begin registred exists. */
954#define VERR_PDM_USB_NAME_CLASH (-2858)
955/** The USB hub is already registered. */
956#define VERR_PDM_USB_HUB_EXISTS (-2859)
957/** Couldn't find any USB hubs to attach the device to. */
958#define VERR_PDM_NO_USB_HUBS (-2860)
959/** Couldn't find any free USB ports to attach the device to. */
960#define VERR_PDM_NO_USB_PORTS (-2861)
961/** Couldn't find the USB Proxy device. Using OSE? */
962#define VERR_PDM_NO_USBPROXY (-2862)
963/** The async completion template is still used. */
964#define VERR_PDM_ASYNC_TEMPLATE_BUSY (-2863)
965/** The async completion task is already suspended. */
966#define VERR_PDM_ASYNC_COMPLETION_ALREADY_SUSPENDED (-2864)
967/** The async completion task is not suspended. */
968#define VERR_PDM_ASYNC_COMPLETION_NOT_SUSPENDED (-2865)
969/** The driver properties were invalid, and as a consequence construction
970 * failed. Caused my unusable media or similar problems. */
971#define VERR_PDM_DRIVER_INVALID_PROPERTIES (-2866)
972/** @} */
973
974
975/** @name Host-Guest Communication Manager (HGCM) Status Codes
976 * @{
977 */
978/** Requested service does not exist. */
979#define VERR_HGCM_SERVICE_NOT_FOUND (-2900)
980/** Service rejected client connection */
981#define VINF_HGCM_CLIENT_REJECTED 2901
982/** Command address is invalid. */
983#define VERR_HGCM_INVALID_CMD_ADDRESS (-2902)
984/** Service will execute the command in background. */
985#define VINF_HGCM_ASYNC_EXECUTE 2903
986/** HGCM could not perform requested operation because of an internal error. */
987#define VERR_HGCM_INTERNAL (-2904)
988/** Invalid HGCM client id. */
989#define VERR_HGCM_INVALID_CLIENT_ID (-2905)
990/** The HGCM is saving state. */
991#define VINF_HGCM_SAVE_STATE (2906)
992/** Requested service already exists. */
993#define VERR_HGCM_SERVICE_EXISTS (-2907)
994
995/** @} */
996
997
998/** @name Network Address Translation Driver (DrvNAT) Status Codes
999 * @{
1000 */
1001/** Failed to find the DNS configured for this machine. */
1002#define VINF_NAT_DNS 3000
1003/** Failed to convert the specified Guest IP to a binary IP address.
1004 * Malformed input. */
1005#define VERR_NAT_REDIR_GUEST_IP (-3001)
1006/** Failed while setting up a redirector rule.
1007 * There probably is a conflict between the rule and some existing
1008 * service on the computer. */
1009#define VERR_NAT_REDIR_SETUP (-3002)
1010/** @} */
1011
1012
1013/** @name HostIF Driver (DrvTUN) Status Codes
1014 * @{
1015 */
1016/** The Host Interface Networking init program failed. */
1017#define VERR_HOSTIF_INIT_FAILED (-3100)
1018/** The Host Interface Networking device name is too long. */
1019#define VERR_HOSTIF_DEVICE_NAME_TOO_LONG (-3101)
1020/** The Host Interface Networking name config IOCTL call failed. */
1021#define VERR_HOSTIF_IOCTL (-3102)
1022/** Failed to make the Host Interface Networking handle non-blocking. */
1023#define VERR_HOSTIF_BLOCKING (-3103)
1024/** If a Host Interface Networking filehandle was specified it's not allowed to
1025 * have any init or term programs. */
1026#define VERR_HOSTIF_FD_AND_INIT_TERM (-3104)
1027/** The Host Interface Networking terminate program failed. */
1028#define VERR_HOSTIF_TERM_FAILED (-3105)
1029/** @} */
1030
1031
1032/** @name VBox HDD Container (VD) Status Codes
1033 * @{
1034 */
1035/** Invalid image type. */
1036#define VERR_VD_INVALID_TYPE (-3200)
1037/** Operation can't be done in current HDD container state. */
1038#define VERR_VD_INVALID_STATE (-3201)
1039/** Configuration value not found. */
1040#define VERR_VD_VALUE_NOT_FOUND (-3202)
1041/** Virtual HDD is not opened. */
1042#define VERR_VD_NOT_OPENED (-3203)
1043/** Requested image is not opened. */
1044#define VERR_VD_IMAGE_NOT_FOUND (-3204)
1045/** Image is read-only. */
1046#define VERR_VD_IMAGE_READ_ONLY (-3205)
1047/** Geometry hasn't been set. */
1048#define VERR_VD_GEOMETRY_NOT_SET (-3206)
1049/** No data for this block in image. */
1050#define VERR_VD_BLOCK_FREE (-3207)
1051/** Differencing and parent images can't be used together due to UUID. */
1052#define VERR_VD_UUID_MISMATCH (-3208)
1053/** Asynchronous I/O request finished. */
1054#define VINF_VD_ASYNC_IO_FINISHED 3209
1055/** Asynchronous I/O is not finished yet. */
1056#define VERR_VD_ASYNC_IO_IN_PROGRESS (-3210)
1057/** Generic: Invalid image file header. Use this for plugins. */
1058#define VERR_VD_GEN_INVALID_HEADER (-3220)
1059/** VDI: Invalid image file header. */
1060#define VERR_VD_VDI_INVALID_HEADER (-3230)
1061/** VDI: Invalid image file header: invalid signature. */
1062#define VERR_VD_VDI_INVALID_SIGNATURE (-3231)
1063/** VDI: Invalid image file header: invalid version. */
1064#define VERR_VD_VDI_UNSUPPORTED_VERSION (-3232)
1065/** Comment string is too long. */
1066#define VERR_VD_VDI_COMMENT_TOO_LONG (-3233)
1067/** VMDK: Invalid image file header. */
1068#define VERR_VD_VMDK_INVALID_HEADER (-3240)
1069/** VMDK: Invalid image file header: invalid version. */
1070#define VERR_VD_VMDK_UNSUPPORTED_VERSION (-3241)
1071/** VMDK: Image property not found. */
1072#define VERR_VD_VMDK_VALUE_NOT_FOUND (-3242)
1073/** VMDK: Operation can't be done in current image state. */
1074#define VERR_VD_VMDK_INVALID_STATE (-3243)
1075/** iSCSI: Invalid header, i.e. dummy for validity check. */
1076#define VERR_VD_ISCSI_INVALID_HEADER (-3250)
1077/** iSCSI: Configuration value is unknown. This indicates misconfiguration. */
1078#define VERR_VD_ISCSI_UNKNOWN_CFG_VALUES (-3251)
1079/** iSCSI: Interface is unknown. This indicates misconfiguration. */
1080#define VERR_VD_ISCSI_UNKNOWN_INTERFACE (-3252)
1081/** iSCSI: Operation can't be done in current image state. */
1082#define VERR_VD_ISCSI_INVALID_STATE (-3253)
1083/** iSCSI: Invalid device type (not a disk). */
1084#define VERR_VD_ISCSI_INVALID_TYPE (-3254)
1085/** VHD: Invalid image file header. */
1086#define VERR_VD_VHD_INVALID_HEADER (-3260)
1087/** Raw: Invalid image file header. */
1088#define VERR_VD_RAW_INVALID_HEADER (-3270)
1089/** Raw: Invalid image file type. */
1090#define VERR_VD_RAW_INVALID_TYPE (-3271)
1091/** @} */
1092
1093
1094/** @name VBox Guest Library (VBGL) Status Codes
1095 * @{
1096 */
1097/** Library was not initialized. */
1098#define VERR_VBGL_NOT_INITIALIZED (-3300)
1099/** Virtual address was not allocated by the library. */
1100#define VERR_VBGL_INVALID_ADDR (-3301)
1101/** IOCtl to VBoxGuest driver failed. */
1102#define VERR_VBGL_IOCTL_FAILED (-3302)
1103/** @} */
1104
1105
1106/** @name VBox USB (VUSB) Status Codes
1107 * @{
1108 */
1109/** No available ports on the hub.
1110 * This error is returned when a device is attempted created and/or attached
1111 * to a hub which is out of ports. */
1112#define VERR_VUSB_NO_PORTS (-3400)
1113/** The requested operation cannot be performed on a detached USB device. */
1114#define VERR_VUSB_DEVICE_NOT_ATTACHED (-3401)
1115/** Failed to allocate memory for a URB. */
1116#define VERR_VUSB_NO_URB_MEMORY (-3402)
1117/** General failure during URB queuing.
1118 * This will go away when the queueing gets proper status code handling. */
1119#define VERR_VUSB_FAILED_TO_QUEUE_URB (-3403)
1120/** Device creation failed because the USB device name was not found. */
1121#define VERR_VUSB_DEVICE_NAME_NOT_FOUND (-3404)
1122/** Not permitted to open the USB device.
1123 * The user doesn't have access to the device in the usbfs, check the mount options. */
1124#define VERR_VUSB_USBFS_PERMISSION (-3405)
1125/** The requested operation cannot be performed because the device
1126 * is currently being reset. */
1127#define VERR_VUSB_DEVICE_IS_RESETTING (-3406)
1128/** @} */
1129
1130
1131/** @name VBox VGA Status Codes
1132 * @{
1133 */
1134/** One of the custom modes was incorrect.
1135 * The format or bit count of the custom mode value is invalid. */
1136#define VERR_VGA_INVALID_CUSTOM_MODE (-3500)
1137/** The display connector is resizing. */
1138#define VINF_VGA_RESIZE_IN_PROGRESS (3501)
1139/** @} */
1140
1141
1142/** @name Internal Networking Status Codes
1143 * @{
1144 */
1145/** The networking interface to filter was not found. */
1146#define VERR_INTNET_FLT_IF_NOT_FOUND (-3600)
1147/** The networking interface to filter was busy (used by someone). */
1148#define VERR_INTNET_FLT_IF_BUSY (-3601)
1149/** Failed to create or connect to a networking interface filter. */
1150#define VERR_INTNET_FLT_IF_FAILED (-3602)
1151/** The network already exists with a different trunk configuration. */
1152#define VERR_INTNET_INCOMPATIBLE_TRUNK (-3603)
1153/** The network already exists with a different security profile (restricted / public). */
1154#define VERR_INTNET_INCOMPATIBLE_FLAGS (-3604)
1155/** @} */
1156
1157
1158/** @name Support Driver Status Codes
1159 * @{
1160 */
1161/** The component factory was not found. */
1162#define VERR_SUPDRV_COMPONENT_NOT_FOUND (-3700)
1163/** The component factories do not support the requested interface. */
1164#define VERR_SUPDRV_INTERFACE_NOT_SUPPORTED (-3701)
1165/** The service module was not found. */
1166#define VERR_SUPDRV_SERVICE_NOT_FOUND (-3702)
1167/** @} */
1168
1169
1170/** @name VBox GMM Status Codes
1171 * @{
1172 */
1173/** The GMM is out of pages and needs to be give another chunk of user memory that
1174 * it can lock down and borrow pages from. */
1175#define VERR_GMM_SEED_ME (-3800)
1176/** Unable to allocate more pages from the host system. */
1177#define VERR_GMM_OUT_OF_MEMORY (-3801)
1178/** Hit the global allocation limit.
1179 * If you know there is still sufficient memory available, try raise the limit. */
1180#define VERR_GMM_HIT_GLOBAL_LIMIT (-3802)
1181/** Hit the a VM account limit. */
1182#define VERR_GMM_HIT_VM_ACCOUNT_LIMIT (-3803)
1183/** Attempt to free more memory than what was previously allocated. */
1184#define VERR_GMM_ATTEMPT_TO_FREE_TOO_MUCH (-3804)
1185/** Attempted to report too many pages as deflated. */
1186#define VERR_GMM_ATTEMPT_TO_DEFLATE_TOO_MUCH (-3805)
1187/** The page to be freed or updated was not found. */
1188#define VERR_GMM_PAGE_NOT_FOUND (-3806)
1189/** The specified shared page was not actually private. */
1190#define VERR_GMM_PAGE_NOT_PRIVATE (-3807)
1191/** The specified shared page was not actually shared. */
1192#define VERR_GMM_PAGE_NOT_SHARED (-3808)
1193/** The page to be freed was already freed. */
1194#define VERR_GMM_PAGE_ALREADY_FREE (-3809)
1195/** The page to be updated or freed was noted owned by the caller. */
1196#define VERR_GMM_NOT_PAGE_OWNER (-3810)
1197/** The specified chunk was not found. */
1198#define VERR_GMM_CHUNK_NOT_FOUND (-3811)
1199/** The chunk has already been mapped into the process. */
1200#define VERR_GMM_CHUNK_ALREADY_MAPPED (-3812)
1201/** The chunk to be unmapped isn't actually mapped into the process. */
1202#define VERR_GMM_CHUNK_NOT_MAPPED (-3813)
1203/** The reservation or reservation update was declined - too many VMs, too
1204 * little memory, and/or too low GMM configuration. */
1205#define VERR_GMM_MEMORY_RESERVATION_DECLINED (-3814)
1206/** @} */
1207
1208
1209/** @name VBox GVM Status Codes
1210 * @{
1211 */
1212/** The GVM is out of VM handle space. */
1213#define VERR_GVM_TOO_MANY_VMS (-3900)
1214/** The EMT thread was not blocked at the time of the call. */
1215#define VINF_GVM_NOT_BLOCKED 3901
1216/** RTThreadYield was called during a GVMMR0ShcedPoll call. */
1217#define VINF_GVM_YIELDED 3902
1218/** @} */
1219
1220
1221/** @name VBox VMX Status Codes
1222 * @{
1223 */
1224/** Invalid VMCS index or write to read-only element. */
1225#define VERR_VMX_INVALID_VMCS_FIELD (-4000)
1226/** Invalid VMCS pointer. */
1227#define VERR_VMX_INVALID_VMCS_PTR (-4001)
1228/** Invalid VMXON pointer. */
1229#define VERR_VMX_INVALID_VMXON_PTR (-4002)
1230/** Generic VMX failure. */
1231#define VERR_VMX_GENERIC (-4003)
1232/** Invalid CPU mode for VMX execution. */
1233#define VERR_VMX_UNSUPPORTED_MODE (-4004)
1234/** Unable to start VM execution. */
1235#define VERR_VMX_UNABLE_TO_START_VM (-4005)
1236/** Unable to resume VM execution. */
1237#define VERR_VMX_UNABLE_TO_RESUME_VM (-4006)
1238/** Unable to switch due to invalid host state. */
1239#define VERR_VMX_INVALID_HOST_STATE (-4007)
1240/** IA32_FEATURE_CONTROL MSR not setup correcty (turn on VMX in the host system BIOS) */
1241#define VERR_VMX_ILLEGAL_FEATURE_CONTROL_MSR (-4008)
1242/** VMX CPU extension not available */
1243#define VERR_VMX_NO_VMX (-4009)
1244/** VMXON failed; possibly because it was already run before */
1245#define VERR_VMX_VMXON_FAILED (-4010)
1246/** CPU was incorrectly left in VMX root mode; incompatible with VirtualBox */
1247#define VERR_VMX_IN_VMX_ROOT_MODE (-4011)
1248/** Somebody cleared X86_CR4_VMXE in the CR4 register. */
1249#define VERR_VMX_X86_CR4_VMXE_CLEARED (-4012)
1250/** VT-x features locked or unavailable in MSR. */
1251#define VERR_VMX_MSR_LOCKED_OR_DISABLED (-4013)
1252/** Unable to switch due to invalid guest state. */
1253#define VERR_VMX_INVALID_GUEST_STATE (-4014)
1254/** Unexpected VM exit code. */
1255#define VERR_VMX_UNEXPECTED_EXIT_CODE (-4015)
1256/** Unexpected VM exception code. */
1257#define VERR_VMX_UNEXPECTED_EXCEPTION (-4016)
1258/** Unexpected interruption exit code. */
1259#define VERR_VMX_UNEXPECTED_INTERRUPTION_EXIT_CODE (-4017)
1260/** @} */
1261
1262
1263/** @name VBox SVM Status Codes
1264 * @{
1265 */
1266/** Unable to start VM execution. */
1267#define VERR_SVM_UNABLE_TO_START_VM (-4050)
1268/** SVM bit not set in K6_EFER MSR */
1269#define VERR_SVM_ILLEGAL_EFER_MSR (-4051)
1270/** SVM CPU extension not available. */
1271#define VERR_SVM_NO_SVM (-4052)
1272/** SVM CPU extension disabled (by BIOS). */
1273#define VERR_SVM_DISABLED (-4053)
1274/** @} */
1275
1276
1277/** @name VBox HWACCM Status Codes
1278 * @{
1279 */
1280/** Unable to start VM execution. */
1281#define VERR_HWACCM_UNKNOWN_CPU (-4100)
1282/** No CPUID support. */
1283#define VERR_HWACCM_NO_CPUID (-4101)
1284/** Host is about to go into suspend mode. */
1285#define VERR_HWACCM_SUSPEND_PENDING (-4102)
1286/** Conflicting CFGM values. */
1287#define VERR_HWACCM_CONFIG_MISMATCH (-4103)
1288/** @} */
1289
1290
1291/** @name VBox Disassembler Status Codes
1292 * @{
1293 */
1294/** Invalid opcode byte(s) */
1295#define VERR_DIS_INVALID_OPCODE (-4200)
1296/** Generic failure during disassembly. */
1297#define VERR_DIS_GEN_FAILURE (-4201)
1298/** @} */
1299
1300
1301/** @name VBox Webservice Status Codes
1302 * @{
1303 */
1304/** Authentication failed (ISessionManager::logon()) */
1305#define VERR_WEB_NOT_AUTHENTICATED (-4300)
1306/** Invalid format of managed object reference */
1307#define VERR_WEB_INVALID_MANAGED_OBJECT_REFERENCE (-4301)
1308/** Invalid session ID in managed object reference */
1309#define VERR_WEB_INVALID_SESSION_ID (-4302)
1310/** Invalid object ID in managed object reference */
1311#define VERR_WEB_INVALID_OBJECT_ID (-4303)
1312/** Unsupported interface for managed object reference */
1313#define VERR_WEB_UNSUPPORTED_INTERFACE (-4304)
1314/** @} */
1315
1316
1317/** @name VBox PARAV Status Codes
1318 * @{
1319 */
1320/** Switch back to host */
1321#define VINF_PARAV_SWITCH_TO_HOST 4400
1322
1323/** @} */
1324
1325/* SED-END */
1326
1327
1328/** @def VBOX_SUCCESS
1329 * Check for success.
1330 *
1331 * @returns true if rc indicates success.
1332 * @returns false if rc indicates failure.
1333 *
1334 * @param rc The iprt status code to test.
1335 */
1336#define VBOX_SUCCESS(rc) RT_SUCCESS(rc)
1337
1338/** @def VBOX_FAILURE
1339 * Check for failure.
1340 *
1341 * @returns true if rc indicates failure.
1342 * @returns false if rc indicates success.
1343 *
1344 * @param rc The iprt status code to test.
1345 */
1346#define VBOX_FAILURE(rc) RT_FAILURE(rc)
1347
1348/** @} */
1349
1350
1351#endif
1352
Note: See TracBrowser for help on using the repository browser.

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