xref: /haiku/headers/os/support/Errors.h (revision ec5a9998dfed1209ee5a730a9041daeb83d8e835)
1afe886fcSDavid Reid /******************************************************************************
2afe886fcSDavid Reid /
3afe886fcSDavid Reid /	File:			Errors.h
4afe886fcSDavid Reid /
5afe886fcSDavid Reid /	Description:	Error code constants.
6afe886fcSDavid Reid /
7afe886fcSDavid Reid /	Copyright 1993-98, Be Incorporated
8afe886fcSDavid Reid /
9afe886fcSDavid Reid ******************************************************************************/
10afe886fcSDavid Reid 
11afe886fcSDavid Reid 
1252a38012Sejakowatz #ifndef _ERRORS_H
1352a38012Sejakowatz #define _ERRORS_H
1452a38012Sejakowatz 
15afe886fcSDavid Reid #include <limits.h>
1652a38012Sejakowatz 
1752a38012Sejakowatz /*-------------------------------------------------------------*/
1852a38012Sejakowatz /*----- Error baselines ---------------------------------------*/
1952a38012Sejakowatz 
2052a38012Sejakowatz #define B_GENERAL_ERROR_BASE		LONG_MIN
2152a38012Sejakowatz #define B_OS_ERROR_BASE				B_GENERAL_ERROR_BASE + 0x1000
2252a38012Sejakowatz #define B_APP_ERROR_BASE			B_GENERAL_ERROR_BASE + 0x2000
2352a38012Sejakowatz #define B_INTERFACE_ERROR_BASE		B_GENERAL_ERROR_BASE + 0x3000
24afe886fcSDavid Reid #define B_MEDIA_ERROR_BASE			B_GENERAL_ERROR_BASE + 0x4000 /* - 0x41ff */
25afe886fcSDavid Reid #define B_TRANSLATION_ERROR_BASE	B_GENERAL_ERROR_BASE + 0x4800 /* - 0x48ff */
2652a38012Sejakowatz #define B_MIDI_ERROR_BASE			B_GENERAL_ERROR_BASE + 0x5000
2752a38012Sejakowatz #define B_STORAGE_ERROR_BASE		B_GENERAL_ERROR_BASE + 0x6000
28afe886fcSDavid Reid #define B_POSIX_ERROR_BASE			B_GENERAL_ERROR_BASE + 0x7000
2952a38012Sejakowatz #define B_MAIL_ERROR_BASE			B_GENERAL_ERROR_BASE + 0x8000
3052a38012Sejakowatz #define B_PRINT_ERROR_BASE			B_GENERAL_ERROR_BASE + 0x9000
3152a38012Sejakowatz #define B_DEVICE_ERROR_BASE			B_GENERAL_ERROR_BASE + 0xa000
3252a38012Sejakowatz 
3352a38012Sejakowatz /*--- Developer-defined errors start at (B_ERRORS_END+1)----*/
3452a38012Sejakowatz 
3552a38012Sejakowatz #define B_ERRORS_END		(B_GENERAL_ERROR_BASE + 0xffff)
3652a38012Sejakowatz 
3752a38012Sejakowatz 
3852a38012Sejakowatz /*-------------------------------------------------------------*/
3952a38012Sejakowatz /*----- General Errors ----------------------------------------*/
4052a38012Sejakowatz enum {
4152a38012Sejakowatz 	B_NO_MEMORY = B_GENERAL_ERROR_BASE,
4252a38012Sejakowatz 	B_IO_ERROR,
4352a38012Sejakowatz 	B_PERMISSION_DENIED,
4452a38012Sejakowatz 	B_BAD_INDEX,
4552a38012Sejakowatz 	B_BAD_TYPE,
4652a38012Sejakowatz 	B_BAD_VALUE,
4752a38012Sejakowatz 	B_MISMATCHED_VALUES,
4852a38012Sejakowatz 	B_NAME_NOT_FOUND,
4952a38012Sejakowatz 	B_NAME_IN_USE,
5052a38012Sejakowatz 	B_TIMED_OUT,
5152a38012Sejakowatz     B_INTERRUPTED,
5252a38012Sejakowatz 	B_WOULD_BLOCK,
5352a38012Sejakowatz     B_CANCELED,
5452a38012Sejakowatz 	B_NO_INIT,
5552a38012Sejakowatz 	B_BUSY,
5652a38012Sejakowatz 	B_NOT_ALLOWED,
57c3db7c3bSAxel Dörfler 	B_BAD_DATA,
5852a38012Sejakowatz 
5952a38012Sejakowatz 	B_ERROR = -1,
6052a38012Sejakowatz 	B_OK = 0,
6152a38012Sejakowatz 	B_NO_ERROR = 0
6252a38012Sejakowatz };
6352a38012Sejakowatz 
6452a38012Sejakowatz /*-------------------------------------------------------------*/
6552a38012Sejakowatz /*----- Kernel Kit Errors -------------------------------------*/
6652a38012Sejakowatz enum {
6752a38012Sejakowatz 	B_BAD_SEM_ID = B_OS_ERROR_BASE,
6852a38012Sejakowatz 	B_NO_MORE_SEMS,
6952a38012Sejakowatz 
7052a38012Sejakowatz 	B_BAD_THREAD_ID = B_OS_ERROR_BASE + 0x100,
7152a38012Sejakowatz 	B_NO_MORE_THREADS,
7252a38012Sejakowatz 	B_BAD_THREAD_STATE,
7352a38012Sejakowatz 	B_BAD_TEAM_ID,
7452a38012Sejakowatz 	B_NO_MORE_TEAMS,
7552a38012Sejakowatz 
7652a38012Sejakowatz 	B_BAD_PORT_ID = B_OS_ERROR_BASE + 0x200,
7752a38012Sejakowatz 	B_NO_MORE_PORTS,
7852a38012Sejakowatz 
7952a38012Sejakowatz 	B_BAD_IMAGE_ID = B_OS_ERROR_BASE + 0x300,
8052a38012Sejakowatz 	B_BAD_ADDRESS,
8152a38012Sejakowatz 	B_NOT_AN_EXECUTABLE,
8252a38012Sejakowatz 	B_MISSING_LIBRARY,
8352a38012Sejakowatz 	B_MISSING_SYMBOL,
8452a38012Sejakowatz 
8552a38012Sejakowatz 	B_DEBUGGER_ALREADY_INSTALLED = B_OS_ERROR_BASE + 0x400
8652a38012Sejakowatz };
8752a38012Sejakowatz 
8852a38012Sejakowatz 
8952a38012Sejakowatz /*-------------------------------------------------------------*/
9052a38012Sejakowatz /*----- Application Kit Errors --------------------------------*/
9152a38012Sejakowatz enum
9252a38012Sejakowatz {
9352a38012Sejakowatz 	B_BAD_REPLY = B_APP_ERROR_BASE,
9452a38012Sejakowatz 	B_DUPLICATE_REPLY,
9552a38012Sejakowatz 	B_MESSAGE_TO_SELF,
9652a38012Sejakowatz 	B_BAD_HANDLER,
9752a38012Sejakowatz 	B_ALREADY_RUNNING,
9852a38012Sejakowatz 	B_LAUNCH_FAILED,
9952a38012Sejakowatz 	B_AMBIGUOUS_APP_LAUNCH,
10052a38012Sejakowatz 	B_UNKNOWN_MIME_TYPE,
10152a38012Sejakowatz 	B_BAD_SCRIPT_SYNTAX,
10252a38012Sejakowatz 	B_LAUNCH_FAILED_NO_RESOLVE_LINK,
10352a38012Sejakowatz 	B_LAUNCH_FAILED_EXECUTABLE,
10452a38012Sejakowatz 	B_LAUNCH_FAILED_APP_NOT_FOUND,
10552a38012Sejakowatz 	B_LAUNCH_FAILED_APP_IN_TRASH,
10652a38012Sejakowatz 	B_LAUNCH_FAILED_NO_PREFERRED_APP,
10752a38012Sejakowatz 	B_LAUNCH_FAILED_FILES_APP_NOT_FOUND,
108d2f82aa6Sejakowatz 	B_BAD_MIME_SNIFFER_RULE,
109d2f82aa6Sejakowatz 	B_NOT_A_MESSAGE
11052a38012Sejakowatz };
11152a38012Sejakowatz 
11252a38012Sejakowatz 
11352a38012Sejakowatz /*-------------------------------------------------------------*/
11452a38012Sejakowatz /*----- Storage Kit/File System Errors ------------------------*/
11552a38012Sejakowatz enum {
11652a38012Sejakowatz 	B_FILE_ERROR = B_STORAGE_ERROR_BASE,
11752a38012Sejakowatz 	B_FILE_NOT_FOUND,	/* discouraged; use B_ENTRY_NOT_FOUND in new code*/
11852a38012Sejakowatz 	B_FILE_EXISTS,
11952a38012Sejakowatz 	B_ENTRY_NOT_FOUND,
12052a38012Sejakowatz 	B_NAME_TOO_LONG,
12152a38012Sejakowatz 	B_NOT_A_DIRECTORY,
12252a38012Sejakowatz 	B_DIRECTORY_NOT_EMPTY,
12352a38012Sejakowatz 	B_DEVICE_FULL,
12452a38012Sejakowatz 	B_READ_ONLY_DEVICE,
12552a38012Sejakowatz 	B_IS_A_DIRECTORY,
12652a38012Sejakowatz 	B_NO_MORE_FDS,
12752a38012Sejakowatz 	B_CROSS_DEVICE_LINK,
12852a38012Sejakowatz 	B_LINK_LIMIT,
12952a38012Sejakowatz 	B_BUSTED_PIPE,
13052a38012Sejakowatz 	B_UNSUPPORTED,
13152a38012Sejakowatz 	B_PARTITION_TOO_SMALL
13252a38012Sejakowatz };
13352a38012Sejakowatz 
134afe886fcSDavid Reid 
135afe886fcSDavid Reid /*-------------------------------------------------------------*/
136afe886fcSDavid Reid /*----- POSIX Errors ------------------------------------------*/
137afe886fcSDavid Reid #define E2BIG			(B_POSIX_ERROR_BASE + 1)
138afe886fcSDavid Reid #define ECHILD			(B_POSIX_ERROR_BASE + 2)
139afe886fcSDavid Reid #define EDEADLK			(B_POSIX_ERROR_BASE + 3)
140afe886fcSDavid Reid #define EFBIG			(B_POSIX_ERROR_BASE + 4)
141afe886fcSDavid Reid #define EMLINK			(B_POSIX_ERROR_BASE + 5)
142afe886fcSDavid Reid #define ENFILE			(B_POSIX_ERROR_BASE + 6)
143afe886fcSDavid Reid #define ENODEV			(B_POSIX_ERROR_BASE + 7)
144afe886fcSDavid Reid #define ENOLCK			(B_POSIX_ERROR_BASE + 8)
145afe886fcSDavid Reid #define ENOSYS			(B_POSIX_ERROR_BASE + 9)
146afe886fcSDavid Reid #define ENOTTY			(B_POSIX_ERROR_BASE + 10)
147afe886fcSDavid Reid #define ENXIO			(B_POSIX_ERROR_BASE + 11)
148afe886fcSDavid Reid #define ESPIPE			(B_POSIX_ERROR_BASE + 12)
149afe886fcSDavid Reid #define ESRCH			(B_POSIX_ERROR_BASE + 13)
150afe886fcSDavid Reid #define EFPOS			(B_POSIX_ERROR_BASE + 14)
151afe886fcSDavid Reid #define ESIGPARM		(B_POSIX_ERROR_BASE + 15)
152afe886fcSDavid Reid #define EDOM			(B_POSIX_ERROR_BASE + 16)
153afe886fcSDavid Reid #define ERANGE			(B_POSIX_ERROR_BASE + 17)
154afe886fcSDavid Reid #define EPROTOTYPE		(B_POSIX_ERROR_BASE + 18)
155afe886fcSDavid Reid #define EPROTONOSUPPORT	(B_POSIX_ERROR_BASE + 19)
156afe886fcSDavid Reid #define EPFNOSUPPORT	(B_POSIX_ERROR_BASE + 20)
157afe886fcSDavid Reid #define EAFNOSUPPORT	(B_POSIX_ERROR_BASE + 21)
158afe886fcSDavid Reid #define EADDRINUSE		(B_POSIX_ERROR_BASE + 22)
159afe886fcSDavid Reid #define EADDRNOTAVAIL	(B_POSIX_ERROR_BASE + 23)
160afe886fcSDavid Reid #define ENETDOWN		(B_POSIX_ERROR_BASE + 24)
161afe886fcSDavid Reid #define ENETUNREACH		(B_POSIX_ERROR_BASE + 25)
162afe886fcSDavid Reid #define ENETRESET		(B_POSIX_ERROR_BASE + 26)
163afe886fcSDavid Reid #define ECONNABORTED	(B_POSIX_ERROR_BASE + 27)
164afe886fcSDavid Reid #define ECONNRESET		(B_POSIX_ERROR_BASE + 28)
165afe886fcSDavid Reid #define EISCONN			(B_POSIX_ERROR_BASE + 29)
166afe886fcSDavid Reid #define ENOTCONN		(B_POSIX_ERROR_BASE + 30)
167afe886fcSDavid Reid #define ESHUTDOWN		(B_POSIX_ERROR_BASE + 31)
168afe886fcSDavid Reid #define ECONNREFUSED	(B_POSIX_ERROR_BASE + 32)
169afe886fcSDavid Reid #define EHOSTUNREACH	(B_POSIX_ERROR_BASE + 33)
170afe886fcSDavid Reid #define ENOPROTOOPT		(B_POSIX_ERROR_BASE + 34)
171afe886fcSDavid Reid #define ENOBUFS			(B_POSIX_ERROR_BASE + 35)
172afe886fcSDavid Reid #define EINPROGRESS		(B_POSIX_ERROR_BASE + 36)
173afe886fcSDavid Reid #define EALREADY		(B_POSIX_ERROR_BASE + 37)
174afe886fcSDavid Reid #define EILSEQ          (B_POSIX_ERROR_BASE + 38)
175afe886fcSDavid Reid #define ENOMSG          (B_POSIX_ERROR_BASE + 39)
176afe886fcSDavid Reid #define ESTALE          (B_POSIX_ERROR_BASE + 40)
177afe886fcSDavid Reid #define EOVERFLOW       (B_POSIX_ERROR_BASE + 41)
178afe886fcSDavid Reid #define EMSGSIZE        (B_POSIX_ERROR_BASE + 42)
179afe886fcSDavid Reid #define EOPNOTSUPP      (B_POSIX_ERROR_BASE + 43)
180afe886fcSDavid Reid #define ENOTSOCK		(B_POSIX_ERROR_BASE + 44)
1810e2e5d7fSbeveloper #define EHOSTDOWN		(B_POSIX_ERROR_BASE + 45)
1829f20e178SJérôme Duval #define	EBADMSG			(B_POSIX_ERROR_BASE + 46)
1839f20e178SJérôme Duval #define ECANCELED		(B_POSIX_ERROR_BASE + 47)
1849f20e178SJérôme Duval #define EDESTADDRREQ	(B_POSIX_ERROR_BASE + 48)
1859f20e178SJérôme Duval #define EDQUOT			(B_POSIX_ERROR_BASE + 49)
1869f20e178SJérôme Duval #define EIDRM			(B_POSIX_ERROR_BASE + 50)
1879f20e178SJérôme Duval #define EMULTIHOP		(B_POSIX_ERROR_BASE + 51)
1889f20e178SJérôme Duval #define ENODATA			(B_POSIX_ERROR_BASE + 52)
1899f20e178SJérôme Duval #define ENOLINK			(B_POSIX_ERROR_BASE + 53)
1909f20e178SJérôme Duval #define ENOSR			(B_POSIX_ERROR_BASE + 54)
1919f20e178SJérôme Duval #define ENOSTR			(B_POSIX_ERROR_BASE + 55)
1929f20e178SJérôme Duval #define ENOTSUP			(B_POSIX_ERROR_BASE + 56)
1939f20e178SJérôme Duval #define EPROTO			(B_POSIX_ERROR_BASE + 57)
1949f20e178SJérôme Duval #define ETIME			(B_POSIX_ERROR_BASE + 58)
1959f20e178SJérôme Duval #define ETXTBSY			(B_POSIX_ERROR_BASE + 59)
1969f20e178SJérôme Duval 
197afe886fcSDavid Reid 
19868145d0dSAxel Dörfler /*---- POSIX errors that can be mapped to BeOS error codes ----*/
199afe886fcSDavid Reid #define ENOMEM			B_NO_MEMORY
200afe886fcSDavid Reid #define EACCES			B_PERMISSION_DENIED
201afe886fcSDavid Reid #define EINTR			B_INTERRUPTED
202afe886fcSDavid Reid #define EIO				B_IO_ERROR
203afe886fcSDavid Reid #define EBUSY			B_BUSY
204afe886fcSDavid Reid #define EFAULT			B_BAD_ADDRESS
205afe886fcSDavid Reid #define ETIMEDOUT		B_TIMED_OUT
206afe886fcSDavid Reid #define EAGAIN 			B_WOULD_BLOCK	/* SysV compatibility */
207afe886fcSDavid Reid #define EWOULDBLOCK 	B_WOULD_BLOCK	/* BSD compatibility */
208afe886fcSDavid Reid #define EBADF			B_FILE_ERROR
209afe886fcSDavid Reid #define EEXIST			B_FILE_EXISTS
210afe886fcSDavid Reid #define EINVAL			B_BAD_VALUE
211afe886fcSDavid Reid #define ENAMETOOLONG	B_NAME_TOO_LONG
212afe886fcSDavid Reid #define ENOENT			B_ENTRY_NOT_FOUND
213afe886fcSDavid Reid #define EPERM			B_NOT_ALLOWED
214afe886fcSDavid Reid #define ENOTDIR			B_NOT_A_DIRECTORY
215afe886fcSDavid Reid #define EISDIR			B_IS_A_DIRECTORY
216afe886fcSDavid Reid #define ENOTEMPTY		B_DIRECTORY_NOT_EMPTY
217afe886fcSDavid Reid #define ENOSPC			B_DEVICE_FULL
218afe886fcSDavid Reid #define EROFS			B_READ_ONLY_DEVICE
219afe886fcSDavid Reid #define EMFILE			B_NO_MORE_FDS
220afe886fcSDavid Reid #define EXDEV			B_CROSS_DEVICE_LINK
221afe886fcSDavid Reid #define ELOOP			B_LINK_LIMIT
222afe886fcSDavid Reid #define ENOEXEC			B_NOT_AN_EXECUTABLE
223afe886fcSDavid Reid #define EPIPE			B_BUSTED_PIPE
224afe886fcSDavid Reid 
22568145d0dSAxel Dörfler /*---- new error codes that can be mapped to POSIX errors ----*/
22668145d0dSAxel Dörfler #define	B_BUFFER_OVERFLOW	EOVERFLOW
22768145d0dSAxel Dörfler #define B_TOO_MANY_ARGS		E2BIG
22868145d0dSAxel Dörfler #define	B_FILE_TOO_LARGE	EFBIG
2299de96ae6SAxel Dörfler #define B_RESULT_NOT_REPRESENTABLE	ERANGE
23068145d0dSAxel Dörfler #define	B_DEVICE_NOT_FOUND	ENODEV
231*ec5a9998SAxel Dörfler #define B_NOT_SUPPORTED		EOPNOTSUPP
23268145d0dSAxel Dörfler 
23352a38012Sejakowatz /*-------------------------------------------------------------*/
23452a38012Sejakowatz /*----- Media Kit Errors --------------------------------------*/
23552a38012Sejakowatz enum {
23652a38012Sejakowatz   B_STREAM_NOT_FOUND = B_MEDIA_ERROR_BASE,
23752a38012Sejakowatz   B_SERVER_NOT_FOUND,
23852a38012Sejakowatz   B_RESOURCE_NOT_FOUND,
23952a38012Sejakowatz   B_RESOURCE_UNAVAILABLE,
24052a38012Sejakowatz   B_BAD_SUBSCRIBER,
24152a38012Sejakowatz   B_SUBSCRIBER_NOT_ENTERED,
24252a38012Sejakowatz   B_BUFFER_NOT_AVAILABLE,
24352a38012Sejakowatz   B_LAST_BUFFER_ERROR
24452a38012Sejakowatz };
24552a38012Sejakowatz 
24652a38012Sejakowatz /*-------------------------------------------------------------*/
24752a38012Sejakowatz /*----- Mail Kit Errors ---------------------------------------*/
24852a38012Sejakowatz enum
24952a38012Sejakowatz {
25052a38012Sejakowatz 	B_MAIL_NO_DAEMON = B_MAIL_ERROR_BASE,
25152a38012Sejakowatz 	B_MAIL_UNKNOWN_USER,
25252a38012Sejakowatz 	B_MAIL_WRONG_PASSWORD,
25352a38012Sejakowatz 	B_MAIL_UNKNOWN_HOST,
25452a38012Sejakowatz 	B_MAIL_ACCESS_ERROR,
25552a38012Sejakowatz 	B_MAIL_UNKNOWN_FIELD,
25652a38012Sejakowatz 	B_MAIL_NO_RECIPIENT,
25752a38012Sejakowatz 	B_MAIL_INVALID_MAIL
25852a38012Sejakowatz };
25952a38012Sejakowatz 
26052a38012Sejakowatz /*-------------------------------------------------------------*/
26152a38012Sejakowatz /*----- Printing Errors --------------------------------------*/
26252a38012Sejakowatz enum
26352a38012Sejakowatz {
26452a38012Sejakowatz 	B_NO_PRINT_SERVER = B_PRINT_ERROR_BASE
26552a38012Sejakowatz };
26652a38012Sejakowatz 
26752a38012Sejakowatz /*-------------------------------------------------------------*/
26852a38012Sejakowatz /*----- Device Kit Errors -------------------------------------*/
26952a38012Sejakowatz enum
27052a38012Sejakowatz {
27152a38012Sejakowatz 	B_DEV_INVALID_IOCTL = B_DEVICE_ERROR_BASE,
27252a38012Sejakowatz 	B_DEV_NO_MEMORY,
27352a38012Sejakowatz 	B_DEV_BAD_DRIVE_NUM,
27452a38012Sejakowatz 	B_DEV_NO_MEDIA,
27552a38012Sejakowatz 	B_DEV_UNREADABLE,
27652a38012Sejakowatz 	B_DEV_FORMAT_ERROR,
27752a38012Sejakowatz 	B_DEV_TIMEOUT,
27852a38012Sejakowatz 	B_DEV_RECALIBRATE_ERROR,
27952a38012Sejakowatz 	B_DEV_SEEK_ERROR,
28052a38012Sejakowatz 	B_DEV_ID_ERROR,
28152a38012Sejakowatz 	B_DEV_READ_ERROR,
28252a38012Sejakowatz 	B_DEV_WRITE_ERROR,
28352a38012Sejakowatz 	B_DEV_NOT_READY,
28452a38012Sejakowatz 	B_DEV_MEDIA_CHANGED,
28552a38012Sejakowatz 	B_DEV_MEDIA_CHANGE_REQUESTED,
28652a38012Sejakowatz 	B_DEV_RESOURCE_CONFLICT,
28752a38012Sejakowatz 	B_DEV_CONFIGURATION_ERROR,
28852a38012Sejakowatz 	B_DEV_DISABLED_BY_USER,
289a4733dd5SAxel Dörfler 	B_DEV_DOOR_OPEN,
290a4733dd5SAxel Dörfler 
291a4733dd5SAxel Dörfler 	B_DEV_INVALID_PIPE,
292a4733dd5SAxel Dörfler 	B_DEV_CRC_ERROR,
293a4733dd5SAxel Dörfler 	B_DEV_STALLED,
294a4733dd5SAxel Dörfler 	B_DEV_BAD_PID,
295a4733dd5SAxel Dörfler 	B_DEV_UNEXPECTED_PID,
296a4733dd5SAxel Dörfler 	B_DEV_DATA_OVERRUN,
297a4733dd5SAxel Dörfler 	B_DEV_DATA_UNDERRUN,
298a4733dd5SAxel Dörfler 	B_DEV_FIFO_OVERRUN,
299a4733dd5SAxel Dörfler 	B_DEV_FIFO_UNDERRUN,
300a4733dd5SAxel Dörfler 	B_DEV_PENDING,
301a4733dd5SAxel Dörfler 	B_DEV_MULTIPLE_ERRORS,
302a4733dd5SAxel Dörfler 	B_DEV_TOO_LATE,
30352a38012Sejakowatz };
30452a38012Sejakowatz 
305ae614d48SAxel Dörfler #endif /* _ERRORS_H */
306