1 /* 2 * Copyright 2007, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef _ERRORS_H 6 #define _ERRORS_H 7 8 9 #include <limits.h> 10 11 12 /* Error baselines */ 13 #define B_GENERAL_ERROR_BASE LONG_MIN 14 #define B_OS_ERROR_BASE B_GENERAL_ERROR_BASE + 0x1000 15 #define B_APP_ERROR_BASE B_GENERAL_ERROR_BASE + 0x2000 16 #define B_INTERFACE_ERROR_BASE B_GENERAL_ERROR_BASE + 0x3000 17 #define B_MEDIA_ERROR_BASE B_GENERAL_ERROR_BASE + 0x4000 /* - 0x41ff */ 18 #define B_TRANSLATION_ERROR_BASE B_GENERAL_ERROR_BASE + 0x4800 /* - 0x48ff */ 19 #define B_MIDI_ERROR_BASE B_GENERAL_ERROR_BASE + 0x5000 20 #define B_STORAGE_ERROR_BASE B_GENERAL_ERROR_BASE + 0x6000 21 #define B_POSIX_ERROR_BASE B_GENERAL_ERROR_BASE + 0x7000 22 #define B_MAIL_ERROR_BASE B_GENERAL_ERROR_BASE + 0x8000 23 #define B_PRINT_ERROR_BASE B_GENERAL_ERROR_BASE + 0x9000 24 #define B_DEVICE_ERROR_BASE B_GENERAL_ERROR_BASE + 0xa000 25 26 /* Developer-defined errors start at (B_ERRORS_END+1) */ 27 #define B_ERRORS_END (B_GENERAL_ERROR_BASE + 0xffff) 28 29 /* General Errors */ 30 enum { 31 B_NO_MEMORY = B_GENERAL_ERROR_BASE, 32 B_IO_ERROR, 33 B_PERMISSION_DENIED, 34 B_BAD_INDEX, 35 B_BAD_TYPE, 36 B_BAD_VALUE, 37 B_MISMATCHED_VALUES, 38 B_NAME_NOT_FOUND, 39 B_NAME_IN_USE, 40 B_TIMED_OUT, 41 B_INTERRUPTED, 42 B_WOULD_BLOCK, 43 B_CANCELED, 44 B_NO_INIT, 45 B_BUSY, 46 B_NOT_ALLOWED, 47 B_BAD_DATA, 48 B_DONT_DO_THAT, 49 50 B_ERROR = -1, 51 B_OK = 0, 52 B_NO_ERROR = 0 53 }; 54 55 /* Kernel Kit Errors */ 56 enum { 57 B_BAD_SEM_ID = B_OS_ERROR_BASE, 58 B_NO_MORE_SEMS, 59 60 B_BAD_THREAD_ID = B_OS_ERROR_BASE + 0x100, 61 B_NO_MORE_THREADS, 62 B_BAD_THREAD_STATE, 63 B_BAD_TEAM_ID, 64 B_NO_MORE_TEAMS, 65 66 B_BAD_PORT_ID = B_OS_ERROR_BASE + 0x200, 67 B_NO_MORE_PORTS, 68 69 B_BAD_IMAGE_ID = B_OS_ERROR_BASE + 0x300, 70 B_BAD_ADDRESS, 71 B_NOT_AN_EXECUTABLE, 72 B_MISSING_LIBRARY, 73 B_MISSING_SYMBOL, 74 75 B_DEBUGGER_ALREADY_INSTALLED = B_OS_ERROR_BASE + 0x400 76 }; 77 78 /* Application Kit Errors */ 79 enum { 80 B_BAD_REPLY = B_APP_ERROR_BASE, 81 B_DUPLICATE_REPLY, 82 B_MESSAGE_TO_SELF, 83 B_BAD_HANDLER, 84 B_ALREADY_RUNNING, 85 B_LAUNCH_FAILED, 86 B_AMBIGUOUS_APP_LAUNCH, 87 B_UNKNOWN_MIME_TYPE, 88 B_BAD_SCRIPT_SYNTAX, 89 B_LAUNCH_FAILED_NO_RESOLVE_LINK, 90 B_LAUNCH_FAILED_EXECUTABLE, 91 B_LAUNCH_FAILED_APP_NOT_FOUND, 92 B_LAUNCH_FAILED_APP_IN_TRASH, 93 B_LAUNCH_FAILED_NO_PREFERRED_APP, 94 B_LAUNCH_FAILED_FILES_APP_NOT_FOUND, 95 B_BAD_MIME_SNIFFER_RULE, 96 B_NOT_A_MESSAGE, 97 B_SHUTDOWN_CANCELLED, 98 B_SHUTTING_DOWN 99 }; 100 101 /* Storage Kit/File System Errors */ 102 enum { 103 B_FILE_ERROR = B_STORAGE_ERROR_BASE, 104 B_FILE_NOT_FOUND, /* deprecated: use B_ENTRY_NOT_FOUND instead */ 105 B_FILE_EXISTS, 106 B_ENTRY_NOT_FOUND, 107 B_NAME_TOO_LONG, 108 B_NOT_A_DIRECTORY, 109 B_DIRECTORY_NOT_EMPTY, 110 B_DEVICE_FULL, 111 B_READ_ONLY_DEVICE, 112 B_IS_A_DIRECTORY, 113 B_NO_MORE_FDS, 114 B_CROSS_DEVICE_LINK, 115 B_LINK_LIMIT, 116 B_BUSTED_PIPE, 117 B_UNSUPPORTED, 118 B_PARTITION_TOO_SMALL 119 }; 120 121 /* POSIX Errors */ 122 #define E2BIG (B_POSIX_ERROR_BASE + 1) 123 #define ECHILD (B_POSIX_ERROR_BASE + 2) 124 #define EDEADLK (B_POSIX_ERROR_BASE + 3) 125 #define EFBIG (B_POSIX_ERROR_BASE + 4) 126 #define EMLINK (B_POSIX_ERROR_BASE + 5) 127 #define ENFILE (B_POSIX_ERROR_BASE + 6) 128 #define ENODEV (B_POSIX_ERROR_BASE + 7) 129 #define ENOLCK (B_POSIX_ERROR_BASE + 8) 130 #define ENOSYS (B_POSIX_ERROR_BASE + 9) 131 #define ENOTTY (B_POSIX_ERROR_BASE + 10) 132 #define ENXIO (B_POSIX_ERROR_BASE + 11) 133 #define ESPIPE (B_POSIX_ERROR_BASE + 12) 134 #define ESRCH (B_POSIX_ERROR_BASE + 13) 135 #define EFPOS (B_POSIX_ERROR_BASE + 14) 136 #define ESIGPARM (B_POSIX_ERROR_BASE + 15) 137 #define EDOM (B_POSIX_ERROR_BASE + 16) 138 #define ERANGE (B_POSIX_ERROR_BASE + 17) 139 #define EPROTOTYPE (B_POSIX_ERROR_BASE + 18) 140 #define EPROTONOSUPPORT (B_POSIX_ERROR_BASE + 19) 141 #define EPFNOSUPPORT (B_POSIX_ERROR_BASE + 20) 142 #define EAFNOSUPPORT (B_POSIX_ERROR_BASE + 21) 143 #define EADDRINUSE (B_POSIX_ERROR_BASE + 22) 144 #define EADDRNOTAVAIL (B_POSIX_ERROR_BASE + 23) 145 #define ENETDOWN (B_POSIX_ERROR_BASE + 24) 146 #define ENETUNREACH (B_POSIX_ERROR_BASE + 25) 147 #define ENETRESET (B_POSIX_ERROR_BASE + 26) 148 #define ECONNABORTED (B_POSIX_ERROR_BASE + 27) 149 #define ECONNRESET (B_POSIX_ERROR_BASE + 28) 150 #define EISCONN (B_POSIX_ERROR_BASE + 29) 151 #define ENOTCONN (B_POSIX_ERROR_BASE + 30) 152 #define ESHUTDOWN (B_POSIX_ERROR_BASE + 31) 153 #define ECONNREFUSED (B_POSIX_ERROR_BASE + 32) 154 #define EHOSTUNREACH (B_POSIX_ERROR_BASE + 33) 155 #define ENOPROTOOPT (B_POSIX_ERROR_BASE + 34) 156 #define ENOBUFS (B_POSIX_ERROR_BASE + 35) 157 #define EINPROGRESS (B_POSIX_ERROR_BASE + 36) 158 #define EALREADY (B_POSIX_ERROR_BASE + 37) 159 #define EILSEQ (B_POSIX_ERROR_BASE + 38) 160 #define ENOMSG (B_POSIX_ERROR_BASE + 39) 161 #define ESTALE (B_POSIX_ERROR_BASE + 40) 162 #define EOVERFLOW (B_POSIX_ERROR_BASE + 41) 163 #define EMSGSIZE (B_POSIX_ERROR_BASE + 42) 164 #define EOPNOTSUPP (B_POSIX_ERROR_BASE + 43) 165 #define ENOTSOCK (B_POSIX_ERROR_BASE + 44) 166 #define EHOSTDOWN (B_POSIX_ERROR_BASE + 45) 167 #define EBADMSG (B_POSIX_ERROR_BASE + 46) 168 #define ECANCELED (B_POSIX_ERROR_BASE + 47) 169 #define EDESTADDRREQ (B_POSIX_ERROR_BASE + 48) 170 #define EDQUOT (B_POSIX_ERROR_BASE + 49) 171 #define EIDRM (B_POSIX_ERROR_BASE + 50) 172 #define EMULTIHOP (B_POSIX_ERROR_BASE + 51) 173 #define ENODATA (B_POSIX_ERROR_BASE + 52) 174 #define ENOLINK (B_POSIX_ERROR_BASE + 53) 175 #define ENOSR (B_POSIX_ERROR_BASE + 54) 176 #define ENOSTR (B_POSIX_ERROR_BASE + 55) 177 #define ENOTSUP (B_POSIX_ERROR_BASE + 56) 178 #define EPROTO (B_POSIX_ERROR_BASE + 57) 179 #define ETIME (B_POSIX_ERROR_BASE + 58) 180 #define ETXTBSY (B_POSIX_ERROR_BASE + 59) 181 182 /* POSIX errors that can be mapped to BeOS error codes */ 183 #define ENOMEM B_NO_MEMORY 184 #define EACCES B_PERMISSION_DENIED 185 #define EINTR B_INTERRUPTED 186 #define EIO B_IO_ERROR 187 #define EBUSY B_BUSY 188 #define EFAULT B_BAD_ADDRESS 189 #define ETIMEDOUT B_TIMED_OUT 190 #define EAGAIN B_WOULD_BLOCK /* SysV compatibility */ 191 #define EWOULDBLOCK B_WOULD_BLOCK /* BSD compatibility */ 192 #define EBADF B_FILE_ERROR 193 #define EEXIST B_FILE_EXISTS 194 #define EINVAL B_BAD_VALUE 195 #define ENAMETOOLONG B_NAME_TOO_LONG 196 #define ENOENT B_ENTRY_NOT_FOUND 197 #define EPERM B_NOT_ALLOWED 198 #define ENOTDIR B_NOT_A_DIRECTORY 199 #define EISDIR B_IS_A_DIRECTORY 200 #define ENOTEMPTY B_DIRECTORY_NOT_EMPTY 201 #define ENOSPC B_DEVICE_FULL 202 #define EROFS B_READ_ONLY_DEVICE 203 #define EMFILE B_NO_MORE_FDS 204 #define EXDEV B_CROSS_DEVICE_LINK 205 #define ELOOP B_LINK_LIMIT 206 #define ENOEXEC B_NOT_AN_EXECUTABLE 207 #define EPIPE B_BUSTED_PIPE 208 209 /* new error codes that can be mapped to POSIX errors */ 210 #define B_BUFFER_OVERFLOW EOVERFLOW 211 #define B_TOO_MANY_ARGS E2BIG 212 #define B_FILE_TOO_LARGE EFBIG 213 #define B_RESULT_NOT_REPRESENTABLE ERANGE 214 #define B_DEVICE_NOT_FOUND ENODEV 215 #define B_NOT_SUPPORTED EOPNOTSUPP 216 217 /* Media Kit Errors */ 218 enum { 219 B_STREAM_NOT_FOUND = B_MEDIA_ERROR_BASE, 220 B_SERVER_NOT_FOUND, 221 B_RESOURCE_NOT_FOUND, 222 B_RESOURCE_UNAVAILABLE, 223 B_BAD_SUBSCRIBER, 224 B_SUBSCRIBER_NOT_ENTERED, 225 B_BUFFER_NOT_AVAILABLE, 226 B_LAST_BUFFER_ERROR 227 }; 228 229 /* Mail Kit Errors */ 230 enum { 231 B_MAIL_NO_DAEMON = B_MAIL_ERROR_BASE, 232 B_MAIL_UNKNOWN_USER, 233 B_MAIL_WRONG_PASSWORD, 234 B_MAIL_UNKNOWN_HOST, 235 B_MAIL_ACCESS_ERROR, 236 B_MAIL_UNKNOWN_FIELD, 237 B_MAIL_NO_RECIPIENT, 238 B_MAIL_INVALID_MAIL 239 }; 240 241 /* Printing Errors */ 242 enum { 243 B_NO_PRINT_SERVER = B_PRINT_ERROR_BASE 244 }; 245 246 /* Device Kit Errors */ 247 enum { 248 B_DEV_INVALID_IOCTL = B_DEVICE_ERROR_BASE, 249 B_DEV_NO_MEMORY, 250 B_DEV_BAD_DRIVE_NUM, 251 B_DEV_NO_MEDIA, 252 B_DEV_UNREADABLE, 253 B_DEV_FORMAT_ERROR, 254 B_DEV_TIMEOUT, 255 B_DEV_RECALIBRATE_ERROR, 256 B_DEV_SEEK_ERROR, 257 B_DEV_ID_ERROR, 258 B_DEV_READ_ERROR, 259 B_DEV_WRITE_ERROR, 260 B_DEV_NOT_READY, 261 B_DEV_MEDIA_CHANGED, 262 B_DEV_MEDIA_CHANGE_REQUESTED, 263 B_DEV_RESOURCE_CONFLICT, 264 B_DEV_CONFIGURATION_ERROR, 265 B_DEV_DISABLED_BY_USER, 266 B_DEV_DOOR_OPEN, 267 268 B_DEV_INVALID_PIPE, 269 B_DEV_CRC_ERROR, 270 B_DEV_STALLED, 271 B_DEV_BAD_PID, 272 B_DEV_UNEXPECTED_PID, 273 B_DEV_DATA_OVERRUN, 274 B_DEV_DATA_UNDERRUN, 275 B_DEV_FIFO_OVERRUN, 276 B_DEV_FIFO_UNDERRUN, 277 B_DEV_PENDING, 278 B_DEV_MULTIPLE_ERRORS, 279 B_DEV_TOO_LATE 280 }; 281 282 #endif /* _ERRORS_H */ 283