wasm-posix-host
    Preparing search index...

    Class WasmPosixKernel

    Index

    Constructors

    Properties

    framebuffers: FramebufferRegistry = ...

    Live /dev/fb0 mappings the kernel has reported via host_bind_framebuffer. Renderers (canvas in browser, no-op in Node) read this on each frame.

    isThreadWorker: boolean = false
    pid: number = 0

    PID for this kernel instance (set by the worker)

    Methods

    • Currently-configured /dev/dsp channel count (1 = mono, 2 = stereo). 0 if the kernel isn't instantiated yet.

      Returns number

    • Bytes currently buffered in the /dev/dsp ring. Lets the host estimate how much audio is queued ahead of the AudioContext clock.

      Returns number

    • Currently-configured /dev/dsp sample rate (Hz). 0 if the kernel isn't instantiated yet.

      Returns number

    • Drain up to out.byteLength bytes of PCM audio buffered in /dev/dsp into the host-provided buffer. Returns the number of bytes copied. Reads stop at whole-frame boundaries so the host never receives a torn L/R pair.

      Returns 0 if the kernel hasn't been instantiated, no scratch buffer can be allocated, or the ring is empty — the caller doesn't have to special-case any of those.

      Parameters

      • out: Uint8Array

      Returns number

    • Duplicate fd with flags. Unlike dup2, returns error if oldfd == newfd.

      Parameters

      • oldfd: number
      • newfd: number
      • flags: number

      Returns number

    • Change file mode via fd.

      Parameters

      • fd: number
      • mode: number

      Returns void

    • Change file owner/group via fd.

      Parameters

      • fd: number
      • uid: number
      • gid: number

      Returns void

    • Synchronize file data to storage (alias for fsync in Wasm).

      Parameters

      • fd: number

      Returns void

    • Synchronize file state to storage.

      Parameters

      • fd: number

      Returns void

    • Truncate file to specified length.

      Parameters

      • fd: number
      • length: number

      Returns void

    • Access the Wasm instance (e.g. to call exported functions).

      Returns Instance | null

    • Access the Wasm memory (e.g. for tests or advanced use).

      Returns Memory | null

    • Get process group ID.

      Returns number

    • Get resource usage. Returns 144-byte rusage struct.

      Parameters

      • who: number

      Returns Uint8Array

    • Returns all registered shared pipes (for transferring during exec).

      Returns Map<number, { end: "read" | "write"; pipe: SharedPipeBuffer }>

    • Get session ID.

      Parameters

      • pid: number

      Returns number

    • Get a socket option value.

      Parameters

      • fd: number
      • level: number
      • optname: number

      Returns number

    • Load and instantiate the kernel Wasm module.

      Parameters

      • wasmBytes: BufferSource

        The compiled kernel Wasm binary

      Returns Promise<void>

    • Like init(), but uses an existing shared WebAssembly.Memory instead of creating a new one. Used by thread workers that share the parent's memory.

      Parameters

      • wasmBytes: BufferSource
      • memory: Memory

      Returns Promise<void>

    • Push one PS/2 mouse packet into the kernel's /dev/input/mice queue. Silently dropped if the kernel module hasn't been instantiated yet — a canvas can fire mousemove before the program registers the device. dy is in PS/2 sense (positive-up); the caller must invert browser deltaY before calling.

      Parameters

      • dx: number
      • dy: number
      • buttons: number

      Returns void

    • Perform an ioctl operation. For TIOCGWINSZ (0x5413): returns 8-byte buffer (ws_row, ws_col, ws_xpixel, ws_ypixel as u16 LE) For TIOCSWINSZ (0x5414): pass 8-byte buffer to set window size

      Parameters

      • fd: number
      • request: number
      • Optionalbuf: Uint8Array<ArrayBufferLike>

      Returns Uint8Array

    • Merge additional callbacks into the existing set. Existing callbacks not specified in the argument are preserved.

      Parameters

      Returns void

    • Create pipe with flags (O_NONBLOCK, O_CLOEXEC). Returns [readFd, writeFd].

      Parameters

      • flags: number

      Returns [number, number]

    • Poll file descriptors for I/O readiness. Returns array of {fd, events, revents} with revents filled in.

      Parameters

      • fds: { events: number; fd: number }[]
      • timeout: number

      Returns { events: number; fd: number; revents: number }[]

    • Receive data from a connected socket. Returns the received data.

      Parameters

      • fd: number
      • maxLen: number
      • flags: number = 0

      Returns Uint8Array

    • Parameters

      • sab: SharedArrayBuffer

      Returns void

    • Parameters

      • sab: SharedArrayBuffer

      Returns void

    • Parameters

      • handle: number
      • sab: SharedArrayBuffer
      • end: "read" | "write"

      Returns void

    • Parameters

      • sab: SharedArrayBuffer

      Returns void

    • Parameters

      • sab: SharedArrayBuffer

      Returns void

    • select() — synchronous I/O multiplexing. Takes fd arrays for read/write/except monitoring, returns arrays of ready fds.

      Parameters

      • nfds: number
      • readfds: number[] | null
      • writefds: number[] | null
      • exceptfds: number[] | null

      Returns { exceptReady: number[]; readReady: number[]; writeReady: number[] }

    • Send data on a connected socket. Returns bytes sent.

      Parameters

      • fd: number
      • data: Uint8Array
      • flags: number = 0

      Returns number

    • Set effective group ID.

      Parameters

      • egid: number

      Returns void

    • Set effective user ID.

      Parameters

      • euid: number

      Returns void

    • Set real and effective group ID.

      Parameters

      • gid: number

      Returns void

    • Set process group ID.

      Parameters

      • pid: number
      • pgid: number

      Returns void

    • Set the user program's indirect function table so signal handlers registered by the program can be called from the kernel.

      Parameters

      • table: Table

      Returns void

    • Create new session.

      Returns number

    • Set a socket option value.

      Parameters

      • fd: number
      • level: number
      • optname: number
      • value: number

      Returns void

    • Set real and effective user ID.

      Parameters

      • uid: number

      Returns void

    • Shut down part of a full-duplex socket connection.

      Parameters

      • fd: number
      • how: number

      Returns void

    • Set signal handler (legacy API). Returns previous handler value. handler: 0=SIG_DFL, 1=SIG_IGN, or function pointer index

      Parameters

      • signum: number
      • handler: number

      Returns number

    • Create a socket. Returns the fd or throws on error.

      Parameters

      • domain: number
      • type: number
      • protocol: number

      Returns number

    • Create a connected pair of Unix domain stream sockets. Returns [fd0, fd1].

      Parameters

      • domain: number
      • type: number
      • protocol: number

      Returns [number, number]

    • Get configurable system variable value.

      Parameters

      • name: number

      Returns number

    • Get terminal attributes (48 bytes: c_iflag, c_oflag, c_cflag, c_lflag + c_cc).

      Parameters

      • fd: number

      Returns Uint8Array

    • Set terminal attributes. action: 0=TCSANOW, 1=TCSADRAIN, 2=TCSAFLUSH

      Parameters

      • fd: number
      • action: number
      • attrs: Uint8Array

      Returns void

    • Parameters

      • value: number | bigint

      Returns KernelPointer

    • Truncate a file by path to specified length.

      Parameters

      • pathPtr: number
      • pathLen: number
      • length: number

      Returns void

    • Set file creation mask. Returns previous mask.

      Parameters

      • mask: number

      Returns number

    • Get system identification. Returns object with sysname, nodename, release, version, machine.

      Returns {
          machine: string;
          nodename: string;
          release: string;
          sysname: string;
          version: string;
      }

    • Parameters

      • handle: number

      Returns void