const std = @import("../std.zig"); const clock_t = std.c.clock_t; const pid_t = std.c.pid_t; const pthread_t = std.c.pthread_t; const sigval_t = std.c.sigval_t; const uid_t = std.c.uid_t; pub const lwpid_t = i32; pub extern "c" fn _lwp_self() lwpid_t; pub extern "c" fn pthread_setname_np(thread: pthread_t, name: [*:0]const u8, arg: ?*anyopaque) c_int; pub const TCIFLUSH = 1; pub const TCOFLUSH = 2; pub const TCIOFLUSH = 3; pub const TCOOFF = 1; pub const TCOON = 2; pub const TCIOFF = 3; pub const TCION = 4; pub const _ksiginfo = extern struct { signo: i32, code: i32, errno: i32, // 64bit architectures insert 4bytes of padding here, this is done by // correctly aligning the reason field reason: extern union { rt: extern struct { pid: pid_t, uid: uid_t, value: sigval_t, }, child: extern struct { pid: pid_t, uid: uid_t, status: i32, utime: clock_t, stime: clock_t, }, fault: extern struct { addr: *allowzero anyopaque, trap: i32, trap2: i32, trap3: i32, }, poll: extern struct { band: i32, fd: i32, }, syscall: extern struct { sysnum: i32, retval: [2]i32, @"error": i32, args: [8]u64, }, ptrace_state: extern struct { pe_report_event: i32, option: extern union { pe_other_pid: pid_t, pe_lwp: lwpid_t, }, }, } align(@sizeOf(usize)), }; pub const E = enum(u16) { /// No error occurred. SUCCESS = 0, PERM = 1, // Operation not permitted NOENT = 2, // No such file or directory SRCH = 3, // No such process INTR = 4, // Interrupted system call IO = 5, // Input/output error NXIO = 6, // Device not configured @"2BIG" = 7, // Argument list too long NOEXEC = 8, // Exec format error BADF = 9, // Bad file descriptor CHILD = 10, // No child processes DEADLK = 11, // Resource deadlock avoided // 11 was AGAIN NOMEM = 12, // Cannot allocate memory ACCES = 13, // Permission denied FAULT = 14, // Bad address NOTBLK = 15, // Block device required BUSY = 16, // Device busy EXIST = 17, // File exists XDEV = 18, // Cross-device link NODEV = 19, // Operation not supported by device NOTDIR = 20, // Not a directory ISDIR = 21, // Is a directory INVAL = 22, // Invalid argument NFILE = 23, // Too many open files in system MFILE = 24, // Too many open files NOTTY = 25, // Inappropriate ioctl for device TXTBSY = 26, // Text file busy FBIG = 27, // File too large NOSPC = 28, // No space left on device SPIPE = 29, // Illegal seek ROFS = 30, // Read-only file system MLINK = 31, // Too many links PIPE = 32, // Broken pipe // math software DOM = 33, // Numerical argument out of domain RANGE = 34, // Result too large or too small // non-blocking and interrupt i/o // also: WOULDBLOCK: operation would block AGAIN = 35, // Resource temporarily unavailable INPROGRESS = 36, // Operation now in progress ALREADY = 37, // Operation already in progress // ipc/network software -- argument errors NOTSOCK = 38, // Socket operation on non-socket DESTADDRREQ = 39, // Destination address required MSGSIZE = 40, // Message too long PROTOTYPE = 41, // Protocol wrong type for socket NOPROTOOPT = 42, // Protocol option not available PROTONOSUPPORT = 43, // Protocol not supported SOCKTNOSUPPORT = 44, // Socket type not supported OPNOTSUPP = 45, // Operation not supported PFNOSUPPORT = 46, // Protocol family not supported AFNOSUPPORT = 47, // Address family not supported by protocol family ADDRINUSE = 48, // Address already in use ADDRNOTAVAIL = 49, // Can't assign requested address // ipc/network software -- operational errors NETDOWN = 50, // Network is down NETUNREACH = 51, // Network is unreachable NETRESET = 52, // Network dropped connection on reset CONNABORTED = 53, // Software caused connection abort CONNRESET = 54, // Connection reset by peer NOBUFS = 55, // No buffer space available ISCONN = 56, // Socket is already connected NOTCONN = 57, // Socket is not connected SHUTDOWN = 58, // Can't send after socket shutdown TOOMANYREFS = 59, // Too many references: can't splice TIMEDOUT = 60, // Operation timed out CONNREFUSED = 61, // Connection refused LOOP = 62, // Too many levels of symbolic links NAMETOOLONG = 63, // File name too long // should be rearranged HOSTDOWN = 64, // Host is down HOSTUNREACH = 65, // No route to host NOTEMPTY = 66, // Directory not empty // quotas & mush PROCLIM = 67, // Too many processes USERS = 68, // Too many users DQUOT = 69, // Disc quota exceeded // Network File System STALE = 70, // Stale NFS file handle REMOTE = 71, // Too many levels of remote in path BADRPC = 72, // RPC struct is bad RPCMISMATCH = 73, // RPC version wrong PROGUNAVAIL = 74, // RPC prog. not avail PROGMISMATCH = 75, // Program version wrong PROCUNAVAIL = 76, // Bad procedure for program NOLCK = 77, // No locks available NOSYS = 78, // Function not implemented FTYPE = 79, // Inappropriate file type or format AUTH = 80, // Authentication error NEEDAUTH = 81, // Need authenticator // SystemV IPC IDRM = 82, // Identifier removed NOMSG = 83, // No message of desired type OVERFLOW = 84, // Value too large to be stored in data type // Wide/multibyte-character handling, ISO/IEC 9899/AMD1:1995 ILSEQ = 85, // Illegal byte sequence // From IEEE Std 1003.1-2001 // Base, Realtime, Threads or Thread Priority Scheduling option errors NOTSUP = 86, // Not supported // Realtime option errors CANCELED = 87, // Operation canceled // Realtime, XSI STREAMS option errors BADMSG = 88, // Bad or Corrupt message // XSI STREAMS option errors NODATA = 89, // No message available NOSR = 90, // No STREAM resources NOSTR = 91, // Not a STREAM TIME = 92, // STREAM ioctl timeout // File system extended attribute errors NOATTR = 93, // Attribute not found // Realtime, XSI STREAMS option errors MULTIHOP = 94, // Multihop attempted NOLINK = 95, // Link has been severed PROTO = 96, // Protocol error _, };