err.h revision 08870164da59f90379b1ea9b5a2476296c362217
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * IPRT - Status Codes.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Copyright (C) 2006-2009 Sun Microsystems, Inc.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * available from http://www.virtualbox.org. This file is free software;
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * you can redistribute it and/or modify it under the terms of the GNU
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * General Public License (GPL) as published by the Free Software
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * The contents of this file may alternatively be used under the terms
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * of the Common Development and Distribution License Version 1.0
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * VirtualBox OSE distribution, in which case the provisions of the
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * CDDL are applicable instead of those of the GPL.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * You may elect to license modified versions of this file under the
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * terms and conditions of either the GPL or the CDDL or both.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * additional information or have any questions.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** @defgroup grp_rt_err RTErr - Status Codes
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @ingroup grp_rt
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** @defgroup grp_rt_err_hlp Status Code Helpers
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @ingroup grp_rt_err
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Strict type validation class.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * This is only really useful for type checking the arguments to RT_SUCCESS,
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * RT_SUCCESS_NP, RT_FAILURE and RT_FAILURE_NP. The RTErrStrictType2
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * constructor is for integration with external status code strictness regimes.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Constructor for interaction with external status code strictness regimes.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * This is a special constructor for helping external return code validator
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * classes interact cleanly with RT_SUCCESS, RT_SUCCESS_NP, RT_FAILURE and
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * RT_FAILURE_NP while barring automatic cast to integer.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param rcObj IPRT status code object from an automatic cast.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Integer constructor used by RT_SUCCESS_NP.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param rc IPRT style status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync#if 0 /** @todo figure where int32_t is long instead of int. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Integer constructor used by RT_SUCCESS_NP.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param rc IPRT style status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Test for success.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync bool success() const
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync return m_rc >= 0;
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync /** @name Try ban a number of wrong types.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync RTErrStrictType(uint8_t rc) : m_rc(-999) { NOREF(rc); }
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync RTErrStrictType(uint16_t rc) : m_rc(-999) { NOREF(rc); }
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync RTErrStrictType(uint32_t rc) : m_rc(-999) { NOREF(rc); }
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync RTErrStrictType(uint64_t rc) : m_rc(-999) { NOREF(rc); }
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync RTErrStrictType(int8_t rc) : m_rc(-999) { NOREF(rc); }
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync RTErrStrictType(int16_t rc) : m_rc(-999) { NOREF(rc); }
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync RTErrStrictType(int64_t rc) : m_rc(-999) { NOREF(rc); }
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync /** @todo fight long here - clashes with int32_t/int64_t on some platforms. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync#endif /* __cplusplus */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** @def RTERR_STRICT_RC
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Indicates that RT_SUCCESS_NP, RT_SUCCESS, RT_FAILURE_NP and RT_FAILURE should
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * make type enforcing at compile time.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @remarks Only define this for C++ code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync#if defined(__cplusplus) \
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync && !defined(RTERR_STRICT_RC) \
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync && ( defined(DOXYGEN_RUNNING) \
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync || defined(DEBUG) \
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync || defined(RT_STRICT) )
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** @def RT_SUCCESS
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Check for success. We expect success in normal cases, that is the code path depending on
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * this check is normally taken. To prevent any prediction use RT_SUCCESS_NP instead.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns true if rc indicates success.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns false if rc indicates failure.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param rc The iprt status code to test.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync#define RT_SUCCESS(rc) ( RT_LIKELY(RT_SUCCESS_NP(rc)) )
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** @def RT_SUCCESS_NP
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Check for success. Don't predict the result.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns true if rc indicates success.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns false if rc indicates failure.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param rc The iprt status code to test.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync# define RT_SUCCESS_NP(rc) ( RTErrStrictType(rc).success() )
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync# define RT_SUCCESS_NP(rc) ( (int)(rc) >= VINF_SUCCESS )
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** @def RT_FAILURE
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Check for failure. We don't expect in normal cases, that is the code path depending on
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * this check is normally NOT taken. To prevent any prediction use RT_FAILURE_NP instead.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns true if rc indicates failure.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns false if rc indicates success.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param rc The iprt status code to test.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync#define RT_FAILURE(rc) ( RT_UNLIKELY(!RT_SUCCESS_NP(rc)) )
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** @def RT_FAILURE_NP
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Check for failure. Don't predict the result.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns true if rc indicates failure.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns false if rc indicates success.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param rc The iprt status code to test.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Converts a Darwin HRESULT error to an iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param iNativeCode HRESULT error code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @remark Darwin ring-3 only.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsyncRTDECL(int) RTErrConvertFromDarwinCOM(int32_t iNativeCode);
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Converts a Darwin IOReturn error to an iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param iNativeCode IOReturn error code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @remark Darwin only.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsyncRTDECL(int) RTErrConvertFromDarwinIO(int iNativeCode);
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Converts a Darwin kern_return_t error to an iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param iNativeCode kern_return_t error code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @remark Darwin only.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsyncRTDECL(int) RTErrConvertFromDarwinKern(int iNativeCode);
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Converts a Darwin error to an iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * This will consult RTErrConvertFromDarwinKern, RTErrConvertFromDarwinIO
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * and RTErrConvertFromDarwinCOM in this order. The latter is ring-3 only as it
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * doesn't apply elsewhere.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param iNativeCode Darwin error code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @remarks Darwin only.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @remarks This is recommended over RTErrConvertFromDarwinKern and RTErrConvertFromDarwinIO
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * since these are really just subsets of the same error space.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsyncRTDECL(int) RTErrConvertFromDarwin(int iNativeCode);
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Converts errno to iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param uNativeCode errno code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsyncRTDECL(int) RTErrConvertFromErrno(unsigned uNativeCode);
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Converts a L4 errno to a iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param uNativeCode l4 errno.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @remark L4 only.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsyncRTDECL(int) RTErrConvertFromL4Errno(unsigned uNativeCode);
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Converts NT status code to iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Needless to say, this is only available on NT and winXX targets.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param lNativeCode NT status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @remark Windows only.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsyncRTDECL(int) RTErrConvertFromNtStatus(long lNativeCode);
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Converts OS/2 error code to iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param uNativeCode OS/2 error code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @remark OS/2 only.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsyncRTDECL(int) RTErrConvertFromOS2(unsigned uNativeCode);
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Converts Win32 error code to iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param uNativeCode Win32 error code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @remark Windows only.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsyncRTDECL(int) RTErrConvertFromWin32(unsigned uNativeCode);
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Converts an iprt status code to a errno status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns errno status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param iErr iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * iprt status code message.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsynctypedef struct RTSTATUSMSG
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync /** Pointer to the short message string. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync /** Pointer to the full message string. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync /** Pointer to the define string. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync /** Status code number. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Pointer to iprt status code message. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Pointer to const iprt status code message. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Get the message structure corresponding to a given iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns Pointer to read-only message description.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param rc The status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Get the define corresponding to a given iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns Pointer to read-only string with the \#define identifier.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param rc The status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync#define RTErrGetDefine(rc) (RTErrGet(rc)->pszDefine)
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Get the short description corresponding to a given iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns Pointer to read-only string with the description.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param rc The status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync#define RTErrGetShort(rc) (RTErrGet(rc)->pszMsgShort)
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Get the full description corresponding to a given iprt status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns Pointer to read-only string with the description.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param rc The status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Windows error code message.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsynctypedef struct RTWINERRMSG
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync /** Pointer to the full message string. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync /** Pointer to the define string. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync /** Error code number. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Pointer to Windows error code message. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Pointer to const Windows error code message. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Get the message structure corresponding to a given Windows error code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns Pointer to read-only message description.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param rc The status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** On windows COM errors are part of the Windows error database. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync#else /* !RT_OS_WINDOWS */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * COM/XPCOM error code message.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsynctypedef struct RTCOMERRMSG
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync /** Pointer to the full message string. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync /** Pointer to the define string. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync /** Error code number. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync#endif /* !RT_OS_WINDOWS */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Pointer to a XPCOM/COM error code message. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Pointer to const a XPCOM/COM error code message. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Get the message structure corresponding to a given COM/XPCOM error code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @returns Pointer to read-only message description.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * @param rc The status code.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync#endif /* IN_RING3 */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/* SED-START */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** @name Misc. Status Codes
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Success. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** General failure - DON'T USE THIS!!! */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Invalid parameter. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Invalid parameter. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Invalid magic or cookie. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Invalid magic or cookie. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Invalid loader handle. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Invalid loader handle. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Failed to lock the address range. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Invalid memory pointer. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Failed to patch the IDT. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Memory allocation failed. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Already loaded. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Permission denied. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Permission denied. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Version mismatch. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The request function is not implemented. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Failed to allocate temporary memory. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Invalid file mode mask (RTFMODE). */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Incorrect call order. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** There is no TLS (thread local storage) available for storing the current thread. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Failed to set the TLS (thread local storage) entry which points to our thread structure. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Not able to allocate contiguous memory. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** No memory available for page table or page directory. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Already initialized. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The specified thread is dead. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The specified thread is not waitable. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Pagetable not present. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Invalid context.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Typically an API was used by the wrong thread. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The per process timer is busy. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Address conflict. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Unresolved (unknown) host platform error. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Invalid function. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Not supported. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Access denied. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Call interrupted. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Timeout. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Buffer too small to save result. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Buffer too small to save result. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Data size overflow. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Max threads number reached. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Max process number reached. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The recipient process has refused the signal. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** A signal is already pending. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The signal being posted is not correct. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The state changed.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * This is a generic error message and needs a context to make sense. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Warning, the state changed.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * This is a generic error message and needs a context to make sense. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Error while parsing UUID string */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The specified process was not found. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The process specified to a non-block wait had not exited. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Retry the operation. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Retry the operation. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Generic parse error. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Value out of range. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** A numeric conversion encountered a value which was too big for the target. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** A numeric conversion encountered a value which was too big for the target. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The number begin converted (string) contained no digits. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The number begin converted (string) contained no digits. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Encountered a '-' during conversion to an unsigned value. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Encountered a '-' during conversion to an unsigned value. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Error while characters translation (unicode and so). */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Encountered unicode code point which is reserved for use as endian indicator (0xffff or 0xfffe). */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Encountered unicode code point in the surrogate range (0xd800 to 0xdfff). */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** A string claiming to be UTF-8 is incorrectly encoded. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Ad string claiming to be in UTF-16 is incorrectly encoded. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Encountered a unicode code point which cannot be represented as UTF-16. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Got an out of memory condition trying to allocate a string. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Got an out of memory condition trying to allocate a UTF-16 (/UCS-2) string. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Get an out of memory condition trying to allocate a code point array. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Can't free the memory because it's used in mapping. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The timer can't be started because it's already active. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The timer can't be stopped because i's already suspended. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The operation was cancelled by the user (copy) or another thread (local ipc). */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Failed to initialize a memory object.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * Exactly what this means is OS specific. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Out of memory condition when allocating memory with low physical backing. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Out of memory condition when allocating physical memory (without mapping). */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The address (virtual or physical) is too big. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Failed to map a memory object. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Trailing characters. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Trailing characters. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Trailing spaces. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Trailing spaces. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Generic not found error. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Generic not found warning. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Generic invalid state error. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Generic invalid state warning. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Generic out of resources error. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Generic out of resources warning. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** No more handles available, too many open handles. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Preemption is disabled.
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * The requested operation can only be performed when preemption is enabled. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** End of string. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** End of string. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** A page count is out of range. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Generic object destroyed status. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Generic object was destroyed by the call status. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Generic dangling objects status. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Generic dangling objects status. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Invalid Base64 encoding. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Return instigated by a callback or similar. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Return instigated by a callback or similar. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Authentication failure. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Not a power of two. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Unresolved (unknown) file i/o error. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** File/Device open failed. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** File not found. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Path not found. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Invalid (malformed) file/path name. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** File/Device already exists. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Too many open files. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Seek error. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Seek below file start. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Trying to seek on device. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Reached the end of the file. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Reached the end of the file. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Generic file read error. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Generic file write error. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Write protect error. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Sharing violation, file is being used by another process. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Unable to lock a region of a file. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** File access error, another process has locked a portion of the file. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** File or directory can't be created. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Directory can't be deleted. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Can't move file to another disk. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The filename or extension is too long. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Media not present in drive. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The type of media was not recognized. Not formatted? */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Can't unlock - region was not locked. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Unrecoverable error: lock was lost. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Can't delete directory with files. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** A directory operation was attempted on a non-directory object. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** A non-directory operation was attempted on a directory object. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Tried to grow a file beyond the limit imposed by the process or the filesystem. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** No pending request the aio context has to wait for completion. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The request could not be canceled or prepared for another transfer
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync * because it is still in progress. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The request could not be canceled because it already completed. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The I/O context couldn't be destroyed because there are still pending requests. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The requests couldn't be submitted because that would exceed the capacity of the context. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The request was canceled. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The request wasn't submitted so it can't be canceled. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** A request was not prepared and thus could not be submitted. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Not all requests could be submitted due to resource shortage. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync#define VERR_FILE_AIO_INSUFFICIENT_RESSOURCES (-137)
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Device or resource is busy. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** @name Generic Filesystem I/O Status Codes
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Unresolved (unknown) disk i/o error. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Invalid drive number. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Disk is full. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Disk was changed. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Drive is locked. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The specified disk or diskette cannot be accessed. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Too many symbolic links. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** The OS does not support setting the time stamps on a symbolic link. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** @name Generic Directory Enumeration Status Codes
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** Unresolved (unknown) search error. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** No more files found. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** No more search handles available. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** RTDirReadEx() failed to retrieve the extra data which was requested. */
9cabb72c6d6feb65e839ce50765643b98bb9a301vboxsync/** @name Internal Processing Errors
/** Source/destination not found */
/** The ELF image is 'dynamic', the ELF loader can only deal with 'relocatable' images at present. */
/** The ELF image is 'executable', the ELF loader can only deal with 'relocatable' images at present. */
* the interface user screwed up, or we've got corruption/broken logic. */