/** @file | |
The header <errno.h> defines several macros, all relating to the reporting of | |
error conditions. | |
The ISO/IEC 9899 specification requires that these be macros. | |
The macros expand to integral constant expressions | |
with distinct nonzero values, suitable for use in #if preprocessing | |
directives; the variable errno which expands to a modifiable lvalue that has type int, | |
the value of which is set to a positive error number by several library | |
functions; and the variable EFIerrno which is an extension allowing the return status | |
of the underlying UEFI functions to be returned. | |
The value of errno and EFIerrno is zero at program startup. On program startup, errno | |
is initialized to zero but is never set to zero by | |
any library function. The value of errno may be set to a non-zero value by | |
a library function call whether or not there is an error, provided the use | |
of errno is not documented in the description of the function in | |
the governing standard: ISO/IEC 9899:1990 with Amendment 1 or ISO/IEC 9899:199409. | |
EFIerrno, like errno, should only be checked if it is known that the preceeding function call | |
called a UEFI function. Functions in which UEFI functions are called dependent upon context | |
or parameter values should guarantee that EFIerrno is set to zero by default, or to the status | |
value returned by any UEFI functions which are called. | |
All macro definitions in this list must begin with the letter 'E' | |
and be followed by a digit or an uppercase letter. | |
Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR> | |
This program and the accompanying materials are licensed and made available under | |
the terms and conditions of the BSD License that accompanies this distribution. | |
The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license. | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
**/ | |
#ifndef _ERRNO_H | |
#define _ERRNO_H | |
#include <sys/EfiCdefs.h> | |
#include <sys/errno.h> | |
extern int errno; | |
extern RETURN_STATUS EFIerrno; | |
// Define error number in terms of the ENUM in <sys/errno.h> | |
#define ERESTART -1 /* restart syscall */ | |
#define ESUCCESS __ESUCCESS /* No Problems */ | |
#define EMINERRORVAL __EMINERRORVAL /* 1 The lowest valid error value */ | |
#define EPERM __EPERM /* 1 Operation not permitted */ | |
#define ENOENT __ENOENT /* 2 No such file or directory */ | |
#define ESRCH __ESRCH /* 3 No such process */ | |
#define EINTR __EINTR /* 4 Interrupted system call */ | |
#define EIO __EIO /* 5 Input/output error */ | |
#define ENXIO __ENXIO /* 6 Device not configured */ | |
#define E2BIG __E2BIG /* 7 Argument list too long */ | |
#define ENOEXEC __ENOEXEC /* 8 Exec format error */ | |
#define EBADF __EBADF /* 9 Bad file descriptor */ | |
#define ECHILD __ECHILD /* 10 No child processes */ | |
#define EDEADLK __EDEADLK /* 11 Resource deadlock avoided */ | |
#define ENOMEM __ENOMEM /* 12 Cannot allocate memory */ | |
#define EACCES __EACCES /* 13 Permission denied */ | |
#define EFAULT __EFAULT /* 14 Bad address */ | |
#define ENOTBLK __ENOTBLK /* 15 Block device required */ | |
#define EBUSY __EBUSY /* 16 Device busy */ | |
#define EEXIST __EEXIST /* 17 File exists */ | |
#define EXDEV __EXDEV /* 18 Cross-device link */ | |
#define ENODEV __ENODEV /* 19 Operation not supported by device */ | |
#define ENOTDIR __ENOTDIR /* 20 Not a directory */ | |
#define EISDIR __EISDIR /* 21 Is a directory */ | |
#define EINVAL __EINVAL /* 22 Invalid argument */ | |
#define ENFILE __ENFILE /* 23 Too many open files in system */ | |
#define EMFILE __EMFILE /* 24 Too many open file descriptors */ | |
#define ENOTTY __ENOTTY /* 25 Inappropriate ioctl for device */ | |
#define ETXTBSY __ETXTBSY /* 26 Text file busy */ | |
#define EFBIG __EFBIG /* 27 File too large */ | |
#define ENOSPC __ENOSPC /* 28 No space left on device */ | |
#define ESPIPE __ESPIPE /* 29 Illegal seek */ | |
#define EROFS __EROFS /* 30 Read-only filesystem */ | |
#define EMLINK __EMLINK /* 31 Too many links */ | |
#define EPIPE __EPIPE /* 32 Broken pipe */ | |
/* math software -- these are the only two values required by the C Standard */ | |
#define EDOM __EDOM /* 33 Numerical argument out of domain */ | |
#define ERANGE __ERANGE /* 34 Result too large */ | |
/* non-blocking and interrupt i/o */ | |
#define EAGAIN __EAGAIN /* 35 Resource temporarily unavailable */ | |
#define EWOULDBLOCK __EWOULDBLOCK /* 35 Operation would block */ | |
#define EINPROGRESS __EINPROGRESS /* 36 Operation now in progress */ | |
#define EALREADY __EALREADY /* 37 Operation already in progress */ | |
/* ipc/network software -- argument errors */ | |
#define ENOTSOCK __ENOTSOCK /* 38 Socket operation on non-socket */ | |
#define EDESTADDRREQ __EDESTADDRREQ /* 39 Destination address required */ | |
#define EMSGSIZE __EMSGSIZE /* 40 Message too long */ | |
#define EPROTOTYPE __EPROTOTYPE /* 41 Protocol wrong type for socket */ | |
#define ENOPROTOOPT __ENOPROTOOPT /* 42 Protocol not available */ | |
#define EPROTONOSUPPORT __EPROTONOSUPPORT /* 43 Protocol not supported */ | |
#define ESOCKTNOSUPPORT __ESOCKTNOSUPPORT /* 44 Socket type not supported */ | |
#define EOPNOTSUPP __EOPNOTSUPP /* 45 Operation not supported */ | |
#define ENOTSUP __ENOTSUP /* 45 Operation not supported */ | |
#define EPFNOSUPPORT __EPFNOSUPPORT /* 46 Protocol family not supported */ | |
#define EAFNOSUPPORT __EAFNOSUPPORT /* 47 Address family not supported by protocol family */ | |
#define EADDRINUSE __EADDRINUSE /* 48 Address already in use */ | |
#define EADDRNOTAVAIL __EADDRNOTAVAIL /* 49 Can't assign requested address */ | |
/* ipc/network software -- operational errors */ | |
#define ENETDOWN __ENETDOWN /* 50 Network is down */ | |
#define ENETUNREACH __ENETUNREACH /* 51 Network is unreachable */ | |
#define ENETRESET __ENETRESET /* 52 Network dropped connection on reset */ | |
#define ECONNABORTED __ECONNABORTED /* 53 Software caused connection abort */ | |
#define ECONNRESET __ECONNRESET /* 54 Connection reset by peer */ | |
#define ENOBUFS __ENOBUFS /* 55 No buffer space available */ | |
#define EISCONN __EISCONN /* 56 Socket is already connected */ | |
#define ENOTCONN __ENOTCONN /* 57 Socket is not connected */ | |
#define ESHUTDOWN __ESHUTDOWN /* 58 Can't send after socket shutdown */ | |
#define ETOOMANYREFS __ETOOMANYREFS /* 59 Too many references: can't splice */ | |
#define ETIMEDOUT __ETIMEDOUT /* 60 Operation timed out */ | |
#define ECONNREFUSED __ECONNREFUSED /* 61 Connection refused */ | |
#define ELOOP __ELOOP /* 62 Too many levels of symbolic links */ | |
#define ENAMETOOLONG __ENAMETOOLONG /* 63 File name too long */ | |
#define EHOSTDOWN __EHOSTDOWN /* 64 Host is down */ | |
#define EHOSTUNREACH __EHOSTUNREACH /* 65 No route to host */ | |
#define ENOTEMPTY __ENOTEMPTY /* 66 Directory not empty */ | |
/* quotas, etc. */ | |
#define EPROCLIM __EPROCLIM /* 67 Too many processes */ | |
#define EUSERS __EUSERS /* 68 Too many users */ | |
#define EDQUOT __EDQUOT /* 69 Disc quota exceeded */ | |
/* Network File System */ | |
#define ESTALE __ESTALE /* 70 Stale NFS file handle */ | |
#define EREMOTE __EREMOTE /* 71 Too many levels of remote in path */ | |
#define EBADRPC __EBADRPC /* 72 RPC struct is bad */ | |
#define ERPCMISMATCH __ERPCMISMATCH /* 73 RPC version wrong */ | |
#define EPROGUNAVAIL __EPROGUNAVAIL /* 74 RPC prog. not avail */ | |
#define EPROGMISMATCH __EPROGMISMATCH /* 75 Program version wrong */ | |
#define EPROCUNAVAIL __EPROCUNAVAIL /* 76 Bad procedure for program */ | |
#define ENOLCK __ENOLCK /* 77 No locks available */ | |
#define ENOSYS __ENOSYS /* 78 Function not implemented */ | |
#define EFTYPE __EFTYPE /* 79 Inappropriate file type or format */ | |
#define EAUTH __EAUTH /* 80 Authentication error */ | |
#define ENEEDAUTH __ENEEDAUTH /* 81 Need authenticator */ | |
#define EIDRM __EIDRM /* 82 Identifier removed */ | |
#define ENOMSG __ENOMSG /* 83 No message of desired type */ | |
#define EOVERFLOW __EOVERFLOW /* 84 Value too large to be stored in data type */ | |
#define EILSEQ __EILSEQ /* 85 Illegal byte sequence */ | |
#define ENOTHING_1 __ENOTHING_1 /* 86 Place Holder */ | |
#define ECANCELED __ECANCELED /* 87 Operation canceled */ | |
#define EBADMSG __EBADMSG /* 88 Bad message */ | |
#define ENODATA __ENODATA /* 89 No message available */ | |
#define ENOSR __ENOSR /* 90 No STREAM resources */ | |
#define ENOSTR __ENOSTR /* 91 Not a STREAM */ | |
#define ETIME __ETIME /* 92 STREAM ioctl timeout */ | |
#define ENOATTR __ENOATTR /* 93 Attribute not found */ | |
#define EDOOFUS __EDOOFUS /* 94 Programming error */ | |
#define EMULTIHOP __EMULTIHOP /* 95 Multihop attempted */ | |
#define ENOLINK __ENOLINK /* 96 Link has been severed */ | |
#define EPROTO __EPROTO /* 97 Protocol error */ | |
#define EBUFSIZE __EBUFSIZE /* 98 Buffer too small to hold result */ | |
#define EMAXERRORVAL __EMAXERRORVAL /* One more than the highest defined error value. */ | |
#endif /* _ERRNO_H */ |