@ai-ecoverse/slicc-kernel 1.102.6 → 1.103.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/kernel-worker.js +1 -1
- package/dist/node-process-worker.js +1 -1
- package/dist/node.js +1 -1
- package/dist/process-worker.js +1 -1
- package/dist/types/body-idle.d.ts +3 -0
- package/dist/types/bytes.d.ts +1 -0
- package/dist/types/cdp/facade.d.ts +27 -0
- package/dist/types/cdp/hosts.d.ts +14 -0
- package/dist/types/cdp/port.d.ts +24 -0
- package/dist/types/cdp/types.d.ts +12 -0
- package/dist/types/cdp/websocket.d.ts +61 -0
- package/dist/types/client/attach.d.ts +132 -0
- package/dist/types/client/dial-stream.d.ts +23 -0
- package/dist/types/client/loopback-fetch.d.ts +5 -0
- package/dist/types/client/protocol.d.ts +153 -0
- package/dist/types/client/serve-client.d.ts +18 -0
- package/dist/types/clipboard-relay.d.ts +25 -0
- package/dist/types/commands.d.ts +38 -0
- package/dist/types/cron/clock.d.ts +13 -0
- package/dist/types/driver.d.ts +3 -0
- package/dist/types/facade/hosts.d.ts +12 -0
- package/dist/types/facade/port.d.ts +16 -0
- package/dist/types/facade/types.d.ts +23 -0
- package/dist/types/fs/access.d.ts +29 -0
- package/dist/types/fs/attest.d.ts +41 -0
- package/dist/types/fs/changes.d.ts +19 -0
- package/dist/types/fs/commands.d.ts +4 -0
- package/dist/types/fs/dac.d.ts +64 -0
- package/dist/types/fs/dev-removal.d.ts +9 -0
- package/dist/types/fs/fresh-modules.d.ts +9 -0
- package/dist/types/fs/integrity.d.ts +53 -0
- package/dist/types/fs/meta.d.ts +85 -0
- package/dist/types/fs/opfs.d.ts +141 -0
- package/dist/types/fs/owners.d.ts +17 -0
- package/dist/types/fs/pages.d.ts +41 -0
- package/dist/types/fs/path-map.d.ts +16 -0
- package/dist/types/fs/physical-path.d.ts +14 -0
- package/dist/types/fs/protect.d.ts +27 -0
- package/dist/types/fs/ranged.d.ts +73 -0
- package/dist/types/fs/remote.d.ts +45 -0
- package/dist/types/fs/types.d.ts +115 -0
- package/dist/types/fs/unlinked.d.ts +75 -0
- package/dist/types/fs/view.d.ts +1 -0
- package/dist/types/fs/walk.d.ts +12 -0
- package/dist/types/fs/watch.d.ts +23 -0
- package/dist/types/index.d.ts +159 -0
- package/dist/types/integrity-relay.d.ts +18 -0
- package/dist/types/kernel/children.d.ts +90 -0
- package/dist/types/kernel/clipboard.d.ts +49 -0
- package/dist/types/kernel/cpu-clock.d.ts +56 -0
- package/dist/types/kernel/cred.d.ts +17 -0
- package/dist/types/kernel/dgram.d.ts +56 -0
- package/dist/types/kernel/dial.d.ts +20 -0
- package/dist/types/kernel/epoll.d.ts +67 -0
- package/dist/types/kernel/eventfd.d.ts +19 -0
- package/dist/types/kernel/exec-ticket.d.ts +25 -0
- package/dist/types/kernel/fd-table.d.ts +107 -0
- package/dist/types/kernel/host-ops.d.ts +98 -0
- package/dist/types/kernel/host.d.ts +116 -0
- package/dist/types/kernel/jobs.d.ts +50 -0
- package/dist/types/kernel/locks.d.ts +40 -0
- package/dist/types/kernel/net/datagram-wire.d.ts +8 -0
- package/dist/types/kernel/net/http-syscalls.d.ts +58 -0
- package/dist/types/kernel/net/http1.d.ts +48 -0
- package/dist/types/kernel/net/loopback-names.d.ts +14 -0
- package/dist/types/kernel/net/loopback-transport.d.ts +13 -0
- package/dist/types/kernel/net/network.d.ts +29 -0
- package/dist/types/kernel/net/proxy-service.d.ts +70 -0
- package/dist/types/kernel/net/realm-ca.d.ts +28 -0
- package/dist/types/kernel/net/redirect-hops.d.ts +5 -0
- package/dist/types/kernel/net/remote-transport.d.ts +98 -0
- package/dist/types/kernel/net/resolver.d.ts +29 -0
- package/dist/types/kernel/net/routes.d.ts +15 -0
- package/dist/types/kernel/net/tls-engine.d.ts +46 -0
- package/dist/types/kernel/net/tls-tunnel.d.ts +35 -0
- package/dist/types/kernel/net/transport.d.ts +64 -0
- package/dist/types/kernel/net/uplink-socket.d.ts +11 -0
- package/dist/types/kernel/net/uplink.d.ts +163 -0
- package/dist/types/kernel/net/ws-queue.d.ts +21 -0
- package/dist/types/kernel/net/ws-syscalls.d.ts +45 -0
- package/dist/types/kernel/net/x509.d.ts +34 -0
- package/dist/types/kernel/pipe.d.ts +29 -0
- package/dist/types/kernel/proc-info.d.ts +44 -0
- package/dist/types/kernel/process.d.ts +525 -0
- package/dist/types/kernel/protocol.d.ts +126 -0
- package/dist/types/kernel/pty.d.ts +84 -0
- package/dist/types/kernel/run-child.d.ts +39 -0
- package/dist/types/kernel/scrub-file.d.ts +13 -0
- package/dist/types/kernel/sealed.d.ts +74 -0
- package/dist/types/kernel/select.d.ts +7 -0
- package/dist/types/kernel/sem.d.ts +72 -0
- package/dist/types/kernel/settling.d.ts +16 -0
- package/dist/types/kernel/signals.d.ts +44 -0
- package/dist/types/kernel/socket-syscalls.d.ts +74 -0
- package/dist/types/kernel/socket.d.ts +125 -0
- package/dist/types/kernel/timer.d.ts +4 -0
- package/dist/types/kernel/tty.d.ts +53 -0
- package/dist/types/kernel/vfs-file.d.ts +149 -0
- package/dist/types/launcher.d.ts +359 -0
- package/dist/types/local-proxy-transport.d.ts +39 -0
- package/dist/types/meta.d.ts +11 -0
- package/dist/types/mount/chunked.d.ts +9 -0
- package/dist/types/mount/connection.d.ts +35 -0
- package/dist/types/mount/driver.d.ts +50 -0
- package/dist/types/mount/fsa.d.ts +26 -0
- package/dist/types/mount/fstab.d.ts +17 -0
- package/dist/types/mount/host.d.ts +24 -0
- package/dist/types/mount/hostfs.d.ts +129 -0
- package/dist/types/mount/media.d.ts +8 -0
- package/dist/types/mount/medium.d.ts +12 -0
- package/dist/types/mount/mount-fs.d.ts +136 -0
- package/dist/types/mount/protocol.d.ts +140 -0
- package/dist/types/mount/syscall.d.ts +27 -0
- package/dist/types/mount/tmpfs.d.ts +2 -0
- package/dist/types/node/loopback.d.ts +11 -0
- package/dist/types/node/memory-root.d.ts +2 -0
- package/dist/types/node/ws-diagnose.d.ts +4 -0
- package/dist/types/node.d.ts +85 -0
- package/dist/types/process/fd-metadata.d.ts +4 -0
- package/dist/types/process/js/async-sab.d.ts +15 -0
- package/dist/types/process/js/js-children.d.ts +63 -0
- package/dist/types/process/js/js-context.d.ts +133 -0
- package/dist/types/process/js/js-dev.d.ts +50 -0
- package/dist/types/process/js/js-exit.d.ts +15 -0
- package/dist/types/process/js/js-fetch.d.ts +2 -0
- package/dist/types/process/js/js-io.d.ts +81 -0
- package/dist/types/process/js/js-kernel.d.ts +61 -0
- package/dist/types/process/js/js-net.d.ts +42 -0
- package/dist/types/process/js/js-proc.d.ts +31 -0
- package/dist/types/process/js/js-run.d.ts +35 -0
- package/dist/types/process/js/js-sync.d.ts +86 -0
- package/dist/types/process/js/js-tty.d.ts +30 -0
- package/dist/types/process/js/js-websocket.d.ts +21 -0
- package/dist/types/process/kernel-streams.d.ts +196 -0
- package/dist/types/process/process-fds.d.ts +95 -0
- package/dist/types/process/process-locks.d.ts +29 -0
- package/dist/types/process/process-pty.d.ts +20 -0
- package/dist/types/process/process-signals.d.ts +33 -0
- package/dist/types/process/procfs.d.ts +41 -0
- package/dist/types/process/wasi/dylink.d.ts +9 -0
- package/dist/types/process/wasi/slicc-lock.d.ts +26 -0
- package/dist/types/process/wasi/slicc-sem.d.ts +3 -0
- package/dist/types/process/wasi/wasi-abi.d.ts +156 -0
- package/dist/types/process/wasi/wasi-fds.d.ts +130 -0
- package/dist/types/process/wasi/wasi-files.d.ts +99 -0
- package/dist/types/process/wasi/wasi-host.d.ts +104 -0
- package/dist/types/process/wasi/wasi-memory.d.ts +16 -0
- package/dist/types/process/wasi/wasi-module.d.ts +13 -0
- package/dist/types/process/wasi/wasi-poll.d.ts +13 -0
- package/dist/types/process/wasi/wasi-procfs.d.ts +36 -0
- package/dist/types/process/wasi/wasi-sigmask.d.ts +19 -0
- package/dist/types/process/wasi/wasi-signals.d.ts +43 -0
- package/dist/types/process/wasi/wasi-termios.d.ts +10 -0
- package/dist/types/process/wasi/wasix-fork.d.ts +63 -0
- package/dist/types/process/wasi/wasix-linker.d.ts +108 -0
- package/dist/types/process/wasi/wasix-sockets.d.ts +9 -0
- package/dist/types/process/wasi/wasix-trampoline.d.ts +18 -0
- package/dist/types/process/wasi/wasm-functypes.d.ts +25 -0
- package/dist/types/process/wasi-errno.d.ts +1 -0
- package/dist/types/realm/emscripten-vfs-hook.d.ts +19 -0
- package/dist/types/realm/live-vfs-fs.d.ts +186 -0
- package/dist/types/realm/sync-fs-dispatch.d.ts +26 -0
- package/dist/types/realm/sync-fs-token-registry.d.ts +36 -0
- package/dist/types/realm/sync-fs-wire.d.ts +118 -0
- package/dist/types/realm/sync-sab-bridge.d.ts +21 -0
- package/dist/types/realm/sync-sab-responder.d.ts +16 -0
- package/dist/types/realm/sync-sab-wire.d.ts +64 -0
- package/dist/types/sealed-relay.d.ts +26 -0
- package/dist/types/serve.d.ts +190 -0
- package/dist/types/sudo-command.d.ts +4 -0
- package/dist/types/sudo.d.ts +105 -0
- package/dist/types/testing.d.ts +46 -0
- package/dist/types/transport.d.ts +25 -0
- package/dist/types/users.d.ts +86 -0
- package/dist/types/version.d.ts +3 -0
- package/dist/types/websocket-transport.d.ts +12 -0
- package/package.json +22 -6
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
import { type Created, type Dac } from '../fs/dac.js';
|
|
2
|
+
import type { KernelFs } from '../fs/types.js';
|
|
3
|
+
import type { MountCall } from '../mount/syscall.js';
|
|
4
|
+
import type { LinkRecord } from '../process/wasi/wasix-linker.js';
|
|
5
|
+
import type { SourceCheck } from '../realm/sync-fs-token-registry.js';
|
|
6
|
+
import type { SyncFsResult } from '../realm/sync-fs-wire.js';
|
|
7
|
+
import type { SudoCall, SudoResult } from '../sudo.js';
|
|
8
|
+
import { type ChildForker, type ChildSpawner, type ChildStdio, type InheritedSlot } from './children.js';
|
|
9
|
+
import type { ClipboardBroker } from './clipboard.js';
|
|
10
|
+
import { type Cred, type CredChange } from './cred.js';
|
|
11
|
+
import { type EpollSyscall } from './epoll.js';
|
|
12
|
+
import { type DeviceAccess, type FdTable, type HeldMeta, type KernelFdKind, type OpenFile } from './fd-table.js';
|
|
13
|
+
import { type HostSyscall } from './host-ops.js';
|
|
14
|
+
import type { JobTable } from './jobs.js';
|
|
15
|
+
import type { LockTable } from './locks.js';
|
|
16
|
+
import { type HttpHandles, type HttpSyscall } from './net/http-syscalls.js';
|
|
17
|
+
import { Resolver } from './net/resolver.js';
|
|
18
|
+
import type { MountLine, ProcessListing } from './proc-info.js';
|
|
19
|
+
import type { DlState, ForkState } from './protocol.js';
|
|
20
|
+
import { type PtySyscall, type PtyTable } from './pty.js';
|
|
21
|
+
import { type RunRequest } from './run-child.js';
|
|
22
|
+
import type { SealedBroker, SealedCaller } from './sealed.js';
|
|
23
|
+
import { type SemSyscall, type SemTable } from './sem.js';
|
|
24
|
+
import { type DefaultAction } from './signals.js';
|
|
25
|
+
import { LoopbackNet } from './socket.js';
|
|
26
|
+
import { type SocketSyscall } from './socket-syscalls.js';
|
|
27
|
+
import type { Termios } from './tty.js';
|
|
28
|
+
import { type VersionPin, type VfsFileFs, VfsNodes } from './vfs-file.js';
|
|
29
|
+
export type WasmSyscall = {
|
|
30
|
+
op: 'fd-read';
|
|
31
|
+
fd: number;
|
|
32
|
+
max: number;
|
|
33
|
+
nonblock?: boolean;
|
|
34
|
+
peek?: boolean;
|
|
35
|
+
} | {
|
|
36
|
+
op: 'fd-write';
|
|
37
|
+
fd: number;
|
|
38
|
+
body: Uint8Array;
|
|
39
|
+
nonblock?: boolean;
|
|
40
|
+
} | {
|
|
41
|
+
op: 'fd-close';
|
|
42
|
+
fd: number;
|
|
43
|
+
} | {
|
|
44
|
+
op: 'fd-pipe';
|
|
45
|
+
} | {
|
|
46
|
+
op: 'fd-poll';
|
|
47
|
+
fd: number;
|
|
48
|
+
} | {
|
|
49
|
+
op: 'fd-open-vfs';
|
|
50
|
+
path: string;
|
|
51
|
+
flags: number;
|
|
52
|
+
position: number;
|
|
53
|
+
mode?: number;
|
|
54
|
+
contents?: Uint8Array;
|
|
55
|
+
orphan?: boolean;
|
|
56
|
+
truncate?: boolean;
|
|
57
|
+
create?: boolean;
|
|
58
|
+
exclusive?: boolean;
|
|
59
|
+
created?: boolean;
|
|
60
|
+
existing?: boolean;
|
|
61
|
+
pin?: VersionPin;
|
|
62
|
+
handle?: number;
|
|
63
|
+
} | {
|
|
64
|
+
op: 'fd-pread';
|
|
65
|
+
fd: number;
|
|
66
|
+
offset: number;
|
|
67
|
+
max: number;
|
|
68
|
+
} | {
|
|
69
|
+
op: 'fd-pwrite';
|
|
70
|
+
fd: number;
|
|
71
|
+
offset: number;
|
|
72
|
+
body: Uint8Array;
|
|
73
|
+
} | {
|
|
74
|
+
op: 'fd-resize';
|
|
75
|
+
fd: number;
|
|
76
|
+
size: number;
|
|
77
|
+
} | {
|
|
78
|
+
op: 'fd-vfs-stat';
|
|
79
|
+
fd: number;
|
|
80
|
+
identity?: boolean;
|
|
81
|
+
full?: boolean;
|
|
82
|
+
} | {
|
|
83
|
+
op: 'fd-chmod';
|
|
84
|
+
fd: number;
|
|
85
|
+
mode: number;
|
|
86
|
+
} | {
|
|
87
|
+
op: 'fd-chown';
|
|
88
|
+
fd: number;
|
|
89
|
+
uid?: number;
|
|
90
|
+
gid?: number;
|
|
91
|
+
} | {
|
|
92
|
+
op: 'fd-utimes';
|
|
93
|
+
fd: number;
|
|
94
|
+
atimeMs: number | null;
|
|
95
|
+
mtimeMs: number | null;
|
|
96
|
+
now?: boolean;
|
|
97
|
+
} | {
|
|
98
|
+
op: 'fd-path-flush';
|
|
99
|
+
path: string;
|
|
100
|
+
} | {
|
|
101
|
+
op: 'fd-path-unlinking';
|
|
102
|
+
path: string;
|
|
103
|
+
} | {
|
|
104
|
+
op: 'fd-path-unlinked';
|
|
105
|
+
path: string;
|
|
106
|
+
} | {
|
|
107
|
+
op: 'fd-path-renamed';
|
|
108
|
+
from: string;
|
|
109
|
+
to: string;
|
|
110
|
+
} | {
|
|
111
|
+
op: 'fd-seek';
|
|
112
|
+
fd: number;
|
|
113
|
+
offset: number;
|
|
114
|
+
whence: number;
|
|
115
|
+
} | {
|
|
116
|
+
op: 'fd-select';
|
|
117
|
+
read: number[];
|
|
118
|
+
write: number[];
|
|
119
|
+
timeoutMs: number;
|
|
120
|
+
} | {
|
|
121
|
+
op: 'fd-info';
|
|
122
|
+
fd: number;
|
|
123
|
+
} | {
|
|
124
|
+
op: 'fd-dup';
|
|
125
|
+
fd: number;
|
|
126
|
+
min?: number;
|
|
127
|
+
} | {
|
|
128
|
+
op: 'fd-reserve';
|
|
129
|
+
fd?: number;
|
|
130
|
+
min?: number;
|
|
131
|
+
meta?: HeldMeta;
|
|
132
|
+
} | {
|
|
133
|
+
op: 'fd-meta';
|
|
134
|
+
fd: number;
|
|
135
|
+
meta: HeldMeta;
|
|
136
|
+
} | {
|
|
137
|
+
op: 'fd-setfl';
|
|
138
|
+
fd: number;
|
|
139
|
+
flags: number;
|
|
140
|
+
} | {
|
|
141
|
+
op: 'fd-cloexec';
|
|
142
|
+
fd: number;
|
|
143
|
+
on: boolean;
|
|
144
|
+
} | {
|
|
145
|
+
op: 'fd-list';
|
|
146
|
+
} | {
|
|
147
|
+
op: 'dl-log';
|
|
148
|
+
append?: LinkRecord;
|
|
149
|
+
from: number;
|
|
150
|
+
} | {
|
|
151
|
+
op: 'dl-closure';
|
|
152
|
+
floor: number;
|
|
153
|
+
} | {
|
|
154
|
+
op: 'dl-reserve';
|
|
155
|
+
floor: number;
|
|
156
|
+
size: number;
|
|
157
|
+
} | {
|
|
158
|
+
op: 'dl-load-reserve';
|
|
159
|
+
floor: number;
|
|
160
|
+
size: number;
|
|
161
|
+
} | {
|
|
162
|
+
op: 'dl-lock';
|
|
163
|
+
owner: number;
|
|
164
|
+
} | {
|
|
165
|
+
op: 'dl-unlock';
|
|
166
|
+
owner: number;
|
|
167
|
+
} | {
|
|
168
|
+
op: 'dl-closure-free';
|
|
169
|
+
index: number;
|
|
170
|
+
} | {
|
|
171
|
+
op: 'proc-alarm';
|
|
172
|
+
sig: number;
|
|
173
|
+
ms: number;
|
|
174
|
+
firstMs?: number;
|
|
175
|
+
repeat: boolean;
|
|
176
|
+
timer?: number;
|
|
177
|
+
} | {
|
|
178
|
+
op: 'fd-renumber';
|
|
179
|
+
from: number;
|
|
180
|
+
to: number;
|
|
181
|
+
keep?: boolean;
|
|
182
|
+
} | {
|
|
183
|
+
op: 'proc-umask';
|
|
184
|
+
mask?: number;
|
|
185
|
+
} | {
|
|
186
|
+
op: 'proc-cred';
|
|
187
|
+
} | {
|
|
188
|
+
op: 'proc-setcred';
|
|
189
|
+
change: CredChange;
|
|
190
|
+
} | {
|
|
191
|
+
op: 'fd-promote';
|
|
192
|
+
fd: number;
|
|
193
|
+
share?: number;
|
|
194
|
+
path?: string;
|
|
195
|
+
flags?: number;
|
|
196
|
+
position?: number;
|
|
197
|
+
contents?: Uint8Array;
|
|
198
|
+
orphan?: boolean;
|
|
199
|
+
dirty?: boolean;
|
|
200
|
+
pin?: VersionPin;
|
|
201
|
+
handle?: number;
|
|
202
|
+
} | {
|
|
203
|
+
op: 'fd-open-tty';
|
|
204
|
+
name?: string;
|
|
205
|
+
} | {
|
|
206
|
+
op: 'fd-tty-names';
|
|
207
|
+
} | {
|
|
208
|
+
op: 'fd-tty-owner';
|
|
209
|
+
name: string;
|
|
210
|
+
} | {
|
|
211
|
+
op: 'fd-open-sealed';
|
|
212
|
+
flags: number;
|
|
213
|
+
} | {
|
|
214
|
+
op: 'fd-open-clipboard';
|
|
215
|
+
flags: number;
|
|
216
|
+
} | {
|
|
217
|
+
op: 'fd-clipboard-abort';
|
|
218
|
+
fd: number;
|
|
219
|
+
} | {
|
|
220
|
+
op: 'tty-get';
|
|
221
|
+
fd: number;
|
|
222
|
+
} | {
|
|
223
|
+
op: 'tty-set';
|
|
224
|
+
fd: number;
|
|
225
|
+
termios: Termios;
|
|
226
|
+
flush?: boolean;
|
|
227
|
+
} | {
|
|
228
|
+
op: 'tty-winsz';
|
|
229
|
+
fd: number;
|
|
230
|
+
} | {
|
|
231
|
+
op: 'fd-flush';
|
|
232
|
+
fd: number;
|
|
233
|
+
} | {
|
|
234
|
+
op: 'proc-spawn';
|
|
235
|
+
file: string;
|
|
236
|
+
argv: string[];
|
|
237
|
+
argv0?: string;
|
|
238
|
+
env: Record<string, string>;
|
|
239
|
+
cwd: string;
|
|
240
|
+
stdio: ChildStdio[];
|
|
241
|
+
pgid?: number;
|
|
242
|
+
session?: true;
|
|
243
|
+
deathSignal?: number;
|
|
244
|
+
inherit?: InheritedSlot[];
|
|
245
|
+
exec?: boolean;
|
|
246
|
+
restart?: true;
|
|
247
|
+
} | {
|
|
248
|
+
op: 'proc-wait';
|
|
249
|
+
pid: number;
|
|
250
|
+
nohang: boolean;
|
|
251
|
+
untraced?: boolean;
|
|
252
|
+
continued?: boolean;
|
|
253
|
+
} | {
|
|
254
|
+
op: 'proc-captured';
|
|
255
|
+
pid: number;
|
|
256
|
+
slot: number;
|
|
257
|
+
} | SudoCall | RunRequest | {
|
|
258
|
+
op: 'proc-exit';
|
|
259
|
+
status: number;
|
|
260
|
+
} | {
|
|
261
|
+
op: 'proc-kill-self';
|
|
262
|
+
sig: number;
|
|
263
|
+
target?: number;
|
|
264
|
+
probe?: boolean;
|
|
265
|
+
} | {
|
|
266
|
+
op: 'proc-fork';
|
|
267
|
+
state: ForkState;
|
|
268
|
+
restart?: true;
|
|
269
|
+
} | {
|
|
270
|
+
op: 'proc-kill';
|
|
271
|
+
pid: number;
|
|
272
|
+
sig: number;
|
|
273
|
+
} | {
|
|
274
|
+
op: 'thread-kill';
|
|
275
|
+
tid: number;
|
|
276
|
+
sig: number;
|
|
277
|
+
} | {
|
|
278
|
+
op: 'proc-list';
|
|
279
|
+
} | {
|
|
280
|
+
op: 'mount-list';
|
|
281
|
+
} | ({
|
|
282
|
+
op: 'mount';
|
|
283
|
+
} & MountCall) | {
|
|
284
|
+
op: 'umount';
|
|
285
|
+
target: string;
|
|
286
|
+
flags: number;
|
|
287
|
+
} | {
|
|
288
|
+
op: 'proc-exec';
|
|
289
|
+
pid: number;
|
|
290
|
+
} | {
|
|
291
|
+
op: 'proc-identity';
|
|
292
|
+
} | {
|
|
293
|
+
op: 'proc-setpgid';
|
|
294
|
+
pid: number;
|
|
295
|
+
pgid: number;
|
|
296
|
+
} | {
|
|
297
|
+
op: 'proc-getpgid';
|
|
298
|
+
pid: number;
|
|
299
|
+
} | {
|
|
300
|
+
op: 'proc-getsid';
|
|
301
|
+
pid: number;
|
|
302
|
+
} | {
|
|
303
|
+
op: 'proc-setsid';
|
|
304
|
+
} | {
|
|
305
|
+
op: 'tty-pgrp-get';
|
|
306
|
+
fd: number;
|
|
307
|
+
} | {
|
|
308
|
+
op: 'tty-pgrp-set';
|
|
309
|
+
fd: number;
|
|
310
|
+
pgrp: number;
|
|
311
|
+
} | {
|
|
312
|
+
op: 'sig-mask';
|
|
313
|
+
caught: number;
|
|
314
|
+
ignored: number;
|
|
315
|
+
defaults?: number;
|
|
316
|
+
} | {
|
|
317
|
+
op: 'sig-pause';
|
|
318
|
+
} | SocketSyscall | EpollSyscall | SemSyscall | HttpSyscall | PtySyscall | HostSyscall;
|
|
319
|
+
export interface FdInfo {
|
|
320
|
+
tty: boolean;
|
|
321
|
+
kind: KernelFdKind;
|
|
322
|
+
dgram?: true;
|
|
323
|
+
meta?: HeldMeta;
|
|
324
|
+
flags?: number;
|
|
325
|
+
cloexec?: true;
|
|
326
|
+
access?: DeviceAccess;
|
|
327
|
+
name?: string;
|
|
328
|
+
terminal?: string;
|
|
329
|
+
}
|
|
330
|
+
export declare function isWasmSyscall(req: object): req is WasmSyscall;
|
|
331
|
+
export declare const DEFAULT_UMASK = 18;
|
|
332
|
+
export interface WasmProcessOptions {
|
|
333
|
+
ignored?: number;
|
|
334
|
+
source?: SourceCheck;
|
|
335
|
+
umask?: number;
|
|
336
|
+
cred?: Cred;
|
|
337
|
+
owners?: boolean;
|
|
338
|
+
sealed?: SealedBroker;
|
|
339
|
+
outputFilter?: (file: OpenFile) => OpenFile;
|
|
340
|
+
clipboard?: ClipboardBroker;
|
|
341
|
+
clipboardName?: string;
|
|
342
|
+
readonlyAt?: (path: string) => boolean;
|
|
343
|
+
guard?: {
|
|
344
|
+
dac: Dac;
|
|
345
|
+
fs: KernelFs;
|
|
346
|
+
created?: Created;
|
|
347
|
+
links?: number;
|
|
348
|
+
};
|
|
349
|
+
noLinks?: KernelFs;
|
|
350
|
+
identity?: () => Promise<{
|
|
351
|
+
pid: number;
|
|
352
|
+
ppid: number;
|
|
353
|
+
}>;
|
|
354
|
+
onSyscall?: (req: WasmSyscall) => void;
|
|
355
|
+
spawner?: ChildSpawner;
|
|
356
|
+
forker?: ChildForker;
|
|
357
|
+
fs: VfsFileFs;
|
|
358
|
+
kill?: (pid: number, sig: number) => boolean | Promise<boolean>;
|
|
359
|
+
writesBack?: (pid: number) => boolean;
|
|
360
|
+
processes?: () => ProcessListing;
|
|
361
|
+
sudo?: (call: SudoCall, signal: AbortSignal) => Promise<SudoResult>;
|
|
362
|
+
openFiles?: Set<VfsNodes>;
|
|
363
|
+
nodes?: VfsNodes;
|
|
364
|
+
mounts?: () => MountLine[];
|
|
365
|
+
mount?: (call: MountCall, signal: AbortSignal) => Promise<unknown>;
|
|
366
|
+
umount?: (target: string, flags: number) => Promise<void>;
|
|
367
|
+
onPending?: (sig: number) => void;
|
|
368
|
+
onTimer?: (which: number) => void;
|
|
369
|
+
onAsync?: () => void;
|
|
370
|
+
hasPending?: () => boolean;
|
|
371
|
+
threadKill?: (tid: number, sig: number) => boolean;
|
|
372
|
+
unblockedThread?: (sig: number) => number | undefined;
|
|
373
|
+
settling?: () => boolean;
|
|
374
|
+
pendingBits?: () => number;
|
|
375
|
+
blockedBits?: () => number;
|
|
376
|
+
dl?: DlState;
|
|
377
|
+
raise?: (sig: number) => void;
|
|
378
|
+
exitNow?: (status: number) => void;
|
|
379
|
+
exitSignal?: (sig: number) => void;
|
|
380
|
+
onReap?: (pid: number) => void;
|
|
381
|
+
jobs?: JobTable;
|
|
382
|
+
ptys?: PtyTable;
|
|
383
|
+
net?: LoopbackNet;
|
|
384
|
+
http?: HttpHandles;
|
|
385
|
+
locks?: LockTable;
|
|
386
|
+
sems?: SemTable;
|
|
387
|
+
resolver?: Resolver;
|
|
388
|
+
}
|
|
389
|
+
export type StateListener = (state: 'stopped' | 'continued', sig: number) => void;
|
|
390
|
+
export type SignalOutcome = DefaultAction | 'deliver' | 'forward';
|
|
391
|
+
export declare class WasmProcess {
|
|
392
|
+
private exited;
|
|
393
|
+
private readonly children;
|
|
394
|
+
private readonly deathSignals;
|
|
395
|
+
private caught;
|
|
396
|
+
private ignored;
|
|
397
|
+
private inherited;
|
|
398
|
+
private interrupt;
|
|
399
|
+
private readonly gone;
|
|
400
|
+
private dying;
|
|
401
|
+
umask: number;
|
|
402
|
+
cred: Cred;
|
|
403
|
+
private execChild;
|
|
404
|
+
private killed;
|
|
405
|
+
execTermsig: number | undefined;
|
|
406
|
+
private stopped;
|
|
407
|
+
private stops;
|
|
408
|
+
private owed;
|
|
409
|
+
private readonly waiting;
|
|
410
|
+
private resumed;
|
|
411
|
+
private wake;
|
|
412
|
+
private readonly stateListeners;
|
|
413
|
+
private net;
|
|
414
|
+
private readonly nodes;
|
|
415
|
+
readonly pid: number;
|
|
416
|
+
readonly fds: FdTable;
|
|
417
|
+
private readonly options;
|
|
418
|
+
constructor(pid: number, fds: FdTable, options: WasmProcessOptions);
|
|
419
|
+
private ignores;
|
|
420
|
+
signalMasks(): {
|
|
421
|
+
ignored: number;
|
|
422
|
+
caught: number;
|
|
423
|
+
};
|
|
424
|
+
inheritable(fork?: boolean): number;
|
|
425
|
+
signal(sig: number): SignalOutcome;
|
|
426
|
+
private spawn;
|
|
427
|
+
private onDeath;
|
|
428
|
+
private sendDeath;
|
|
429
|
+
private killSelf;
|
|
430
|
+
private run;
|
|
431
|
+
private adoptExec;
|
|
432
|
+
onState(listener: StateListener): void;
|
|
433
|
+
private stop;
|
|
434
|
+
private cont;
|
|
435
|
+
private readonly blocks;
|
|
436
|
+
private readonly sizesRead;
|
|
437
|
+
syscall(req: WasmSyscall, cancelled?: AbortSignal, block?: () => void): Promise<SyncFsResult>;
|
|
438
|
+
setUmask(mask?: number): number;
|
|
439
|
+
die(): void;
|
|
440
|
+
private dispatch;
|
|
441
|
+
private readonly lockOwners;
|
|
442
|
+
private readonly lockChecked;
|
|
443
|
+
private lockOwner;
|
|
444
|
+
private readonly pathKeys;
|
|
445
|
+
private lockPath;
|
|
446
|
+
private lockKey;
|
|
447
|
+
private dropRecordLocks;
|
|
448
|
+
private refuseIfPending;
|
|
449
|
+
private procWait;
|
|
450
|
+
private blockingSignal;
|
|
451
|
+
private cancelSignal;
|
|
452
|
+
private read;
|
|
453
|
+
private readClipboard;
|
|
454
|
+
private clipboardComplaint;
|
|
455
|
+
private write;
|
|
456
|
+
private openVfs;
|
|
457
|
+
private openDevice;
|
|
458
|
+
private identified;
|
|
459
|
+
private writesAt;
|
|
460
|
+
private sourceOpen;
|
|
461
|
+
private markedPath;
|
|
462
|
+
private openPath;
|
|
463
|
+
private mayOpen;
|
|
464
|
+
private openTty;
|
|
465
|
+
private openSealed;
|
|
466
|
+
private openClipboard;
|
|
467
|
+
private clipboardStamp;
|
|
468
|
+
private stampClipboards;
|
|
469
|
+
connectorStamp(): Promise<SealedCaller>;
|
|
470
|
+
private sealedCaller;
|
|
471
|
+
private guarded;
|
|
472
|
+
private ttyOwner;
|
|
473
|
+
private terminalByName;
|
|
474
|
+
private plainMode;
|
|
475
|
+
private newOwner;
|
|
476
|
+
private openProc;
|
|
477
|
+
private procFile;
|
|
478
|
+
private openVfsFile;
|
|
479
|
+
private fdSyscall;
|
|
480
|
+
private vfsSyscall;
|
|
481
|
+
keptPath?: (path: string) => string | undefined;
|
|
482
|
+
holds(path: string): Promise<boolean>;
|
|
483
|
+
keptHandle?: (handle: number) => string | undefined;
|
|
484
|
+
private keptOr;
|
|
485
|
+
private promote;
|
|
486
|
+
private reserve;
|
|
487
|
+
private heldPath;
|
|
488
|
+
private heldFs;
|
|
489
|
+
private heldStat;
|
|
490
|
+
private fdMetadata;
|
|
491
|
+
private fdInfo;
|
|
492
|
+
private ttySyscall;
|
|
493
|
+
private checkForeground;
|
|
494
|
+
private waitGroup;
|
|
495
|
+
private pgid;
|
|
496
|
+
private sid;
|
|
497
|
+
private controllingTerminal;
|
|
498
|
+
private jobSyscall;
|
|
499
|
+
private httpSyscall;
|
|
500
|
+
private semSyscall;
|
|
501
|
+
private socketSyscall;
|
|
502
|
+
private tty;
|
|
503
|
+
private procSyscall;
|
|
504
|
+
private sudo;
|
|
505
|
+
private mountSyscall;
|
|
506
|
+
private pause;
|
|
507
|
+
private alarm;
|
|
508
|
+
private readonly dlLog;
|
|
509
|
+
private readonly closures;
|
|
510
|
+
private withDl;
|
|
511
|
+
private seedDl;
|
|
512
|
+
private allocateClosure;
|
|
513
|
+
private freeClosure;
|
|
514
|
+
private readonly dlLock;
|
|
515
|
+
private lockDl;
|
|
516
|
+
threadEnded(tid: number): void;
|
|
517
|
+
private unlockDl;
|
|
518
|
+
private wakeDl;
|
|
519
|
+
private reserveSlots;
|
|
520
|
+
private readonly asyncOps;
|
|
521
|
+
private setAlarm;
|
|
522
|
+
private timerExpired;
|
|
523
|
+
private clearAlarm;
|
|
524
|
+
exit(): Promise<void>;
|
|
525
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { ForeignResults, ImportedMemory } from '../process/wasi/wasi-module.js';
|
|
2
|
+
import type { WasiForkState } from '../process/wasi/wasix-fork.js';
|
|
3
|
+
import type { LinkRecord } from '../process/wasi/wasix-linker.js';
|
|
4
|
+
import type { BlockedMask } from '../realm/sync-sab-wire.js';
|
|
5
|
+
import type { Cred } from './cred.js';
|
|
6
|
+
import type { DeviceMeta, KernelFdKind } from './fd-table.js';
|
|
7
|
+
export declare const WASM_PROCESS_INIT = "wasm-process-init";
|
|
8
|
+
export declare const WASM_PROCESS_EXIT = "wasm-process-exit";
|
|
9
|
+
export declare const WASM_PROCESS_ERROR = "wasm-process-error";
|
|
10
|
+
export declare const WASM_THREAD_SPAWN = "wasm-thread-spawn";
|
|
11
|
+
export declare const WASM_THREAD_INIT = "wasm-thread-init";
|
|
12
|
+
export declare const WASM_THREAD_EXIT = "wasm-thread-exit";
|
|
13
|
+
export declare const WASM_MAX_THREADS = 256;
|
|
14
|
+
export declare const WASM_DEFAULT_THREADS = 64;
|
|
15
|
+
export interface WasmProgram {
|
|
16
|
+
abi?: 'emscripten' | 'wasi';
|
|
17
|
+
glue: string;
|
|
18
|
+
module: WebAssembly.Module;
|
|
19
|
+
memory?: ImportedMemory;
|
|
20
|
+
foreign?: ForeignResults | undefined;
|
|
21
|
+
path?: string;
|
|
22
|
+
names?: string;
|
|
23
|
+
imports?: string;
|
|
24
|
+
preopenRoot?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface JsProgram {
|
|
27
|
+
abi: 'js';
|
|
28
|
+
glue: string;
|
|
29
|
+
path: string;
|
|
30
|
+
}
|
|
31
|
+
export type Program = WasmProgram | JsProgram;
|
|
32
|
+
export interface ForkState {
|
|
33
|
+
memory: Uint8Array;
|
|
34
|
+
currData: number;
|
|
35
|
+
forkSp: number;
|
|
36
|
+
callStackNames: Array<[number, string]>;
|
|
37
|
+
ppid: number;
|
|
38
|
+
streams?: ForkStream[];
|
|
39
|
+
cwd?: string;
|
|
40
|
+
wasi?: WasiForkState;
|
|
41
|
+
dl?: DlState;
|
|
42
|
+
}
|
|
43
|
+
export interface DlState {
|
|
44
|
+
log: LinkRecord[];
|
|
45
|
+
next: number;
|
|
46
|
+
handle: number;
|
|
47
|
+
free: number[];
|
|
48
|
+
live: number[];
|
|
49
|
+
}
|
|
50
|
+
export interface KernelStreamEntry {
|
|
51
|
+
fd: number;
|
|
52
|
+
kernel: number;
|
|
53
|
+
kind: KernelFdKind;
|
|
54
|
+
flags?: number;
|
|
55
|
+
cloexec?: boolean;
|
|
56
|
+
desc?: number;
|
|
57
|
+
}
|
|
58
|
+
export type ForkStream = KernelStreamEntry | {
|
|
59
|
+
fd: number;
|
|
60
|
+
path: string;
|
|
61
|
+
flags: number;
|
|
62
|
+
};
|
|
63
|
+
export interface InheritedFd {
|
|
64
|
+
fd: number;
|
|
65
|
+
kind: KernelFdKind;
|
|
66
|
+
device?: DeviceMeta;
|
|
67
|
+
flags?: number;
|
|
68
|
+
cloexec?: boolean;
|
|
69
|
+
desc?: number;
|
|
70
|
+
}
|
|
71
|
+
export interface WasmProcessInitMsg {
|
|
72
|
+
type: typeof WASM_PROCESS_INIT;
|
|
73
|
+
pid: number;
|
|
74
|
+
program: WasmProgram;
|
|
75
|
+
argv0: string;
|
|
76
|
+
args: string[];
|
|
77
|
+
env: Record<string, string>;
|
|
78
|
+
cwd: string;
|
|
79
|
+
sab: SharedArrayBuffer;
|
|
80
|
+
changes?: SharedArrayBuffer;
|
|
81
|
+
ppid?: number;
|
|
82
|
+
umask?: number;
|
|
83
|
+
cred?: Cred;
|
|
84
|
+
owners?: boolean;
|
|
85
|
+
links?: boolean;
|
|
86
|
+
fork?: ForkState;
|
|
87
|
+
fds?: InheritedFd[];
|
|
88
|
+
}
|
|
89
|
+
export interface JsLane {
|
|
90
|
+
sab: SharedArrayBuffer;
|
|
91
|
+
port: MessagePort;
|
|
92
|
+
}
|
|
93
|
+
export type JsProcessInitMsg = Omit<WasmProcessInitMsg, 'program' | 'fork'> & {
|
|
94
|
+
program: JsProgram;
|
|
95
|
+
lane?: JsLane;
|
|
96
|
+
};
|
|
97
|
+
export type ProcessInitMsg = WasmProcessInitMsg | JsProcessInitMsg;
|
|
98
|
+
export interface WasmProcessExitMsg {
|
|
99
|
+
type: typeof WASM_PROCESS_EXIT;
|
|
100
|
+
code: number;
|
|
101
|
+
}
|
|
102
|
+
export interface WasmProcessErrorMsg {
|
|
103
|
+
type: typeof WASM_PROCESS_ERROR;
|
|
104
|
+
message: string;
|
|
105
|
+
code?: number;
|
|
106
|
+
}
|
|
107
|
+
export interface WasmThread {
|
|
108
|
+
tid: number;
|
|
109
|
+
arg: number;
|
|
110
|
+
memory: WebAssembly.Memory;
|
|
111
|
+
ids: SharedArrayBuffer;
|
|
112
|
+
modules?: Record<string, WebAssembly.Module>;
|
|
113
|
+
blocked?: BlockedMask;
|
|
114
|
+
}
|
|
115
|
+
export interface WasmThreadSpawnMsg {
|
|
116
|
+
type: typeof WASM_THREAD_SPAWN;
|
|
117
|
+
thread: WasmThread;
|
|
118
|
+
}
|
|
119
|
+
export interface WasmThreadInitMsg extends Omit<WasmProcessInitMsg, 'type' | 'fork' | 'fds'> {
|
|
120
|
+
type: typeof WASM_THREAD_INIT;
|
|
121
|
+
thread: WasmThread;
|
|
122
|
+
signals?: SharedArrayBuffer;
|
|
123
|
+
}
|
|
124
|
+
export interface WasmThreadExitMsg {
|
|
125
|
+
type: typeof WASM_THREAD_EXIT;
|
|
126
|
+
}
|