Lely core libraries  2.2.5
errnum.h
Go to the documentation of this file.
1 
56 #ifndef LELY_UTIL_ERRNUM_H_
57 #define LELY_UTIL_ERRNUM_H_
58 
59 #include <lely/features.h>
60 
61 #include <errno.h>
62 
63 #if _WIN32
64 #include <winerror.h>
65 #elif _POSIX_C_SOURCE >= 200112L && !defined(__NEWLIB__)
66 #include <netdb.h>
67 #endif
68 
69 #ifndef LELY_UTIL_ERRNUM_INLINE
70 #define LELY_UTIL_ERRNUM_INLINE static inline
71 #endif
72 
74 enum errnum {
111  // ERRNUM_DQUOT,
144  // ERRNUM_MULTIHOP,
167  // ERRNUM_NOLINK,
222  // ERRNUM_STALE,
257 };
258 
260 #ifdef __cplusplus
261 typedef int errnum_t;
262 #else
263 typedef enum errnum errnum_t;
264 #endif
265 
266 #ifdef __cplusplus
267 extern "C" {
268 #endif
269 
277 int errno2c(int errnum);
278 
284 errnum_t errno2num(int errnum);
285 
293 int errc2no(int errc);
294 
300 errnum_t errc2num(int errc);
301 
307 int errnum2no(errnum_t errnum);
308 
314 int errnum2c(errnum_t errnum);
315 
325 int get_errc(void);
326 
334 void set_errc(int errc);
335 
343 LELY_UTIL_ERRNUM_INLINE errnum_t get_errnum(void);
344 
351 LELY_UTIL_ERRNUM_INLINE void set_errnum(errnum_t errnum);
352 
357 const char *errno2str(int errnum);
358 
360 const char *errc2str(int errc);
361 
366 LELY_UTIL_ERRNUM_INLINE const char *errnum2str(errnum_t errnum);
367 
368 inline errnum_t
370 {
371  return errc2num(get_errc());
372 }
373 
374 inline void
376 {
377  set_errc(errnum2c(errnum));
378 }
379 
380 inline const char *
382 {
383  return errc2str(errnum2c(errnum));
384 }
385 
386 #ifdef __cplusplus
387 }
388 #endif
389 
390 #endif // !LELY_UTIL_ERRNUM_H_
File descriptor value too large.
Definition: errnum.h:139
const char * errc2str(int errc)
Returns a string describing a native error code.
Definition: errnum.c:973
Permission denied.
Definition: errnum.h:78
No space left on device.
Definition: errnum.h:175
Inappropriate I/O control operation.
Definition: errnum.h:195
int errc2no(int errc)
Transforms a native error code to a standard C error number.
Definition: errnum.c:300
Read-only file system.
Definition: errnum.h:217
The intended socket type was not recognized.
Definition: errnum.h:256
Resource deadlock would occur.
Definition: errnum.h:106
Interrupted function.
Definition: errnum.h:127
Result too large.
Definition: errnum.h:215
Operation not supported on socket.
Definition: errnum.h:199
Network is down.
Definition: errnum.h:148
Connection refused.
Definition: errnum.h:102
int errnum2c(errnum_t errnum)
Transforms a platform-independent error number to a native error code.
Definition: errnum.c:825
No buffer space available.
Definition: errnum.h:156
void set_errnum(errnum_t errnum)
Sets the current (thread-specific) platform-independent error number to errnum.
Definition: errnum.h:375
Mathematics argument out of domain of function.
Definition: errnum.h:110
Address in use.
Definition: errnum.h:80
Too many levels of symbolic links.
Definition: errnum.h:137
The address family was not recognized or the address length was invalid for the specified family...
Definition: errnum.h:246
Connection aborted.
Definition: errnum.h:100
Too many files open in system.
Definition: errnum.h:154
Connection reset.
Definition: errnum.h:104
Executable file format error.
Definition: errnum.h:164
const char * errnum2str(errnum_t errnum)
Returns a string describing a platform-independent error number.
Definition: errnum.h:381
File exists.
Definition: errnum.h:113
Not a STREAM.
Definition: errnum.h:179
Address not available.
Definition: errnum.h:82
Bad address.
Definition: errnum.h:115
Network unreachable.
Definition: errnum.h:152
void set_errc(int errc)
Sets the current (thread-specific) native error code to errc.
Definition: errnum.c:957
Socket is connected.
Definition: errnum.h:133
Connection already in progress.
Definition: errnum.h:88
Operation canceled.
Definition: errnum.h:96
Illegal byte sequence.
Definition: errnum.h:123
Identifier removed.
Definition: errnum.h:121
Address family not supported.
Definition: errnum.h:84
Bad message.
Definition: errnum.h:92
Previous owner died.
Definition: errnum.h:203
Protocol error.
Definition: errnum.h:209
Broken pipe.
Definition: errnum.h:207
The flags had an invalid value.
Definition: errnum.h:239
A non-recoverable error occurred.
Definition: errnum.h:241
Is a directory.
Definition: errnum.h:135
Operation in progress.
Definition: errnum.h:125
No locks available.
Definition: errnum.h:166
int get_errc(void)
Returns the last (thread-specific) native error code set by a system call or library function...
Definition: errnum.c:947
State not recoverable.
Definition: errnum.h:189
Resource unavailable, try again.
Definition: errnum.h:86
errnum_t errno2num(int errnum)
Transforms a standard C error number to a platform-independent error number.
Definition: errnum.c:53
Protocol not available.
Definition: errnum.h:173
The socket is not connected.
Definition: errnum.h:183
Directory not empty.
Definition: errnum.h:187
Invalid argument.
Definition: errnum.h:129
Message too large.
Definition: errnum.h:143
Not a socket.
Definition: errnum.h:191
int errno2c(int errnum)
Transforms a standard C error number to a native error code.
Definition: errnum.c:43
I/O error.
Definition: errnum.h:131
errnum
The platform-independent error numbers.
Definition: errnum.h:74
No message of the desired type.
Definition: errnum.h:171
Not supported.
Definition: errnum.h:193
Filename too long.
Definition: errnum.h:146
No message is available on the STREAM head read queue.
Definition: errnum.h:158
const char * errno2str(int errnum)
Returns a string describing a standard C error number.
Definition: errnum.c:967
No such device or address.
Definition: errnum.h:197
errnum_t errc2num(int errc)
Transforms a native error code to a platform-independent error number.
Definition: errnum.c:310
File too large.
Definition: errnum.h:117
No such file or directory.
Definition: errnum.h:162
Argument list too long.
Definition: errnum.h:76
Stream ioctl() timeout.
Definition: errnum.h:224
Invalid seek.
Definition: errnum.h:219
int errnum2no(errnum_t errnum)
Transforms a platform-independent error number to a standard C error number.
Definition: errnum.c:574
errnum_t get_errnum(void)
Returns the last (thread-specific) platform-independent error number set by a system call or library ...
Definition: errnum.h:369
Not enough space.
Definition: errnum.h:169
Bad file descriptor.
Definition: errnum.h:90
enum errnum errnum_t
The platform-independent error number type.
Definition: errnum.h:263
Operation not permitted.
Definition: errnum.h:205
No such process.
Definition: errnum.h:221
Device or resource busy.
Definition: errnum.h:94
The service passed was not recognized for the specified socket type.
Definition: errnum.h:254
Host is unreachable.
Definition: errnum.h:119
No such device.
Definition: errnum.h:160
Cross-device link.
Definition: errnum.h:232
The name does not resolve for the supplied parameters.
Definition: errnum.h:250
This header file is part of the Lely libraries; it contains the compiler feature definitions.
Protocol wrong type for socket.
Definition: errnum.h:213
An argument buffer overflowed.
Definition: errnum.h:252
Destination address required.
Definition: errnum.h:108
The name could not be resolved at this time.
Definition: errnum.h:237
Text file busy.
Definition: errnum.h:228
Operation would block.
Definition: errnum.h:230
There was a memory allocation failure.
Definition: errnum.h:248
Function not supported.
Definition: errnum.h:181
Too many links.
Definition: errnum.h:141
Not a directory or a symbolic link to a directory.
Definition: errnum.h:185
No STREAM resources.
Definition: errnum.h:177
Connection timed out.
Definition: errnum.h:226
No child process.
Definition: errnum.h:98
Protocol not supported.
Definition: errnum.h:211
Value too large to be stored in data type.
Definition: errnum.h:201
Connection aborted by network.
Definition: errnum.h:150