// mkerrors.sh
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT

// godefs -gsyscall _errors.c

// MACHINE GENERATED - DO NOT EDIT.

package syscall

// Constants
const (
	EMULTIHOP	= 0x5f;
	EAFNOSUPPORT	= 0x2f;
	EACCES		= 0xd;
	EDESTADDRREQ	= 0x27;
	EILSEQ		= 0x5c;
	ESPIPE		= 0x1d;
	EMLINK		= 0x1f;
	EPROGUNAVAIL	= 0x4a;
	ENOTTY		= 0x19;
	EBADF		= 0x9;
	ERANGE		= 0x22;
	ECANCELED	= 0x59;
	ETXTBSY		= 0x1a;
	ENOMEM		= 0xc;
	EINPROGRESS	= 0x24;
	ENOTEMPTY	= 0x42;
	ENOTBLK		= 0xf;
	EPROTOTYPE	= 0x29;
	ENOMSG		= 0x5b;
	ERPCMISMATCH	= 0x49;
	ENOTDIR		= 0x14;
	EALREADY	= 0x25;
	ETIMEDOUT	= 0x3c;
	ENEEDAUTH	= 0x51;
	ENODATA		= 0x60;
	EINTR		= 0x4;
	ENOLINK		= 0x61;
	EPERM		= 0x1;
	ENETDOWN	= 0x32;
	ESTALE		= 0x46;
	ENOTSOCK	= 0x26;
	ENOSR		= 0x62;
	EAUTH		= 0x50;
	ECHILD		= 0xa;
	EPIPE		= 0x20;
	ENOATTR		= 0x5d;
	EBADMSG		= 0x5e;
	EREMOTE		= 0x47;
	ETOOMANYREFS	= 0x3b;
	EPFNOSUPPORT	= 0x2e;
	EPROCUNAVAIL	= 0x4c;
	EADDRINUSE	= 0x30;
	ENETRESET	= 0x34;
	EISDIR		= 0x15;
	EIDRM		= 0x5a;
	EDEVERR		= 0x53;
	EINVAL		= 0x16;
	ESHUTDOWN	= 0x3a;
	EPWROFF		= 0x52;
	EOVERFLOW	= 0x54;
	EBUSY		= 0x10;
	EPROCLIM	= 0x43;
	EPROTO		= 0x64;
	ENODEV		= 0x13;
	EROFS		= 0x1e;
	E2BIG		= 0x7;
	EDEADLK		= 0xb;
	ECONNRESET	= 0x36;
	EBADMACHO	= 0x58;
	ENXIO		= 0x6;
	EBADRPC		= 0x48;
	ENAMETOOLONG	= 0x3f;
	ELAST		= 0x67;
	ESOCKTNOSUPPORT	= 0x2c;
	EADDRNOTAVAIL	= 0x31;
	ETIME		= 0x65;
	EPROTONOSUPPORT	= 0x2b;
	EIO		= 0x5;
	ENETUNREACH	= 0x33;
	EXDEV		= 0x12;
	EDQUOT		= 0x45;
	ENOSPC		= 0x1c;
	ENOEXEC		= 0x8;
	EMSGSIZE	= 0x28;
	EFTYPE		= 0x4f;
	EDOM		= 0x21;
	ENOSTR		= 0x63;
	EFBIG		= 0x1b;
	ESRCH		= 0x3;
	EHOSTDOWN	= 0x40;
	ENOLCK		= 0x4d;
	ENFILE		= 0x17;
	ENOSYS		= 0x4e;
	EBADARCH	= 0x56;
	ENOTCONN	= 0x39;
	ENOTSUP		= 0x2d;
	ECONNABORTED	= 0x35;
	EISCONN		= 0x38;
	ESHLIBVERS	= 0x57;
	EUSERS		= 0x44;
	ENOPROTOOPT	= 0x2a;
	EMFILE		= 0x18;
	ELOOP		= 0x3e;
	ENOBUFS		= 0x37;
	EFAULT		= 0xe;
	EWOULDBLOCK	= 0x23;
	EBADEXEC	= 0x55;
	ENOPOLICY	= 0x67;
	ECONNREFUSED	= 0x3d;
	EAGAIN		= 0x23;
	EEXIST		= 0x11;
	EPROGMISMATCH	= 0x4b;
	ENOENT		= 0x2;
	EHOSTUNREACH	= 0x41;
	EOPNOTSUPP	= 0x66;
	SIGBUS		= 0xa;
	SIGTTIN		= 0x15;
	SIGPROF		= 0x1b;
	SIGFPE		= 0x8;
	SIGHUP		= 0x1;
	SIGTTOU		= 0x16;
	SIGUSR1		= 0x1e;
	SIGURG		= 0x10;
	SIGQUIT		= 0x3;
	SIGIO		= 0x17;
	SIGABRT		= 0x6;
	SIGINFO		= 0x1d;
	SIGUSR2		= 0x1f;
	SIGTRAP		= 0x5;
	SIGVTALRM	= 0x1a;
	SIGSEGV		= 0xb;
	SIGCONT		= 0x13;
	SIGPIPE		= 0xd;
	SIGXFSZ		= 0x19;
	SIGCHLD		= 0x14;
	SIGSYS		= 0xc;
	SIGSTOP		= 0x11;
	SIGALRM		= 0xe;
	SIGTSTP		= 0x12;
	SIGEMT		= 0x7;
	SIGKILL		= 0x9;
	SIGXCPU		= 0x18;
	SIGILL		= 0x4;
	SIGINT		= 0x2;
	SIGIOT		= 0x6;
	SIGTERM		= 0xf;
	SIGWINCH	= 0x1c;
)

// Types


// Error table
var errors = [...]string{
	95: "EMULTIHOP (Reserved)",
	47: "address family not supported by protocol family",
	13: "permission denied",
	39: "destination address required",
	92: "illegal byte sequence",
	29: "illegal seek",
	31: "too many links",
	74: "RPC prog. not avail",
	25: "inappropriate ioctl for device",
	9: "bad file descriptor",
	34: "result too large",
	89: "operation canceled",
	26: "text file busy",
	12: "cannot allocate memory",
	36: "operation now in progress",
	66: "directory not empty",
	15: "block device required",
	41: "protocol wrong type for socket",
	91: "no message of desired type",
	73: "RPC version wrong",
	20: "not a directory",
	37: "operation already in progress",
	60: "operation timed out",
	81: "need authenticator",
	96: "no message available on STREAM",
	4: "interrupted system call",
	97: "ENOLINK (Reserved)",
	1: "operation not permitted",
	50: "network is down",
	70: "stale NFS file handle",
	38: "socket operation on non-socket",
	98: "no STREAM resources",
	80: "authentication error",
	10: "no child processes",
	32: "broken pipe",
	93: "attribute not found",
	94: "bad message",
	71: "too many levels of remote in path",
	59: "too many references: can't splice",
	46: "protocol family not supported",
	76: "bad procedure for program",
	48: "address already in use",
	52: "network dropped connection on reset",
	21: "is a directory",
	90: "identifier removed",
	83: "device error",
	22: "invalid argument",
	58: "can't send after socket shutdown",
	82: "device power is off",
	84: "value too large to be stored in data type",
	16: "resource busy",
	67: "too many processes",
	100: "protocol error",
	19: "operation not supported by device",
	30: "read-only file system",
	7: "argument list too long",
	11: "resource deadlock avoided",
	54: "connection reset by peer",
	88: "malformed Mach-o file",
	6: "device not configured",
	72: "RPC struct is bad",
	63: "file name too long",
	103: "policy not found",
	44: "socket type not supported",
	49: "can't assign requested address",
	101: "STREAM ioctl timeout",
	43: "protocol not supported",
	5: "input/output error",
	51: "network is unreachable",
	18: "cross-device link",
	69: "disc quota exceeded",
	28: "no space left on device",
	8: "exec format error",
	40: "message too long",
	79: "inappropriate file type or format",
	33: "numerical argument out of domain",
	99: "not a STREAM",
	27: "file too large",
	3: "no such process",
	64: "host is down",
	77: "no locks available",
	23: "too many open files in system",
	78: "function not implemented",
	86: "bad CPU type in executable",
	57: "socket is not connected",
	45: "operation not supported",
	53: "software caused connection abort",
	56: "socket is already connected",
	87: "shared library version mismatch",
	68: "too many users",
	42: "protocol not available",
	24: "too many open files",
	62: "too many levels of symbolic links",
	55: "no buffer space available",
	14: "bad address",
	35: "resource temporarily unavailable",
	85: "bad executable (or shared library)",
	61: "connection refused",
	17: "file exists",
	75: "program version wrong",
	2: "no such file or directory",
	65: "no route to host",
	102: "operation not supported on socket",
}
