POSIX declarations used by Linux timing, descriptor, process, pipe, and context-switching helpers.
EAGAIN, EINPROGRESS, EINTR, and EWOULDBLOCK: common error constants.F_SETFD and FD_CLOEXEC: file-descriptor control constants.SIGKILL and WNOHANG: signal and wait constants.O_NONBLOCK: nonblocking file-descriptor flag.CLOCK_MONOTONIC and CLOCK_BOOTTIME: clock identifiers.WEXITSTATUS and WIFEXITED: wait-status decoding helpers.long, time_t, and clockid_t: scalar aliases used by the remaining declarations.stack_t, sigset_t, timespec, and itimerspec: stack, signal-mask, and timer schemas.ucontext_t and its dependent internal schemas describe platform context-switching state."linux/posix" use
"control" use
{} () {} [
EINTR printStack _:;
WNOHANG printStack _:;
CLOCK_MONOTONIC printStack _:;
timespec fieldCount printStack _:;
itimerspec 1 fieldName printStack _:;
] "main" exportFunction
4
1
1
2
"it_value"
Int32 values.WIFEXITED and WEXITSTATUS decode the raw status value returned by waitpid.pipe fills one {in out} descriptor pair.fcntl is variadic because some commands use only fildes and cmd, while others require an additional argument.makecontext is variadic because argc describes additional arguments passed to the target function after the fixed parameters.makecontext.func is one raw function address declared as Natx.ucontext_t and its internal dependent schemas select one 64-bit or 32-bit layout according to pointer-size storage while keeping the visible names stable.execvp.file and execvp.argv are raw addresses declared as Natx.read.buffer and write.buffer are raw buffer addresses, and size is the requested byte count.pipe.filedes is caller-owned descriptor-pair storage passed by reference and filled by the call.fork creates one child execution branch.execvp replaces the current process image with one new executable image.waitpid observes child completion and stores one raw wait status.kill sends one signal to one process identifier.clock_gettime, close, fcntl, pipe, getcontext, kill, makecontext, and swapcontext return Int32-based status results.read and write return Intx transfer counts.fork and waitpid return process-identifier or wait-result values.pipe remain caller-owned and are released with close when they are no longer needed.read and write do not transfer descriptor or buffer ownership.getcontext, makecontext, and swapcontext operate on caller-owned ucontext_t storage.clock_gettime: obtains clock time in one timespec.close, fcntl, pipe, read, and write: descriptor and pipe functions.fork, execvp, kill, and waitpid: process lifecycle functions.getcontext, makecontext, and swapcontext: user-context switching helpers.Printing imported names during compilation shows exact imported signatures for representative declarations.
"linux/posix" use
"control" use
{} Int32 {} [
@clock_gettime printStack _:;
@fcntl printStack _:;
@pipe printStack _:;
@waitpid printStack _:;
@write printStack _:;
0
] "main" exportFunction
{clk_id: Int32; tp: {tv_sec: Intx; tv_nsec: Intx;} Ref;} Int32 {convention: "";} codeRef
{fildes: Int32; cmd: Int32;} Int32 {convention: ""; variadic: TRUE;} codeRef
{filedes: {in: Int32; out: Int32;} Ref;} Int32 {convention: "";} codeRef
{pid: Int32; wstatus: Int32 Ref; options: Int32;} Int32 {convention: "";} codeRef
{fd: Int32; buf: Natx; count: Natx;} Intx {convention: "";} codeRef
"linux/posix" use
"String" use
"control" use
{} Int32 {} [
fds: {in: Int32; out: Int32;};
pipeResult: @fds pipe;
bytesWritten: 1nx "A" storageAddress fds.out new write;
byte: 0n8;
bytesRead: 1nx @byte storageAddress fds.in new read;
closeIn: fds.in new close;
closeOut: fds.out new close;
("pipe=" pipeResult LF
"written=" bytesWritten LF
"read=" bytesRead LF
"byte=" byte LF
"closeIn=" closeIn LF
"closeOut=" closeOut LF) printList
0
] "main" exportFunction
pipe=0
written=1
read=1
byte=65
closeIn=0
closeOut=0