mirror of https://github.com/containers/podman.git
292 lines
8.7 KiB
Go
292 lines
8.7 KiB
Go
// Copyright 2009 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package linux
|
|
|
|
import "fmt"
|
|
|
|
// Errno is a Linux error number on every GOOS.
|
|
type Errno uintptr
|
|
|
|
func (e Errno) Error() string {
|
|
if 0 <= int(e) && int(e) < len(errorTable) {
|
|
s := errorTable[e]
|
|
if s != "" {
|
|
return s
|
|
}
|
|
}
|
|
return fmt.Sprintf("errno %d", int(e))
|
|
}
|
|
|
|
// numbers defined on Linux/amd64.
|
|
const (
|
|
E2BIG = Errno(0x7)
|
|
EACCES = Errno(0xd)
|
|
EADDRINUSE = Errno(0x62)
|
|
EADDRNOTAVAIL = Errno(0x63)
|
|
EADV = Errno(0x44)
|
|
EAFNOSUPPORT = Errno(0x61)
|
|
EAGAIN = Errno(0xb)
|
|
EALREADY = Errno(0x72)
|
|
EBADE = Errno(0x34)
|
|
EBADF = Errno(0x9)
|
|
EBADFD = Errno(0x4d)
|
|
EBADMSG = Errno(0x4a)
|
|
EBADR = Errno(0x35)
|
|
EBADRQC = Errno(0x38)
|
|
EBADSLT = Errno(0x39)
|
|
EBFONT = Errno(0x3b)
|
|
EBUSY = Errno(0x10)
|
|
ECANCELED = Errno(0x7d)
|
|
ECHILD = Errno(0xa)
|
|
ECHRNG = Errno(0x2c)
|
|
ECOMM = Errno(0x46)
|
|
ECONNABORTED = Errno(0x67)
|
|
ECONNREFUSED = Errno(0x6f)
|
|
ECONNRESET = Errno(0x68)
|
|
EDEADLK = Errno(0x23)
|
|
EDEADLOCK = Errno(0x23)
|
|
EDESTADDRREQ = Errno(0x59)
|
|
EDOM = Errno(0x21)
|
|
EDOTDOT = Errno(0x49)
|
|
EDQUOT = Errno(0x7a)
|
|
EEXIST = Errno(0x11)
|
|
EFAULT = Errno(0xe)
|
|
EFBIG = Errno(0x1b)
|
|
EHOSTDOWN = Errno(0x70)
|
|
EHOSTUNREACH = Errno(0x71)
|
|
EHWPOISON = Errno(0x85)
|
|
EIDRM = Errno(0x2b)
|
|
EILSEQ = Errno(0x54)
|
|
EINPROGRESS = Errno(0x73)
|
|
EINTR = Errno(0x4)
|
|
EINVAL = Errno(0x16)
|
|
EIO = Errno(0x5)
|
|
EISCONN = Errno(0x6a)
|
|
EISDIR = Errno(0x15)
|
|
EISNAM = Errno(0x78)
|
|
EKEYEXPIRED = Errno(0x7f)
|
|
EKEYREJECTED = Errno(0x81)
|
|
EKEYREVOKED = Errno(0x80)
|
|
EL2HLT = Errno(0x33)
|
|
EL2NSYNC = Errno(0x2d)
|
|
EL3HLT = Errno(0x2e)
|
|
EL3RST = Errno(0x2f)
|
|
ELIBACC = Errno(0x4f)
|
|
ELIBBAD = Errno(0x50)
|
|
ELIBEXEC = Errno(0x53)
|
|
ELIBMAX = Errno(0x52)
|
|
ELIBSCN = Errno(0x51)
|
|
ELNRNG = Errno(0x30)
|
|
ELOOP = Errno(0x28)
|
|
EMEDIUMTYPE = Errno(0x7c)
|
|
EMFILE = Errno(0x18)
|
|
EMLINK = Errno(0x1f)
|
|
EMSGSIZE = Errno(0x5a)
|
|
EMULTIHOP = Errno(0x48)
|
|
ENAMETOOLONG = Errno(0x24)
|
|
ENAVAIL = Errno(0x77)
|
|
ENETDOWN = Errno(0x64)
|
|
ENETRESET = Errno(0x66)
|
|
ENETUNREACH = Errno(0x65)
|
|
ENFILE = Errno(0x17)
|
|
ENOANO = Errno(0x37)
|
|
ENOBUFS = Errno(0x69)
|
|
ENOCSI = Errno(0x32)
|
|
ENODATA = Errno(0x3d)
|
|
ENODEV = Errno(0x13)
|
|
ENOENT = Errno(0x2)
|
|
ENOEXEC = Errno(0x8)
|
|
ENOKEY = Errno(0x7e)
|
|
ENOLCK = Errno(0x25)
|
|
ENOLINK = Errno(0x43)
|
|
ENOMEDIUM = Errno(0x7b)
|
|
ENOMEM = Errno(0xc)
|
|
ENOMSG = Errno(0x2a)
|
|
ENONET = Errno(0x40)
|
|
ENOPKG = Errno(0x41)
|
|
ENOPROTOOPT = Errno(0x5c)
|
|
ENOSPC = Errno(0x1c)
|
|
ENOSR = Errno(0x3f)
|
|
ENOSTR = Errno(0x3c)
|
|
ENOSYS = Errno(0x26)
|
|
ENOTBLK = Errno(0xf)
|
|
ENOTCONN = Errno(0x6b)
|
|
ENOTDIR = Errno(0x14)
|
|
ENOTEMPTY = Errno(0x27)
|
|
ENOTNAM = Errno(0x76)
|
|
ENOTRECOVERABLE = Errno(0x83)
|
|
ENOTSOCK = Errno(0x58)
|
|
ENOTSUP = Errno(0x5f)
|
|
ENOTTY = Errno(0x19)
|
|
ENOTUNIQ = Errno(0x4c)
|
|
ENXIO = Errno(0x6)
|
|
EOPNOTSUPP = Errno(0x5f)
|
|
EOVERFLOW = Errno(0x4b)
|
|
EOWNERDEAD = Errno(0x82)
|
|
EPERM = Errno(0x1)
|
|
EPFNOSUPPORT = Errno(0x60)
|
|
EPIPE = Errno(0x20)
|
|
EPROTO = Errno(0x47)
|
|
EPROTONOSUPPORT = Errno(0x5d)
|
|
EPROTOTYPE = Errno(0x5b)
|
|
ERANGE = Errno(0x22)
|
|
EREMCHG = Errno(0x4e)
|
|
EREMOTE = Errno(0x42)
|
|
EREMOTEIO = Errno(0x79)
|
|
ERESTART = Errno(0x55)
|
|
ERFKILL = Errno(0x84)
|
|
EROFS = Errno(0x1e)
|
|
ESHUTDOWN = Errno(0x6c)
|
|
ESOCKTNOSUPPORT = Errno(0x5e)
|
|
ESPIPE = Errno(0x1d)
|
|
ESRCH = Errno(0x3)
|
|
ESRMNT = Errno(0x45)
|
|
ESTALE = Errno(0x74)
|
|
ESTRPIPE = Errno(0x56)
|
|
ETIME = Errno(0x3e)
|
|
ETIMEDOUT = Errno(0x6e)
|
|
ETOOMANYREFS = Errno(0x6d)
|
|
ETXTBSY = Errno(0x1a)
|
|
EUCLEAN = Errno(0x75)
|
|
EUNATCH = Errno(0x31)
|
|
EUSERS = Errno(0x57)
|
|
EWOULDBLOCK = Errno(0xb)
|
|
EXDEV = Errno(0x12)
|
|
EXFULL = Errno(0x36)
|
|
)
|
|
|
|
var errorTable = [...]string{
|
|
1: "operation not permitted",
|
|
2: "no such file or directory",
|
|
3: "no such process",
|
|
4: "interrupted system call",
|
|
5: "input/output error",
|
|
6: "no such device or address",
|
|
7: "argument list too long",
|
|
8: "exec format error",
|
|
9: "bad file descriptor",
|
|
10: "no child processes",
|
|
11: "resource temporarily unavailable",
|
|
12: "cannot allocate memory",
|
|
13: "permission denied",
|
|
14: "bad address",
|
|
15: "block device required",
|
|
16: "device or resource busy",
|
|
17: "file exists",
|
|
18: "invalid cross-device link",
|
|
19: "no such device",
|
|
20: "not a directory",
|
|
21: "is a directory",
|
|
22: "invalid argument",
|
|
23: "too many open files in system",
|
|
24: "too many open files",
|
|
25: "inappropriate ioctl for device",
|
|
26: "text file busy",
|
|
27: "file too large",
|
|
28: "no space left on device",
|
|
29: "illegal seek",
|
|
30: "read-only file system",
|
|
31: "too many links",
|
|
32: "broken pipe",
|
|
33: "numerical argument out of domain",
|
|
34: "numerical result out of range",
|
|
35: "resource deadlock avoided",
|
|
36: "file name too long",
|
|
37: "no locks available",
|
|
38: "function not implemented",
|
|
39: "directory not empty",
|
|
40: "too many levels of symbolic links",
|
|
42: "no message of desired type",
|
|
43: "identifier removed",
|
|
44: "channel number out of range",
|
|
45: "level 2 not synchronized",
|
|
46: "level 3 halted",
|
|
47: "level 3 reset",
|
|
48: "link number out of range",
|
|
49: "protocol driver not attached",
|
|
50: "no CSI structure available",
|
|
51: "level 2 halted",
|
|
52: "invalid exchange",
|
|
53: "invalid request descriptor",
|
|
54: "exchange full",
|
|
55: "no anode",
|
|
56: "invalid request code",
|
|
57: "invalid slot",
|
|
59: "bad font file format",
|
|
60: "device not a stream",
|
|
61: "no data available",
|
|
62: "timer expired",
|
|
63: "out of streams resources",
|
|
64: "machine is not on the network",
|
|
65: "package not installed",
|
|
66: "object is remote",
|
|
67: "link has been severed",
|
|
68: "advertise error",
|
|
69: "srmount error",
|
|
70: "communication error on send",
|
|
71: "protocol error",
|
|
72: "multihop attempted",
|
|
73: "RFS specific error",
|
|
74: "bad message",
|
|
75: "value too large for defined data type",
|
|
76: "name not unique on network",
|
|
77: "file descriptor in bad state",
|
|
78: "remote address changed",
|
|
79: "can not access a needed shared library",
|
|
80: "accessing a corrupted shared library",
|
|
81: ".lib section in a.out corrupted",
|
|
82: "attempting to link in too many shared libraries",
|
|
83: "cannot exec a shared library directly",
|
|
84: "invalid or incomplete multibyte or wide character",
|
|
85: "interrupted system call should be restarted",
|
|
86: "streams pipe error",
|
|
87: "too many users",
|
|
88: "socket operation on non-socket",
|
|
89: "destination address required",
|
|
90: "message too long",
|
|
91: "protocol wrong type for socket",
|
|
92: "protocol not available",
|
|
93: "protocol not supported",
|
|
94: "socket type not supported",
|
|
95: "operation not supported",
|
|
96: "protocol family not supported",
|
|
97: "address family not supported by protocol",
|
|
98: "address already in use",
|
|
99: "cannot assign requested address",
|
|
100: "network is down",
|
|
101: "network is unreachable",
|
|
102: "network dropped connection on reset",
|
|
103: "software caused connection abort",
|
|
104: "connection reset by peer",
|
|
105: "no buffer space available",
|
|
106: "transport endpoint is already connected",
|
|
107: "transport endpoint is not connected",
|
|
108: "cannot send after transport endpoint shutdown",
|
|
109: "too many references: cannot splice",
|
|
110: "connection timed out",
|
|
111: "connection refused",
|
|
112: "host is down",
|
|
113: "no route to host",
|
|
114: "operation already in progress",
|
|
115: "operation now in progress",
|
|
116: "stale NFS file handle",
|
|
117: "structure needs cleaning",
|
|
118: "not a XENIX named type file",
|
|
119: "no XENIX semaphores available",
|
|
120: "is a named type file",
|
|
121: "remote I/O error",
|
|
122: "disk quota exceeded",
|
|
123: "no medium found",
|
|
124: "wrong medium type",
|
|
125: "operation canceled",
|
|
126: "required key not available",
|
|
127: "key has expired",
|
|
128: "key has been revoked",
|
|
129: "key was rejected by service",
|
|
130: "owner died",
|
|
131: "state not recoverable",
|
|
132: "operation not possible due to RF-kill",
|
|
}
|