1 /* 2 * Copyright 2007-2014, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef _FSSH_ERRORS_H 6 #define _FSSH_ERRORS_H 7 8 9 #include <limits.h> 10 11 12 /* Error baselines */ 13 #define FSSH_B_GENERAL_ERROR_BASE INT_MIN 14 #define FSSH_B_OS_ERROR_BASE FSSH_B_GENERAL_ERROR_BASE + 0x1000 15 #define FSSH_B_APP_ERROR_BASE FSSH_B_GENERAL_ERROR_BASE + 0x2000 16 #define FSSH_B_INTERFACE_ERROR_BASE FSSH_B_GENERAL_ERROR_BASE + 0x3000 17 #define FSSH_B_MEDIA_ERROR_BASE FSSH_B_GENERAL_ERROR_BASE + 0x4000 /* - 0x41ff */ 18 #define FSSH_B_TRANSLATION_ERROR_BASE FSSH_B_GENERAL_ERROR_BASE + 0x4800 /* - 0x48ff */ 19 #define FSSH_B_MIDI_ERROR_BASE FSSH_B_GENERAL_ERROR_BASE + 0x5000 20 #define FSSH_B_STORAGE_ERROR_BASE FSSH_B_GENERAL_ERROR_BASE + 0x6000 21 #define FSSH_B_POSIX_ERROR_BASE FSSH_B_GENERAL_ERROR_BASE + 0x7000 22 #define FSSH_B_MAIL_ERROR_BASE FSSH_B_GENERAL_ERROR_BASE + 0x8000 23 #define FSSH_B_PRINT_ERROR_BASE FSSH_B_GENERAL_ERROR_BASE + 0x9000 24 #define FSSH_B_DEVICE_ERROR_BASE FSSH_B_GENERAL_ERROR_BASE + 0xa000 25 26 /* Developer-defined errors start at (B_ERRORS_END+1) */ 27 #define FSSH_B_ERRORS_END (FSSH_B_GENERAL_ERROR_BASE + 0xffff) 28 29 /* General Errors */ 30 #define FSSH_B_NO_MEMORY (FSSH_B_GENERAL_ERROR_BASE + 0) 31 #define FSSH_B_IO_ERROR (FSSH_B_GENERAL_ERROR_BASE + 1) 32 #define FSSH_B_PERMISSION_DENIED (FSSH_B_GENERAL_ERROR_BASE + 2) 33 #define FSSH_B_BAD_INDEX (FSSH_B_GENERAL_ERROR_BASE + 3) 34 #define FSSH_B_BAD_TYPE (FSSH_B_GENERAL_ERROR_BASE + 4) 35 #define FSSH_B_BAD_VALUE (FSSH_B_GENERAL_ERROR_BASE + 5) 36 #define FSSH_B_MISMATCHED_VALUES (FSSH_B_GENERAL_ERROR_BASE + 6) 37 #define FSSH_B_NAME_NOT_FOUND (FSSH_B_GENERAL_ERROR_BASE + 7) 38 #define FSSH_B_NAME_IN_USE (FSSH_B_GENERAL_ERROR_BASE + 8) 39 #define FSSH_B_TIMED_OUT (FSSH_B_GENERAL_ERROR_BASE + 9) 40 #define FSSH_B_INTERRUPTED (FSSH_B_GENERAL_ERROR_BASE + 10) 41 #define FSSH_B_WOULD_BLOCK (FSSH_B_GENERAL_ERROR_BASE + 11) 42 #define FSSH_B_CANCELED (FSSH_B_GENERAL_ERROR_BASE + 12) 43 #define FSSH_B_NO_INIT (FSSH_B_GENERAL_ERROR_BASE + 13) 44 #define FSSH_B_BUSY (FSSH_B_GENERAL_ERROR_BASE + 14) 45 #define FSSH_B_NOT_ALLOWED (FSSH_B_GENERAL_ERROR_BASE + 15) 46 #define FSSH_B_BAD_DATA (FSSH_B_GENERAL_ERROR_BASE + 16) 47 #define FSSH_B_DONT_DO_THAT (FSSH_B_GENERAL_ERROR_BASE + 17) 48 49 #define FSSH_B_ERROR (-1) 50 #define FSSH_B_OK ((int)0) 51 #define FSSH_B_NO_ERROR ((int)0) 52 53 /* Kernel Kit Errors */ 54 #define FSSH_B_BAD_SEM_ID (FSSH_B_OS_ERROR_BASE + 0) 55 #define FSSH_B_NO_MORE_SEMS (FSSH_B_OS_ERROR_BASE + 1) 56 57 #define FSSH_B_BAD_THREAD_ID (FSSH_B_OS_ERROR_BASE + 0x100) 58 #define FSSH_B_NO_MORE_THREADS (FSSH_B_OS_ERROR_BASE + 0x101) 59 #define FSSH_B_BAD_THREAD_STATE (FSSH_B_OS_ERROR_BASE + 0x102) 60 #define FSSH_B_BAD_TEAM_ID (FSSH_B_OS_ERROR_BASE + 0x103) 61 #define FSSH_B_NO_MORE_TEAMS (FSSH_B_OS_ERROR_BASE + 0x104) 62 63 #define FSSH_B_BAD_PORT_ID (FSSH_B_OS_ERROR_BASE + 0x200) 64 #define FSSH_B_NO_MORE_PORTS (FSSH_B_OS_ERROR_BASE + 0x201) 65 66 #define FSSH_B_BAD_IMAGE_ID (FSSH_B_OS_ERROR_BASE + 0x300) 67 #define FSSH_B_BAD_ADDRESS (FSSH_B_OS_ERROR_BASE + 0x301) 68 #define FSSH_B_NOT_AN_EXECUTABLE (FSSH_B_OS_ERROR_BASE + 0x302) 69 #define FSSH_B_MISSING_LIBRARY (FSSH_B_OS_ERROR_BASE + 0x303) 70 #define FSSH_B_MISSING_SYMBOL (FSSH_B_OS_ERROR_BASE + 0x304) 71 72 #define FSSH_B_DEBUGGER_ALREADY_INSTALLED (FSSH_B_OS_ERROR_BASE + 0x400) 73 74 /* Application Kit Errors */ 75 enum { 76 FSSH_B_BAD_REPLY = FSSH_B_APP_ERROR_BASE, 77 FSSH_B_DUPLICATE_REPLY, 78 FSSH_B_MESSAGE_TO_SELF, 79 FSSH_B_BAD_HANDLER, 80 FSSH_B_ALREADY_RUNNING, 81 FSSH_B_LAUNCH_FAILED, 82 FSSH_B_AMBIGUOUS_APP_LAUNCH, 83 FSSH_B_UNKNOWN_MIME_TYPE, 84 FSSH_B_BAD_SCRIPT_SYNTAX, 85 FSSH_B_LAUNCH_FAILED_NO_RESOLVE_LINK, 86 FSSH_B_LAUNCH_FAILED_EXECUTABLE, 87 FSSH_B_LAUNCH_FAILED_APP_NOT_FOUND, 88 FSSH_B_LAUNCH_FAILED_APP_IN_TRASH, 89 FSSH_B_LAUNCH_FAILED_NO_PREFERRED_APP, 90 FSSH_B_LAUNCH_FAILED_FILES_APP_NOT_FOUND, 91 FSSH_B_BAD_MIME_SNIFFER_RULE, 92 FSSH_B_NOT_A_MESSAGE, 93 FSSH_B_SHUTDOWN_CANCELLED, 94 FSSH_B_SHUTTING_DOWN 95 }; 96 97 /* Storage Kit/File System Errors */ 98 #define FSSH_B_FILE_ERROR (FSSH_B_STORAGE_ERROR_BASE + 0) 99 #define FSSH_B_FILE_EXISTS (FSSH_B_STORAGE_ERROR_BASE + 2) 100 #define FSSH_B_ENTRY_NOT_FOUND (FSSH_B_STORAGE_ERROR_BASE + 3) 101 #define FSSH_B_NAME_TOO_LONG (FSSH_B_STORAGE_ERROR_BASE + 4) 102 #define FSSH_B_NOT_A_DIRECTORY (FSSH_B_STORAGE_ERROR_BASE + 5) 103 #define FSSH_B_DIRECTORY_NOT_EMPTY (FSSH_B_STORAGE_ERROR_BASE + 6) 104 #define FSSH_B_DEVICE_FULL (FSSH_B_STORAGE_ERROR_BASE + 7) 105 #define FSSH_B_READ_ONLY_DEVICE (FSSH_B_STORAGE_ERROR_BASE + 8) 106 #define FSSH_B_IS_A_DIRECTORY (FSSH_B_STORAGE_ERROR_BASE + 9) 107 #define FSSH_B_NO_MORE_FDS (FSSH_B_STORAGE_ERROR_BASE + 10) 108 #define FSSH_B_CROSS_DEVICE_LINK (FSSH_B_STORAGE_ERROR_BASE + 11) 109 #define FSSH_B_LINK_LIMIT (FSSH_B_STORAGE_ERROR_BASE + 12) 110 #define FSSH_B_BUSTED_PIPE (FSSH_B_STORAGE_ERROR_BASE + 13) 111 #define FSSH_B_UNSUPPORTED (FSSH_B_STORAGE_ERROR_BASE + 14) 112 #define FSSH_B_PARTITION_TOO_SMALL (FSSH_B_STORAGE_ERROR_BASE + 15) 113 #define FSSH_B_PARTIAL_READ (FSSH_B_STORAGE_ERROR_BASE + 16) 114 #define FSSH_B_PARTIAL_WRITE (FSSH_B_STORAGE_ERROR_BASE + 17) 115 116 /* POSIX Errors */ 117 #define FSSH_E2BIG (FSSH_B_POSIX_ERROR_BASE + 1) 118 #define FSSH_ECHILD (FSSH_B_POSIX_ERROR_BASE + 2) 119 #define FSSH_EDEADLK (FSSH_B_POSIX_ERROR_BASE + 3) 120 #define FSSH_EFBIG (FSSH_B_POSIX_ERROR_BASE + 4) 121 #define FSSH_EMLINK (FSSH_B_POSIX_ERROR_BASE + 5) 122 #define FSSH_ENFILE (FSSH_B_POSIX_ERROR_BASE + 6) 123 #define FSSH_ENODEV (FSSH_B_POSIX_ERROR_BASE + 7) 124 #define FSSH_ENOLCK (FSSH_B_POSIX_ERROR_BASE + 8) 125 #define FSSH_ENOSYS (FSSH_B_POSIX_ERROR_BASE + 9) 126 #define FSSH_ENOTTY (FSSH_B_POSIX_ERROR_BASE + 10) 127 #define FSSH_ENXIO (FSSH_B_POSIX_ERROR_BASE + 11) 128 #define FSSH_ESPIPE (FSSH_B_POSIX_ERROR_BASE + 12) 129 #define FSSH_ESRCH (FSSH_B_POSIX_ERROR_BASE + 13) 130 #define FSSH_EFPOS (FSSH_B_POSIX_ERROR_BASE + 14) 131 #define FSSH_ESIGPARM (FSSH_B_POSIX_ERROR_BASE + 15) 132 #define FSSH_EDOM (FSSH_B_POSIX_ERROR_BASE + 16) 133 #define FSSH_ERANGE (FSSH_B_POSIX_ERROR_BASE + 17) 134 #define FSSH_EPROTOTYPE (FSSH_B_POSIX_ERROR_BASE + 18) 135 #define FSSH_EPROTONOSUPPORT (FSSH_B_POSIX_ERROR_BASE + 19) 136 #define FSSH_EPFNOSUPPORT (FSSH_B_POSIX_ERROR_BASE + 20) 137 #define FSSH_EAFNOSUPPORT (FSSH_B_POSIX_ERROR_BASE + 21) 138 #define FSSH_EADDRINUSE (FSSH_B_POSIX_ERROR_BASE + 22) 139 #define FSSH_EADDRNOTAVAIL (FSSH_B_POSIX_ERROR_BASE + 23) 140 #define FSSH_ENETDOWN (FSSH_B_POSIX_ERROR_BASE + 24) 141 #define FSSH_ENETUNREACH (FSSH_B_POSIX_ERROR_BASE + 25) 142 #define FSSH_ENETRESET (FSSH_B_POSIX_ERROR_BASE + 26) 143 #define FSSH_ECONNABORTED (FSSH_B_POSIX_ERROR_BASE + 27) 144 #define FSSH_ECONNRESET (FSSH_B_POSIX_ERROR_BASE + 28) 145 #define FSSH_EISCONN (FSSH_B_POSIX_ERROR_BASE + 29) 146 #define FSSH_ENOTCONN (FSSH_B_POSIX_ERROR_BASE + 30) 147 #define FSSH_ESHUTDOWN (FSSH_B_POSIX_ERROR_BASE + 31) 148 #define FSSH_ECONNREFUSED (FSSH_B_POSIX_ERROR_BASE + 32) 149 #define FSSH_EHOSTUNREACH (FSSH_B_POSIX_ERROR_BASE + 33) 150 #define FSSH_ENOPROTOOPT (FSSH_B_POSIX_ERROR_BASE + 34) 151 #define FSSH_ENOBUFS (FSSH_B_POSIX_ERROR_BASE + 35) 152 #define FSSH_EINPROGRESS (FSSH_B_POSIX_ERROR_BASE + 36) 153 #define FSSH_EALREADY (FSSH_B_POSIX_ERROR_BASE + 37) 154 #define FSSH_EILSEQ (FSSH_B_POSIX_ERROR_BASE + 38) 155 #define FSSH_ENOMSG (FSSH_B_POSIX_ERROR_BASE + 39) 156 #define FSSH_ESTALE (FSSH_B_POSIX_ERROR_BASE + 40) 157 #define FSSH_EOVERFLOW (FSSH_B_POSIX_ERROR_BASE + 41) 158 #define FSSH_EMSGSIZE (FSSH_B_POSIX_ERROR_BASE + 42) 159 #define FSSH_EOPNOTSUPP (FSSH_B_POSIX_ERROR_BASE + 43) 160 #define FSSH_ENOTSOCK (FSSH_B_POSIX_ERROR_BASE + 44) 161 #define FSSH_EHOSTDOWN (FSSH_B_POSIX_ERROR_BASE + 45) 162 #define FSSH_EBADMSG (FSSH_B_POSIX_ERROR_BASE + 46) 163 #define FSSH_ECANCELED (FSSH_B_POSIX_ERROR_BASE + 47) 164 #define FSSH_EDESTADDRREQ (FSSH_B_POSIX_ERROR_BASE + 48) 165 #define FSSH_EDQUOT (FSSH_B_POSIX_ERROR_BASE + 49) 166 #define FSSH_EIDRM (FSSH_B_POSIX_ERROR_BASE + 50) 167 #define FSSH_EMULTIHOP (FSSH_B_POSIX_ERROR_BASE + 51) 168 #define FSSH_ENODATA (FSSH_B_POSIX_ERROR_BASE + 52) 169 #define FSSH_ENOLINK (FSSH_B_POSIX_ERROR_BASE + 53) 170 #define FSSH_ENOSR (FSSH_B_POSIX_ERROR_BASE + 54) 171 #define FSSH_ENOSTR (FSSH_B_POSIX_ERROR_BASE + 55) 172 #define FSSH_ENOTSUP (FSSH_B_POSIX_ERROR_BASE + 56) 173 #define FSSH_EPROTO (FSSH_B_POSIX_ERROR_BASE + 57) 174 #define FSSH_ETIME (FSSH_B_POSIX_ERROR_BASE + 58) 175 #define FSSH_ETXTBSY (FSSH_B_POSIX_ERROR_BASE + 59) 176 177 /* POSIX errors that can be mapped to BeOS error codes */ 178 #define FSSH_ENOMEM FSSH_B_NO_MEMORY 179 #define FSSH_EACCES FSSH_B_PERMISSION_DENIED 180 #define FSSH_EINTR FSSH_B_INTERRUPTED 181 #define FSSH_EIO FSSH_B_IO_ERROR 182 #define FSSH_EBUSY FSSH_B_BUSY 183 #define FSSH_EFAULT FSSH_B_BAD_ADDRESS 184 #define FSSH_ETIMEDOUT FSSH_B_TIMED_OUT 185 #define FSSH_EAGAIN FSSH_B_WOULD_BLOCK /* SysV compatibility */ 186 #define FSSH_EWOULDBLOCK FSSH_B_WOULD_BLOCK /* BSD compatibility */ 187 #define FSSH_EBADF FSSH_B_FILE_ERROR 188 #define FSSH_EEXIST FSSH_B_FILE_EXISTS 189 #define FSSH_EINVAL FSSH_B_BAD_VALUE 190 #define FSSH_ENAMETOOLONG FSSH_B_NAME_TOO_LONG 191 #define FSSH_ENOENT FSSH_B_ENTRY_NOT_FOUND 192 #define FSSH_EPERM FSSH_B_NOT_ALLOWED 193 #define FSSH_ENOTDIR FSSH_B_NOT_A_DIRECTORY 194 #define FSSH_EISDIR FSSH_B_IS_A_DIRECTORY 195 #define FSSH_ENOTEMPTY FSSH_B_DIRECTORY_NOT_EMPTY 196 #define FSSH_ENOSPC FSSH_B_DEVICE_FULL 197 #define FSSH_EROFS FSSH_B_READ_ONLY_DEVICE 198 #define FSSH_EMFILE FSSH_B_NO_MORE_FDS 199 #define FSSH_EXDEV FSSH_B_CROSS_DEVICE_LINK 200 #define FSSH_ELOOP FSSH_B_LINK_LIMIT 201 #define FSSH_ENOEXEC FSSH_B_NOT_AN_EXECUTABLE 202 #define FSSH_EPIPE FSSH_B_BUSTED_PIPE 203 204 /* new error codes that can be mapped to POSIX errors */ 205 #define FSSH_B_BUFFER_OVERFLOW FSSH_EOVERFLOW 206 #define FSSH_B_TOO_MANY_ARGS FSSH_E2BIG 207 #define FSSH_B_FILE_TOO_LARGE FSSH_EFBIG 208 #define FSSH_B_RESULT_NOT_REPRESENTABLE FSSH_ERANGE 209 #define FSSH_B_DEVICE_NOT_FOUND FSSH_ENODEV 210 #define FSSH_B_NOT_SUPPORTED FSSH_EOPNOTSUPP 211 212 /* Media Kit Errors */ 213 enum { 214 FSSH_B_STREAM_NOT_FOUND = FSSH_B_MEDIA_ERROR_BASE, 215 FSSH_B_SERVER_NOT_FOUND, 216 FSSH_B_RESOURCE_NOT_FOUND, 217 FSSH_B_RESOURCE_UNAVAILABLE, 218 FSSH_B_BAD_SUBSCRIBER, 219 FSSH_B_SUBSCRIBER_NOT_ENTERED, 220 FSSH_B_BUFFER_NOT_AVAILABLE, 221 FSSH_B_LAST_BUFFER_ERROR 222 }; 223 224 /* Mail Kit Errors */ 225 enum { 226 FSSH_B_MAIL_NO_DAEMON = FSSH_B_MAIL_ERROR_BASE, 227 FSSH_B_MAIL_UNKNOWN_USER, 228 FSSH_B_MAIL_WRONG_PASSWORD, 229 FSSH_B_MAIL_UNKNOWN_HOST, 230 FSSH_B_MAIL_ACCESS_ERROR, 231 FSSH_B_MAIL_UNKNOWN_FIELD, 232 FSSH_B_MAIL_NO_RECIPIENT, 233 FSSH_B_MAIL_INVALID_MAIL 234 }; 235 236 /* Printing Errors */ 237 enum { 238 FSSH_B_NO_PRINT_SERVER = FSSH_B_PRINT_ERROR_BASE 239 }; 240 241 /* Device Kit Errors */ 242 enum { 243 FSSH_B_DEV_INVALID_IOCTL = FSSH_B_DEVICE_ERROR_BASE, 244 FSSH_B_DEV_NO_MEMORY, 245 FSSH_B_DEV_BAD_DRIVE_NUM, 246 FSSH_B_DEV_NO_MEDIA, 247 FSSH_B_DEV_UNREADABLE, 248 FSSH_B_DEV_FORMAT_ERROR, 249 FSSH_B_DEV_TIMEOUT, 250 FSSH_B_DEV_RECALIBRATE_ERROR, 251 FSSH_B_DEV_SEEK_ERROR, 252 FSSH_B_DEV_ID_ERROR, 253 FSSH_B_DEV_READ_ERROR, 254 FSSH_B_DEV_WRITE_ERROR, 255 FSSH_B_DEV_NOT_READY, 256 FSSH_B_DEV_MEDIA_CHANGED, 257 FSSH_B_DEV_MEDIA_CHANGE_REQUESTED, 258 FSSH_B_DEV_RESOURCE_CONFLICT, 259 FSSH_B_DEV_CONFIGURATION_ERROR, 260 FSSH_B_DEV_DISABLED_BY_USER, 261 FSSH_B_DEV_DOOR_OPEN, 262 263 FSSH_B_DEV_INVALID_PIPE, 264 FSSH_B_DEV_CRC_ERROR, 265 FSSH_B_DEV_STALLED, 266 FSSH_B_DEV_BAD_PID, 267 FSSH_B_DEV_UNEXPECTED_PID, 268 FSSH_B_DEV_DATA_OVERRUN, 269 FSSH_B_DEV_DATA_UNDERRUN, 270 FSSH_B_DEV_FIFO_OVERRUN, 271 FSSH_B_DEV_FIFO_UNDERRUN, 272 FSSH_B_DEV_PENDING, 273 FSSH_B_DEV_MULTIPLE_ERRORS, 274 FSSH_B_DEV_TOO_LATE 275 }; 276 277 278 #endif /* _FSSH_ERRORS_H */ 279