xref: /DragonOS/kernel/src/common/errno.h (revision 0e2c2e8b48369b201f44e0933f775b932b6776ef)
12813126eSlogin /**
22813126eSlogin  * @file errno.h
32813126eSlogin  * @author fslongjin (longjin@RinGoTek.cn)
42813126eSlogin  * @brief
52813126eSlogin  * @version 0.1
62813126eSlogin  * @date 2022-04-22
72813126eSlogin  *
82813126eSlogin  * @copyright Copyright (c) 2022
92813126eSlogin  *
102813126eSlogin  */
112813126eSlogin #pragma once
1279a452ceShoumkh #define EPERM 1             /* 操作不被允许 Operation not permitted. */
1379a452ceShoumkh #define ENOENT 2            /* 没有指定的文件或目录 No such file or directory. */
1479a452ceShoumkh #define ESRCH 3             /* 没有这样的进程 No such process. */
1579a452ceShoumkh #define EINTR 4             /* 被中断的函数 Interrupted function. */
1679a452ceShoumkh #define EIO 5               /* I/O错误 I/O error. */
1779a452ceShoumkh #define ENXIO 6             /* 没有这样的设备或地址 No such device or address. */
1879a452ceShoumkh #define E2BIG 7             /* 参数列表过长,或者在输出buffer中缺少空间 或者参数比系统内建的最大值要大 Argument list too long. */
1979a452ceShoumkh #define ENOEXEC 8           /* 可执行文件格式错误 Executable file format error */
2079a452ceShoumkh #define EBADF 9             /* 错误的文件描述符 Bad file descriptor. */
2179a452ceShoumkh #define ECHILD 10           /* 没有子进程 No child processes. */
2279a452ceShoumkh #define EAGAIN 11           /* 资源不可用,请重试。 Resource unavailable try again.(may be the same value as [EWOULDBLOCK]) */
2379a452ceShoumkh #define EWOULDBLOCK 11      /* 操作将被禁止 Operation would block.(may be the same value as [EAGAIN]). */
2479a452ceShoumkh #define ENOMEM 12           /* 没有足够的空间 Not enough space. */
2579a452ceShoumkh #define EACCES 13           /* 访问被拒绝 Permission denied */
2679a452ceShoumkh #define EFAULT 14           /* 错误的地址 Bad address */
2779a452ceShoumkh #define ENOTBLK 15          /* 需要块设备 Block device required */
2879a452ceShoumkh #define EBUSY 16            /* 设备或资源忙 Device or resource busy. */
2979a452ceShoumkh #define EEXIST 17           /* 文件已存在 File exists. */
3079a452ceShoumkh #define EXDEV 18            /* 跨设备连接 Cross-device link. */
3179a452ceShoumkh #define ENODEV 19           /* 没有指定的设备 No such device. */
3279a452ceShoumkh #define ENOTDIR 20          /* 不是目录 Not a directory. */
3379a452ceShoumkh #define EISDIR 21           /* 是一个目录 Is a directory */
3479a452ceShoumkh #define EINVAL 22           /* 不可用的参数 Invalid argument. */
3579a452ceShoumkh #define ENFILE 23           /* 系统中打开的文件过多 Too many files open in system. */
3679a452ceShoumkh #define EMFILE 24           /* 文件描述符的值过大 File descriptor value too large. */
3779a452ceShoumkh #define ENOTTY 25           /* 不正确的I/O控制操作 Inappropriate I/O control operation. */
3879a452ceShoumkh #define ETXTBSY 26          /* 文本文件忙 Text file busy. */
3979a452ceShoumkh #define EFBIG 27            /* 文件太大 File too large. */
4079a452ceShoumkh #define ENOSPC 28           /* 设备上没有空间 No space left on device. */
4179a452ceShoumkh #define ESPIPE 29           /* 错误的寻道.当前文件是pipe,不允许seek请求  Invalid seek. */
4279a452ceShoumkh #define EROFS 30            /* 只读的文件系统 Read-only file system. */
4379a452ceShoumkh #define EMLINK 31           /* 链接数过多 Too many links. */
4479a452ceShoumkh #define EPIPE 32            /* 断开的管道 Broken pipe. */
4579a452ceShoumkh #define EDOM 33             /* 数学参数超出作用域 Mathematics argument out of domain of function. */
4679a452ceShoumkh #define ERANGE 34           /* 结果过大 Result too large. */
4779a452ceShoumkh #define EDEADLK 35          /* 资源死锁将要发生 Resource deadlock would occur. */
4879a452ceShoumkh #define ENAMETOOLONG 36     /* 文件名过长 Filename too long. */
4979a452ceShoumkh #define ENOLCK 37           /* 没有可用的锁 No locks available. */
5079a452ceShoumkh #define ENOSYS 38           /* 功能不支持 Function not supported. */
5179a452ceShoumkh #define ENOTEMPTY 39        /* 目录非空 Directory not empty. */
5279a452ceShoumkh #define ELOOP 40            /* 符号链接级别过多 Too many levels of symbolic links. */
53*0e2c2e8bS裕依 #define ENOMSG 42           /* 没有期待类型的消息 No message of the desired type. */
54*0e2c2e8bS裕依 #define EIDRM 43            /* 标志符被移除 Identifier removed. */
55*0e2c2e8bS裕依 #define ECHRNG 44           /* 通道号超出范围 Channel number out of range */
56*0e2c2e8bS裕依 #define EL2NSYNC 45         /* 二级不同步 Level 2 not synchronized */
57*0e2c2e8bS裕依 #define EL3HLT 46           /* 三级暂停 Level 3 halted */
58*0e2c2e8bS裕依 #define EL3RST 47           /* 三级重置 Level 3 reset */
59*0e2c2e8bS裕依 #define ELNRNG 48           /* 链接号超出范围 Link number out of range */
60*0e2c2e8bS裕依 #define EUNATCH 49          /* 未连接协议驱动程序 Protocol driver not attached */
61*0e2c2e8bS裕依 #define ENOCSI 50           /* 没有可用的CSI结构 No CSI structure available */
62*0e2c2e8bS裕依 #define EL2HLT 51           /* 二级暂停 Level 2 halted */
63*0e2c2e8bS裕依 #define EBADE 52            /* 无效交换 Invalid exchange */
64*0e2c2e8bS裕依 #define EBADR 53            /* 无效的请求描述符 Invalid request descriptor */
65*0e2c2e8bS裕依 #define EXFULL 54           /* 交换满 Exchange full */
66*0e2c2e8bS裕依 #define ENOANO 55           /* 无阳极 No anode */
67*0e2c2e8bS裕依 #define EBADRQC 56          /* 请求码无效 Invalid request code */
68*0e2c2e8bS裕依 #define EBADSLT 57          /* 无效插槽 Invalid slot */
69*0e2c2e8bS裕依 #define EDEADLOCK EDEADLK   /* 资源死锁 Resource deadlock would occur */
70*0e2c2e8bS裕依 #define EBFONT 59           /* 错误的字体文件格式 Bad font file format */
71*0e2c2e8bS裕依 #define ENOSTR 60           /* 不是STREAM Not a STREAM */
72*0e2c2e8bS裕依 #define ENODATA 61          /* 队列头没有可读取的消息 No message is available on the STREAM head read queue. */
73*0e2c2e8bS裕依 #define ETIME 62            /* 流式ioctl()超时 Stream ioctl() timeout */
74*0e2c2e8bS裕依 #define ENOSR 63            /* 没有STREAM资源  No STREAM resources. */
75*0e2c2e8bS裕依 #define ENONET 64           /* 机器不在网络上 Machine is not on the network */
76*0e2c2e8bS裕依 #define ENOPKG 65           /* 未安装软件包 Package not installed */
77*0e2c2e8bS裕依 #define EREMOTE 66          /* 远程对象 Object is remote */
78*0e2c2e8bS裕依 #define ENOLINK 67          /* 保留 Reserved. */
79*0e2c2e8bS裕依 #define EADV 68             /* 外设错误 Advertise error. */
80*0e2c2e8bS裕依 #define ESRMNT 69           /* 安装错误 Srmount error */
81*0e2c2e8bS裕依 #define ECOMM 70            /* 发送时发生通信错误 Communication error on send */
82*0e2c2e8bS裕依 #define EPROTO 71           /* 协议错误 Protocol error. */
83*0e2c2e8bS裕依 #define EMULTIHOP 72        /* 保留使用 Reserved. */
84*0e2c2e8bS裕依 #define EDOTDOT 73          /* RFS特定错误 RFS specific error */
85*0e2c2e8bS裕依 #define EBADMSG 74          /* 错误的消息 Bad message. */
86*0e2c2e8bS裕依 #define EOVERFLOW 75        /* 数值过大,产生溢出 Value too large to be stored in data type. */
87*0e2c2e8bS裕依 #define ENOTUNIQ 76         /* 名称在网络上不是唯一的 Name not unique on network */
88*0e2c2e8bS裕依 #define EBADFD 77           /* 处于不良状态的文件描述符 File descriptor in bad state */
89*0e2c2e8bS裕依 #define EREMCHG 78          /* 远程地址已更改 Remote address changed */
90*0e2c2e8bS裕依 #define ELIBACC 79          /* 无法访问所需的共享库 Can not access a needed shared library */
91*0e2c2e8bS裕依 #define ELIBBAD 80          /* 访问损坏的共享库 Accessing a corrupted shared library */
92*0e2c2e8bS裕依 #define ELIBSCN 81          /* a. out中的.lib部分已损坏 .lib section in a.out corrupted */
93*0e2c2e8bS裕依 #define ELIBMAX 82          /* 尝试链接太多共享库 Attempting to link in too many shared libraries */
94*0e2c2e8bS裕依 #define ELIBEXEC 83         /* 无法直接执行共享库 Cannot exec a shared library directly */
95*0e2c2e8bS裕依 #define EILSEQ 84           /* 不合法的字符序列 Illegal byte sequence. */
96*0e2c2e8bS裕依 #define ERESTART 85         /* 中断的系统调用应该重新启动 Interrupted system call should be restarted */
97*0e2c2e8bS裕依 #define ESTRPIPE 86         /* 流管道错误 Streams pipe error */
98*0e2c2e8bS裕依 #define EUSERS 87           /* 用户太多 Too many users */
99*0e2c2e8bS裕依 #define ENOTSOCK 88         /* 不是一个套接字 Not a socket. */
100*0e2c2e8bS裕依 #define EDESTADDRREQ 89     /* 需要目标地址 Destination address required. */
101*0e2c2e8bS裕依 #define EMSGSIZE 90         /* 消息过大 Message too large. */
102*0e2c2e8bS裕依 #define EPROTOTYPE 91       /* 对于套接字而言,错误的协议 Protocol wrong type for socket. */
103*0e2c2e8bS裕依 #define ENOPROTOOPT 92      /* 协议不可用 Protocol not available. */
104*0e2c2e8bS裕依 #define EPROTONOSUPPORT 93  /* 协议不被支持 Protocol not supported. */
105*0e2c2e8bS裕依 #define ESOCKTNOSUPPORT 94  /* 不支持套接字类型 Socket type not supported */
106*0e2c2e8bS裕依 #define EOPNOTSUPP 95       /* 套接字不支持该操作 Operation not supported on socket (may be the same value as [ENOTSUP]). */
107*0e2c2e8bS裕依 #define ENOTSUP EOPNOTSUPP  /* 不被支持 Not supported (may be the same value as [EOPNOTSUPP]). */
108*0e2c2e8bS裕依 #define EPFNOSUPPORT 96     /* 不支持协议系列 Protocol family not supported */
109*0e2c2e8bS裕依 #define EAFNOSUPPORT 97     /* 地址family不支持 Address family not supported. */
110*0e2c2e8bS裕依 #define EADDRINUSE 98       /* 地址正在被使用 Address in use. */
111*0e2c2e8bS裕依 #define EADDRNOTAVAIL 99   /* 地址不可用 Address  not available. */
112*0e2c2e8bS裕依 #define ENETDOWN 100        /* 网络已关闭 Network is down. */
113*0e2c2e8bS裕依 #define ENETUNREACH 101     /* 网络不可达 Network unreachable. */
114*0e2c2e8bS裕依 #define ENETRESET 102       /* 网络连接已断开 Connection aborted by network. */
115*0e2c2e8bS裕依 #define ECONNABORTED 103    /* 连接已断开 Connection aborted. */
116*0e2c2e8bS裕依 #define ECONNRESET 104      /* 连接被重置 Connection reset. */
117*0e2c2e8bS裕依 #define ENOBUFS 105         /* 缓冲区空间不足 No buffer space available. */
118*0e2c2e8bS裕依 #define EISCONN 106         /* 套接字已连接 Socket is connected. */
119*0e2c2e8bS裕依 #define ENOTCONN 107        /* 套接字未连接 The socket is not connected. */
120*0e2c2e8bS裕依 #define ESHUTDOWN 108       /* 传输端点关闭后无法发送 Cannot send after transport endpoint shutdown */
121*0e2c2e8bS裕依 #define ETOOMANYREFS 109    /* 引用太多:无法拼接 Too many references: cannot splice */
122*0e2c2e8bS裕依 #define ETIMEDOUT 110       /* 连接超时 Connection timed out. */
123*0e2c2e8bS裕依 #define ECONNREFUSED 111    /* 连接被拒绝 Connection refused. */
124*0e2c2e8bS裕依 #define EHOSTDOWN 112       /* 主机已关闭 Host is down */
125*0e2c2e8bS裕依 #define EHOSTUNREACH 113    /* 主机不可达 Host is unreachable. */
126*0e2c2e8bS裕依 #define EALREADY 114        /* 连接已经在处理 Connection already in progress. */
127*0e2c2e8bS裕依 #define EINPROGRESS 115     /* 操作正在处理 Operation in progress. */
128*0e2c2e8bS裕依 #define ESTALE 116          /* 保留 Reserved. */
129*0e2c2e8bS裕依 #define EUCLEAN 117         /* 结构需要清理 Structure needs cleaning */
130*0e2c2e8bS裕依 #define ENOTNAM 118         /* 不是XENIX命名类型文件 Not a XENIX named type file */
131*0e2c2e8bS裕依 #define ENAVAIL 119         /* 没有可用的XENIX信号量 No XENIX semaphores available */
132*0e2c2e8bS裕依 #define EISNAM 120          /* 是命名类型文件 Is a named type file */
133*0e2c2e8bS裕依 #define EREMOTEIO 121       /* 远程I/O错误 Remote I/O error */
134*0e2c2e8bS裕依 #define EDQUOT 122          /* 保留使用 Reserved */
135*0e2c2e8bS裕依 #define ENOMEDIUM 123       /* 没有找到媒介 No medium found */
136*0e2c2e8bS裕依 #define EMEDIUMTYPE 124     /* 介质类型错误 Wrong medium type */
137*0e2c2e8bS裕依 #define ECANCELED 125       /* 操作被取消 Operation canceled. */
138*0e2c2e8bS裕依 #define ENOKEY 126          /* 所需的密钥不可用 Required key not available */
139*0e2c2e8bS裕依 #define EKEYEXPIRED 127     /* 密钥已过期 Key has expired */
140*0e2c2e8bS裕依 #define EKEYREVOKED 128     /* 密钥已被撤销 Key has been revoked */
141*0e2c2e8bS裕依 #define EKEYREJECTED 129    /* 密钥被服务拒绝 Key has been revoked */
142*0e2c2e8bS裕依 #define EOWNERDEAD 130      /* 之前的拥有者挂了 Previous owner died. */
143*0e2c2e8bS裕依 #define ENOTRECOVERABLE 131 /* 状态不可恢复 State not recoverable. */
144*0e2c2e8bS裕依 #define ERFKILL 132         /* 由于射频终止,无法操作 Operation not possible due to RF-kill */
145*0e2c2e8bS裕依 #define EHWPOISON 132       /* 内存页面有硬件错误 Memory page has hardware error */
146