linux ecall命令,Linux errno.h文件

00001 /* The header defines the numbers of the various errors that can

00002 * occur during program execution. They are visible to user programs and

00003 * should be small positive integers. However, they are also used within

00004 * MINIX, where they must be negative. For example, the READ system call is

00005 * executed internally by calling do_read(). This function returns either a

00006 * (negative) error number or a (positive) number of bytes actually read.

00007 *

00008 * To solve the problem of having the error numbers be negative inside the

00009 * the system and positive outside, the following mechanism is used. All the

00010 * definitions are are the form:

00011 *

00012 * #define EPERM (_SIGN 1)

00013 *

00014 * If the macro _SYSTEM is defined, then _SIGN is set to "-", otherwise it is

00015 * set to "". Thus when compiling the operating system, the macro _SYSTEM

00016 * will be defined, setting EPERM to (- 1), whereas when when this

00017 * file is included in an ordinary user program, EPERM has the value ( 1).

00018 */

00019

00020 #ifndef _ERRNO_H/* check if is already included */

#define _ERRNO_H/* it is not included; note that fact */

00022

00023 /* Now define _SIGN as "" or "-" depending on _SYSTEM. */

00024 #ifdef _SYSTEM

00025 # define _SIGN -

00026 # define OK 0

00027 #else

# define _SIGN

00029 #endif

00030

00031 extern int ; /* place where the error numbers go */

00032

00033 /* Here are the numerical values of the error numbers. */

#define _NERROR 70/* number of errors */

00035

#define EGENERIC (_SIGN 99)/* generic error */

#define EPERM (_SIGN 1)/* operation not permitted */

#define ENOENT (_SIGN 2)/* no such file or directory */

#define ESRCH (_SIGN 3)/* no such process */

#define EINTR (_SIGN 4)/* interrupted function call */

#define EIO (_SIGN 5)/* input/output error */

#define ENXIO (_SIGN 6)/* no such device or address */

#define E2BIG (_SIGN 7)/* arg list too long */

#define ENOEXEC (_SIGN 8)/* exec format error */

#define EBADF (_SIGN 9)/* bad file descriptor */

#define ECHILD (_SIGN 10)/* no child process */

#define EAGAIN (_SIGN 11)/* resource temporarily unavailable */

#define ENOMEM (_SIGN 12)/* not enough space */

#define EACCES (_SIGN 13)/* permission denied */

#define EFAULT (_SIGN 14)/* bad address */

#define ENOTBLK (_SIGN 15)/* Extension: not a block special file */

#define EBUSY (_SIGN 16)/* resource busy */

#define EEXIST (_SIGN 17)/* file exists */

#define EXDEV (_SIGN 18)/* improper link */

#define ENODEV (_SIGN 19)/* no such device */

#define ENOTDIR (_SIGN 20)/* not a directory */

#define EISDIR (_SIGN 21)/* is a directory */

#define EINVAL (_SIGN 22)/* invalid argument */

#define ENFILE (_SIGN 23)/* too many open files in system */

#define EMFILE (_SIGN 24)/* too many open files */

#define ENOTTY (_SIGN 25)/* inappropriate I/O control operation */

#define ETXTBSY (_SIGN 26)/* no longer used */

#define EFBIG (_SIGN 27)/* file too large */

#define ENOSPC (_SIGN 28)/* no space left on device */

#define ESPIPE (_SIGN 29)/* invalid seek */

#define EROFS (_SIGN 30)/* read-only file system */

#define EMLINK (_SIGN 31)/* too many links */

#define EPIPE (_SIGN 32)/* broken pipe */

#define EDOM (_SIGN 33)/* domain error (from ANSI C std) */

#define ERANGE (_SIGN 34)/* result too large (from ANSI C std) */

#define EDEADLK (_SIGN 35)/* resource deadlock avoided */

#define ENAMETOOLONG (_SIGN 36)/* file name too long */

#define ENOLCK (_SIGN 37)/* no locks available */

#define ENOSYS (_SIGN 38)/* function not implemented */

#define ENOTEMPTY (_SIGN 39)/* directory not empty */

#define ELOOP (_SIGN 40)/* too many levels of symlinks detected */

00077

00078 /* The following errors relate to networking. */

#define EPACKSIZE (_SIGN 50)/* invalid packet size for some protocol */

#define EOUTOFBUFS (_SIGN 51)/* not enough buffers left */

#define EBADIOCTL (_SIGN 52)/* illegal ioctl for device */

#define EBADMODE (_SIGN 53)/* badmode in ioctl */

#define EWOULDBLOCK (_SIGN 54)

#define EBADDEST (_SIGN 55)/* not a valid destination address */

#define EDSTNOTRCH (_SIGN 56)/* destination not reachable */

#define EISCONN (_SIGN 57)/* all ready connected */

#define EADDRINUSE (_SIGN 58)/* address in use */

#define ECONNREFUSED (_SIGN 59)/* connection refused */

#define ECONNRESET (_SIGN 60)/* connection reset */

#define ETIMEDOUT (_SIGN 61)/* connection timed out */

#define EURG (_SIGN 62)/* urgent data present */

#define ENOURG (_SIGN 63)/* no urgent data present */

#define ENOTCONN (_SIGN 64)/* no connection (yet or anymore) */

#define ESHUTDOWN (_SIGN 65)/* a write call to a shutdown connection */

#define ENOCONN (_SIGN 66)/* no such connection */

#define EAFNOSUPPORT (_SIGN 67)/* address family not supported */

#define EPROTONOSUPPORT (_SIGN 68)/* protocol not supported by AF */

#define EPROTOTYPE (_SIGN 69)/* Protocol wrong type for socket */

#define EINPROGRESS (_SIGN 70)/* Operation now in progress */

#define EADDRNOTAVAIL (_SIGN 71)/* Can't assign requested address */

#define EALREADY (_SIGN 72)/* Connection already in progress */

#define EMSGSIZE (_SIGN 73)/* Message too long */

#define ENOTSOCK (_SIGN 74)/* Socket operation on non-socket */

#define ENOPROTOOPT (_SIGN 75)/* Protocol not available */

00105

00106 /* The following are not POSIX errors, but they can still happen.

00107 * All of these are generated by the kernel and relate to message passing.

00108 */

#define ELOCKED (_SIGN 101)/* can't send message due to deadlock */

#define EBADCALL (_SIGN 102)/* illegal system call number */

#define EBADSRCDST (_SIGN 103)/* bad source or destination process */

#define ECALLDENIED (_SIGN 104)/* no permission for system call */

#define EDEADSRCDST (_SIGN 105)/* source or destination is not alive */

#define ENOTREADY (_SIGN 106)/* source or destination is not ready */

#define EBADREQUEST (_SIGN 107)/* destination cannot handle request */

#define ESRCDIED (_SIGN 108)/* source just died */

#define EDSTDIED (_SIGN 109)/* destination just died */

#define ETRAPDENIED (_SIGN 110)/* IPC trap not allowed */

#define EDONTREPLY (_SIGN 201)/* pseudo-code: don't send a reply */

00120

00121 #endif/* _ERRNO_H */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值