1e07dc26bSmrg/* 2e07dc26bSmrg * Copyright (C) 2017 Oracle Corporation 3e07dc26bSmrg * 4e07dc26bSmrg * Permission is hereby granted, free of charge, to any person obtaining a 5e07dc26bSmrg * copy of this software and associated documentation files (the "Software"), 6e07dc26bSmrg * to deal in the Software without restriction, including without limitation 7e07dc26bSmrg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8e07dc26bSmrg * and/or sell copies of the Software, and to permit persons to whom the 9e07dc26bSmrg * Software is furnished to do so, subject to the following conditions: 10e07dc26bSmrg * 11e07dc26bSmrg * The above copyright notice and this permission notice shall be included in 12e07dc26bSmrg * all copies or substantial portions of the Software. 13e07dc26bSmrg * 14e07dc26bSmrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15e07dc26bSmrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16e07dc26bSmrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17e07dc26bSmrg * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 18e07dc26bSmrg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19e07dc26bSmrg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20e07dc26bSmrg * OTHER DEALINGS IN THE SOFTWARE. 21e07dc26bSmrg * 22e07dc26bSmrg * Authors: Michael Thayer <michael.thayer@oracle.com> 23e07dc26bSmrg */ 24e07dc26bSmrg 25e07dc26bSmrg#ifndef __VBOX_ERR_H__ 26e07dc26bSmrg#define __VBOX_ERR_H__ 27e07dc26bSmrg 28e07dc26bSmrg/** @name VirtualBox error macros 29e07dc26bSmrg * @{ */ 30e07dc26bSmrg 31e07dc26bSmrg#define VINF_SUCCESS 0 32e07dc26bSmrg#define VERR_INVALID_PARAMETER (-2) 33e07dc26bSmrg#define VERR_INVALID_POINTER (-6) 34e07dc26bSmrg#define VERR_NO_MEMORY (-8) 35e07dc26bSmrg#define VERR_NOT_IMPLEMENTED (-12) 36e07dc26bSmrg#define VERR_INVALID_FUNCTION (-36) 37e07dc26bSmrg#define VERR_NOT_SUPPORTED (-37) 38e07dc26bSmrg#define VERR_TOO_MUCH_DATA (-42) 39e07dc26bSmrg#define VERR_NOT_FOUND (-78) 40e07dc26bSmrg#define VERR_INVALID_STATE (-79) 41e07dc26bSmrg#define VERR_OUT_OF_RESOURCES (-80) 42e07dc26bSmrg#define VERR_ALREADY_EXISTS (-105) 43e07dc26bSmrg#define VERR_INTERNAL_ERROR (-225) 44e07dc26bSmrg 45e07dc26bSmrg#define RT_SUCCESS_NP(rc) ( (int)(rc) >= VINF_SUCCESS ) 46e07dc26bSmrg#define RT_SUCCESS(rc) ( likely(RT_SUCCESS_NP(rc)) ) 47e07dc26bSmrg#define RT_FAILURE(rc) ( unlikely(!RT_SUCCESS_NP(rc)) ) 48e07dc26bSmrg 49e07dc26bSmrg/** @} */ 50e07dc26bSmrg 51e07dc26bSmrg/** @name VirtualBox assertions 52e07dc26bSmrg * @{ */ 53e07dc26bSmrg 54e07dc26bSmrg/* Unlike BUILD_BUG_ON(), these can be used outside of functions. */ 55e07dc26bSmrgextern int vbox_assert_var[1]; 56e07dc26bSmrg#define assert_compile(expr) \ 57e07dc26bSmrg extern int vbox_assert_var[1] __attribute__((__unused__)), \ 58e07dc26bSmrg vbox_assert_var[(expr) ? 1 : 0] __attribute__((__unused__)) 59e07dc26bSmrg#define assert_compile_size(type, size) \ 60e07dc26bSmrg assert_compile(sizeof(type) == (size)) 61e07dc26bSmrg 62e07dc26bSmrg/** @} */ 63e07dc26bSmrg 64e07dc26bSmrg#endif 65