/*
 * This file is auto-generated. Modifications will be lost.
 *
 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
 * for more information.
 */
#ifndef __UAPI_VBOX_ERR_H__
#define __UAPI_VBOX_ERR_H__
#define VINF_SUCCESS 0
#define VERR_GENERAL_FAILURE (- 1)
#define VERR_INVALID_PARAMETER (- 2)
#define VERR_INVALID_MAGIC (- 3)
#define VERR_INVALID_HANDLE (- 4)
#define VERR_LOCK_FAILED (- 5)
#define VERR_INVALID_POINTER (- 6)
#define VERR_IDT_FAILED (- 7)
#define VERR_NO_MEMORY (- 8)
#define VERR_ALREADY_LOADED (- 9)
#define VERR_PERMISSION_DENIED (- 10)
#define VERR_VERSION_MISMATCH (- 11)
#define VERR_NOT_IMPLEMENTED (- 12)
#define VERR_INVALID_FLAGS (- 13)
#define VERR_NOT_EQUAL (- 18)
#define VERR_NOT_SYMLINK (- 19)
#define VERR_NO_TMP_MEMORY (- 20)
#define VERR_INVALID_FMODE (- 21)
#define VERR_WRONG_ORDER (- 22)
#define VERR_NO_TLS_FOR_SELF (- 23)
#define VERR_FAILED_TO_SET_SELF_TLS (- 24)
#define VERR_NO_CONT_MEMORY (- 26)
#define VERR_NO_PAGE_MEMORY (- 27)
#define VERR_THREAD_IS_DEAD (- 29)
#define VERR_THREAD_NOT_WAITABLE (- 30)
#define VERR_PAGE_TABLE_NOT_PRESENT (- 31)
#define VERR_INVALID_CONTEXT (- 32)
#define VERR_TIMER_BUSY (- 33)
#define VERR_ADDRESS_CONFLICT (- 34)
#define VERR_UNRESOLVED_ERROR (- 35)
#define VERR_INVALID_FUNCTION (- 36)
#define VERR_NOT_SUPPORTED (- 37)
#define VERR_ACCESS_DENIED (- 38)
#define VERR_INTERRUPTED (- 39)
#define VERR_TIMEOUT (- 40)
#define VERR_BUFFER_OVERFLOW (- 41)
#define VERR_TOO_MUCH_DATA (- 42)
#define VERR_MAX_THRDS_REACHED (- 43)
#define VERR_MAX_PROCS_REACHED (- 44)
#define VERR_SIGNAL_REFUSED (- 45)
#define VERR_SIGNAL_PENDING (- 46)
#define VERR_SIGNAL_INVALID (- 47)
#define VERR_STATE_CHANGED (- 48)
#define VERR_INVALID_UUID_FORMAT (- 49)
#define VERR_PROCESS_NOT_FOUND (- 50)
#define VERR_PROCESS_RUNNING (- 51)
#define VERR_TRY_AGAIN (- 52)
#define VERR_PARSE_ERROR (- 53)
#define VERR_OUT_OF_RANGE (- 54)
#define VERR_NUMBER_TOO_BIG (- 55)
#define VERR_NO_DIGITS (- 56)
#define VERR_NEGATIVE_UNSIGNED (- 57)
#define VERR_NO_TRANSLATION (- 58)
#define VERR_NOT_FOUND (- 78)
#define VERR_INVALID_STATE (- 79)
#define VERR_OUT_OF_RESOURCES (- 80)
#define VERR_FILE_NOT_FOUND (- 102)
#define VERR_PATH_NOT_FOUND (- 103)
#define VERR_INVALID_NAME (- 104)
#define VERR_ALREADY_EXISTS (- 105)
#define VERR_TOO_MANY_OPEN_FILES (- 106)
#define VERR_SEEK (- 107)
#define VERR_NEGATIVE_SEEK (- 108)
#define VERR_SEEK_ON_DEVICE (- 109)
#define VERR_EOF (- 110)
#define VERR_READ_ERROR (- 111)
#define VERR_WRITE_ERROR (- 112)
#define VERR_WRITE_PROTECT (- 113)
#define VERR_SHARING_VIOLATION (- 114)
#define VERR_FILE_LOCK_FAILED (- 115)
#define VERR_FILE_LOCK_VIOLATION (- 116)
#define VERR_CANT_CREATE (- 117)
#define VERR_CANT_DELETE_DIRECTORY (- 118)
#define VERR_NOT_SAME_DEVICE (- 119)
#define VERR_FILENAME_TOO_LONG (- 120)
#define VERR_MEDIA_NOT_PRESENT (- 121)
#define VERR_MEDIA_NOT_RECOGNIZED (- 122)
#define VERR_FILE_NOT_LOCKED (- 123)
#define VERR_FILE_LOCK_LOST (- 124)
#define VERR_DIR_NOT_EMPTY (- 125)
#define VERR_NOT_A_DIRECTORY (- 126)
#define VERR_IS_A_DIRECTORY (- 127)
#define VERR_FILE_TOO_BIG (- 128)
#define VERR_NET_IO_ERROR (- 400)
#define VERR_NET_OUT_OF_RESOURCES (- 401)
#define VERR_NET_HOST_NOT_FOUND (- 402)
#define VERR_NET_PATH_NOT_FOUND (- 403)
#define VERR_NET_PRINT_ERROR (- 404)
#define VERR_NET_NO_NETWORK (- 405)
#define VERR_NET_NOT_UNIQUE_NAME (- 406)
#define VERR_NET_IN_PROGRESS (- 436)
#define VERR_NET_ALREADY_IN_PROGRESS (- 437)
#define VERR_NET_NOT_SOCKET (- 438)
#define VERR_NET_DEST_ADDRESS_REQUIRED (- 439)
#define VERR_NET_MSG_SIZE (- 440)
#define VERR_NET_PROTOCOL_TYPE (- 441)
#define VERR_NET_PROTOCOL_NOT_AVAILABLE (- 442)
#define VERR_NET_PROTOCOL_NOT_SUPPORTED (- 443)
#define VERR_NET_SOCKET_TYPE_NOT_SUPPORTED (- 444)
#define VERR_NET_OPERATION_NOT_SUPPORTED (- 445)
#define VERR_NET_PROTOCOL_FAMILY_NOT_SUPPORTED (- 446)
#define VERR_NET_ADDRESS_FAMILY_NOT_SUPPORTED (- 447)
#define VERR_NET_ADDRESS_IN_USE (- 448)
#define VERR_NET_ADDRESS_NOT_AVAILABLE (- 449)
#define VERR_NET_DOWN (- 450)
#define VERR_NET_UNREACHABLE (- 451)
#define VERR_NET_CONNECTION_RESET (- 452)
#define VERR_NET_CONNECTION_ABORTED (- 453)
#define VERR_NET_CONNECTION_RESET_BY_PEER (- 454)
#define VERR_NET_NO_BUFFER_SPACE (- 455)
#define VERR_NET_ALREADY_CONNECTED (- 456)
#define VERR_NET_NOT_CONNECTED (- 457)
#define VERR_NET_SHUTDOWN (- 458)
#define VERR_NET_TOO_MANY_REFERENCES (- 459)
#define VERR_NET_CONNECTION_TIMED_OUT (- 460)
#define VERR_NET_CONNECTION_REFUSED (- 461)
#define VERR_NET_HOST_DOWN (- 464)
#define VERR_NET_HOST_UNREACHABLE (- 465)
#define VERR_NET_PROTOCOL_ERROR (- 466)
#define VERR_NET_INCOMPLETE_TX_PACKET (- 467)
#define VERR_RESOURCE_BUSY (- 138)
#define VERR_DISK_FULL (- 152)
#define VERR_TOO_MANY_SYMLINKS (- 156)
#define VERR_NO_MORE_FILES (- 201)
#define VERR_INTERNAL_ERROR (- 225)
#define VERR_INTERNAL_ERROR_2 (- 226)
#define VERR_INTERNAL_ERROR_3 (- 227)
#define VERR_INTERNAL_ERROR_4 (- 228)
#define VERR_DEV_IO_ERROR (- 250)
#define VERR_IO_BAD_LENGTH (- 255)
#define VERR_BROKEN_PIPE (- 301)
#define VERR_NO_DATA (- 304)
#define VERR_SEM_DESTROYED (- 363)
#define VERR_DEADLOCK (- 365)
#define VERR_BAD_EXE_FORMAT (- 608)
#define VINF_HGCM_ASYNC_EXECUTE (2903)
#endif
