wasm-posix-host
    Preparing search index...

    Interface KernelCallbacks

    interface KernelCallbacks {
        getKmsCanvas?: (
            crtcId: number,
        ) => HTMLCanvasElement | OffscreenCanvas | undefined;
        getProcessMemory?: (pid: number) => Memory | undefined;
        markKmsCanvasGlOwned?: (crtcId: number) => void;
        onAlarm?: (seconds: number) => number;
        onClone?: (
            fnPtr: number,
            arg: number,
            stackPtr: number,
            tlsPtr: number,
            ctidPtr: number,
        ) => number;
        onExec?: (path: string) => number;
        onFork?: (forkSab: SharedArrayBuffer) => void;
        onKill?: (pid: number, signal: number) => number;
        onNetListen?: (
            fd: number,
            port: number,
            addr: [number, number, number, number],
        ) => number;
        onPosixTimer?: (
            timerId: number,
            signo: number,
            valueMs: number,
            intervalMs: number,
        ) => number;
        onStderr?: (data: Uint8Array) => void;
        onStdin?: (maxLen: number) => Uint8Array<ArrayBufferLike> | null;
        onStdout?: (data: Uint8Array) => void;
        onUdpBind?: (
            handle: number,
            addr: [number, number, number, number],
            port: number,
        ) => number;
        onUdpUnbind?: (handle: number) => number;
        onWaitpid?: (targetPid: number, options: number) => void;
    }
    Index

    Properties

    getKmsCanvas?: (
        crtcId: number,
    ) => HTMLCanvasElement | OffscreenCanvas | undefined

    Resolve the KMS scanout canvas for crtcId, if one is registered. Used by host_gl_create_context to auto-attach the canvas to the DRM-master pid's GL binding so user programs that drive the modeset stack (drmModeSetCrtc + eglCreateContext) don't have to call gl.attachCanvas separately. Returning undefined keeps the legacy "embedder must call attachCanvas manually" path alive.

    getProcessMemory?: (pid: number) => Memory | undefined

    Resolve the wasm Memory for pid. The GL bridge reads cmdbuf bytes directly out of the process's Memory SAB on host_gl_submit and host_gl_query, so the embedder must thread its per-pid memory map through this callback. Returning undefined is interpreted as "the process is gone" and turns the GL call into a silent no-op.

    markKmsCanvasGlOwned?: (crtcId: number) => void

    Notify the embedder that GL has claimed the canvas for crtcId. The KMS vblank pump uses this to skip the CPU putImageData blit for canvases now painted directly by WebGL2. Idempotent.

    onAlarm?: (seconds: number) => number
    onClone?: (
        fnPtr: number,
        arg: number,
        stackPtr: number,
        tlsPtr: number,
        ctidPtr: number,
    ) => number
    onExec?: (path: string) => number
    onFork?: (forkSab: SharedArrayBuffer) => void
    onKill?: (pid: number, signal: number) => number
    onNetListen?: (
        fd: number,
        port: number,
        addr: [number, number, number, number],
    ) => number
    onPosixTimer?: (
        timerId: number,
        signo: number,
        valueMs: number,
        intervalMs: number,
    ) => number
    onStderr?: (data: Uint8Array) => void
    onStdin?: (maxLen: number) => Uint8Array<ArrayBufferLike> | null

    Read up to maxLen bytes from stdin. Return a Uint8Array with available data, or empty/null for EOF.

    onStdout?: (data: Uint8Array) => void
    onUdpBind?: (
        handle: number,
        addr: [number, number, number, number],
        port: number,
    ) => number
    onUdpUnbind?: (handle: number) => number
    onWaitpid?: (targetPid: number, options: number) => void