mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
205 lines
6.6 KiB
Zig
205 lines
6.6 KiB
Zig
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 extern "c" fn ptrace(request: c_int, pid: pid_t, addr: ?*anyopaque, data: c_int) c_int;
|
|
|
|
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
|
|
|
|
_,
|
|
};
|