|
0
|
1 #ifndef CYGONCE_ERROR_CODES_H |
|
|
2 #define CYGONCE_ERROR_CODES_H |
|
|
3 //=========================================================================== |
|
|
4 // |
|
|
5 // codes.h |
|
|
6 // |
|
|
7 // Common error code definitions |
|
|
8 // |
|
|
9 //=========================================================================== |
|
|
10 //####COPYRIGHTBEGIN#### |
|
|
11 // |
|
|
12 // ------------------------------------------- |
|
|
13 // The contents of this file are subject to the Cygnus eCos Public License |
|
|
14 // Version 1.0 (the "License"); you may not use this file except in |
|
|
15 // compliance with the License. You may obtain a copy of the License at |
|
|
16 // http://sourceware.cygnus.com/ecos |
|
|
17 // |
|
|
18 // Software distributed under the License is distributed on an "AS IS" |
|
|
19 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the |
|
|
20 // License for the specific language governing rights and limitations under |
|
|
21 // the License. |
|
|
22 // |
|
|
23 // The Original Code is eCos - Embedded Cygnus Operating System, released |
|
|
24 // September 30, 1998. |
|
|
25 // |
|
|
26 // The Initial Developer of the Original Code is Cygnus. Portions created |
|
|
27 // by Cygnus are Copyright (C) 1998 Cygnus Solutions. All Rights Reserved. |
|
|
28 // ------------------------------------------- |
|
|
29 // |
|
|
30 //####COPYRIGHTEND#### |
|
|
31 //=========================================================================== |
|
|
32 //#####DESCRIPTIONBEGIN#### |
|
|
33 // |
|
|
34 // Author(s): jlarmour@cygnus.co.uk |
|
|
35 // Contributors: jlarmour@cygnus.co.uk |
|
|
36 // Date: 1998-06-11 |
|
|
37 // Purpose: To provide a common set of error codes |
|
|
38 // Description: This provides a common set of error codes that all packages can |
|
|
39 // agree on. It doesn't preclude them defining their own error |
|
|
40 // return system, but this is a preferable system to use to help |
|
|
41 // error support be as general as possible. |
|
|
42 // |
|
|
43 // We try and conform to the ANSI/POSIX error code format, namely |
|
|
44 // starting with the character 'E' |
|
|
45 // |
|
|
46 // Usage: #include <cyg/error/codes.h> |
|
|
47 // |
|
|
48 // Example: |
|
|
49 // |
|
|
50 // err=myfun(); |
|
|
51 // if (err != ENOERR) |
|
|
52 // { |
|
|
53 // str=strerror(err); |
|
|
54 // printf("myfun returned error: %s\n", str); |
|
|
55 // } |
|
|
56 // else .... |
|
|
57 // |
|
|
58 //####DESCRIPTIONEND#### |
|
|
59 // |
|
|
60 //=========================================================================== |
|
|
61 |
|
|
62 // CONFIGURATION |
|
|
63 |
|
|
64 #include <pkgconf/error.h> // Configuration header |
|
|
65 #include <cyg/infra/cyg_type.h> // externC |
|
|
66 |
|
|
67 // Include the error package? |
|
|
68 #ifdef CYGPKG_ERROR |
|
|
69 |
|
|
70 |
|
|
71 // TYPE DEFINITIONS |
|
|
72 |
|
|
73 // A type for error codes which may be useful to explain the purpose of |
|
|
74 // a variable or return code. It shows that it contains an error code |
|
|
75 // of the type defined below |
|
|
76 |
|
|
77 typedef int Cyg_ErrNo; |
|
|
78 |
|
|
79 |
|
|
80 // FUNCTION PROTOTYPES |
|
|
81 |
|
|
82 // ANSI standard strerror() function as described by ANSI chap. 7.11.6.2. |
|
|
83 // This is normally provided by <string.h> |
|
|
84 |
|
|
85 externC char * |
|
|
86 strerror( Cyg_ErrNo ); |
|
|
87 |
|
|
88 // prototype for the actual implementation. Equivalent to the above, but |
|
|
89 // used internally by this product in preference |
|
|
90 |
|
|
91 externC char * |
|
|
92 _strerror( Cyg_ErrNo ); |
|
|
93 |
|
|
94 |
|
|
95 // CONSTANT DEFINITIONS |
|
|
96 |
|
|
97 // If adding to this list, you must also update strerror() with its text |
|
|
98 // If there is a common error of the same purpose on Unix, try and use its |
|
|
99 // name and number. If not, use one above 200 to prevent future conflicts |
|
|
100 // |
|
|
101 // Do not use negative numbers, so that functions can return positive on |
|
|
102 // success and -ESOMETHING on error, and it all works consistently. |
|
|
103 |
|
|
104 #define ENOERR 0 // No error |
|
|
105 #define EPERM 1 // Not permitted |
|
|
106 #define ENOENT 2 // No such entity |
|
|
107 #define ESRCH 3 // No such process |
|
|
108 #define EINTR 4 // Operation interrupted |
|
|
109 #define EIO 5 // I/O error |
|
|
110 #define EBADF 9 // Bad file handle |
|
|
111 #define EAGAIN 11 // Try again later |
|
|
112 #define EWOULDBLOCK EAGAIN |
|
|
113 #define ENOMEM 12 // Out of memory |
|
|
114 #define EBUSY 16 // Resource busy |
|
|
115 #define ENODEV 19 // No such device |
|
|
116 #define EINVAL 22 // Invalid argument |
|
|
117 #define EMFILE 24 // Too many open files |
|
|
118 #define EDOM 33 // Argument to math function outside valid |
|
|
119 // domain |
|
|
120 #define ERANGE 34 // Math result cannot be represented |
|
|
121 #define ENOSYS 38 // Function not implemented |
|
|
122 |
|
|
123 #define EEOF 200 // End of file reached |
|
|
124 #define ENOSUPP 201 // Operation not supported |
|
|
125 #define EDEVNOSUPP 202 // Device does not support this operation |
|
|
126 |
|
|
127 #endif // ifdef CYGPKG_ERROR |
|
|
128 |
|
|
129 #endif // CYGONCE_ERROR_CODES_H multiple inclusion protection |
|
|
130 |
|
|
131 // EOF codes.h |