authorgravatar for shritesh@shritesh.comShritesh Bhattarai <shritesh@shritesh.com> 2019-04-30 22:46:46-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-04-30 23:53:17-04:00
log7bbc8eb16c44d0aa9fee72fbe5607b44468a2872
tree4befc8a44cde7cd8b60f8cc06b8559100bbf9a97
parentf53abf40631463a42d640856e3f1613a8334cb14

wasi: import all core exports


1 files changed, 116 insertions(+), 3 deletions(-)

std/os/wasi/core.zig+116-3
......@@ -25,6 +25,13 @@ pub const device_t = u64;
2525pub const dircookie_t = u64;
2626pub const DIRCOOKIE_START: dircookie_t = 0;
2727
28pub const dirent_t = extern struct {
29 d_next: dircookie_t,
30 d_ino: inode_t,
31 d_namlen: u32,
32 d_type: filetype_t,
33};
34
2835pub const errno_t = u16;
2936pub const ESUCCESS: errno_t = 0;
3037pub const E2BIG: errno_t = 1;
......@@ -104,6 +111,18 @@ pub const ETXTBSY: errno_t = 74;
104111pub const EXDEV: errno_t = 75;
105112pub const ENOTCAPABLE: errno_t = 76;
106113
114pub const event_t = extern struct {
115 userdata: userdata_t,
116 @"error": errno_t,
117 @"type": eventtype_t,
118 u: extern union {
119 fd_readwrite: extern struct {
120 nbytes: filesize_t,
121 flags: eventrwflags_t,
122 },
123 },
124};
125
107126pub const eventrwflags_t = u16;
108127pub const EVENT_FD_READWRITE_HANGUP: eventrwflags_t = 0x0001;
109128
......@@ -123,10 +142,28 @@ pub const FDFLAG_NONBLOCK: fdflags_t = 0x0004;
123142pub const FDFLAG_RSYNC: fdflags_t = 0x0008;
124143pub const FDFLAG_SYNC: fdflags_t = 0x0010;
125144
145const fdstat_t = extern struct {
146 fs_filetype: filetype_t,
147 fs_flags: fdflags_t,
148 fs_rights_base: rights_t,
149 fs_rights_inheriting: rights_t,
150};
151
126152pub const filedelta_t = i64;
127153
128154pub const filesize_t = u64;
129155
156pub const filestat_t = extern struct {
157 st_dev: device_t,
158 st_ino: inode_t,
159 st_filetype: filetype_t,
160 st_nlink: linkcount_t,
161 st_size: filesize_t,
162 st_atim: timestamp_t,
163 st_mtim: timestamp_t,
164 st_ctim: timestamp_t,
165};
166
130167pub const filetype_t = u8;
131168pub const FILETYPE_UNKNOWN: filetype_t = 0;
132169pub const FILETYPE_BLOCK_DEVICE: filetype_t = 1;
......@@ -145,6 +182,11 @@ pub const FILESTAT_SET_MTIM_NOW: fstflags_t = 0x0008;
145182
146183pub const inode_t = u64;
147184
185pub const iovec_t = extern struct {
186 buf: [*]u8,
187 buf_len: usize,
188};
189
148190pub const linkcount_t = u32;
149191
150192pub const lookupflags_t = u32;
......@@ -156,6 +198,18 @@ pub const O_DIRECTORY: oflags_t = 0x0002;
156198pub const O_EXCL: oflags_t = 0x0004;
157199pub const O_TRUNC: oflags_t = 0x0008;
158200
201pub const preopentype_t = u8;
202pub const PREOPENTYPE_DIR: preopentype_t = 0;
203
204pub const prestat_t = extern struct {
205 pr_type: preopentype_t,
206 u: extern union {
207 dir: extern struct {
208 pr_name_len: usize,
209 },
210 },
211};
212
159213pub const riflags_t = u16;
160214pub const SOCK_RECV_PEEK: riflags_t = 0x0001;
161215pub const SOCK_RECV_WAITALL: riflags_t = 0x0002;
......@@ -235,6 +289,23 @@ pub const SIGSYS: signal_t = 30;
235289pub const subclockflags_t = u16;
236290pub const SUBSCRIPTION_CLOCK_ABSTIME: subclockflags_t = 0x0001;
237291
292pub const subscription_t = extern struct {
293 userdata: userdata_t,
294 @"type": eventtype_t,
295 u: extern union {
296 clock: extern struct {
297 identifier: userdata_t,
298 clock_id: clockid_t,
299 timeout: timestamp_t,
300 precision: timestamp_t,
301 flags: subclockflags_t,
302 },
303 fd_readwrite: extern struct {
304 fd: fd_t,
305 },
306 },
307};
308
238309pub const timestamp_t = u64;
239310
240311pub const userdata_t = u64;
......@@ -253,9 +324,51 @@ pub extern "wasi_unstable" fn clock_time_get(clock_id: clockid_t, precision: tim
253324pub extern "wasi_unstable" fn environ_get(environ: [*]?[*]u8, environ_buf: [*]u8) errno_t;
254325pub extern "wasi_unstable" fn environ_sizes_get(environ_count: *usize, environ_buf_size: *usize) errno_t;
255326
256pub extern "wasi_unstable" fn proc_raise(sig: signal_t) errno_t;
257pub extern "wasi_unstable" fn proc_exit(rval: exitcode_t) noreturn;
258
327pub extern "wasi_unstable" fn fd_advise(fd: fd_t, offset: filesize_t, len: filesize_t, advice: advice_t) errno_t;
328pub extern "wasi_unstable" fn fd_allocate(fd: fd_t, offset: filesize_t, len: filesize_t) errno_t;
329pub extern "wasi_unstable" fn fd_close(fd: fd_t) errno_t;
330pub extern "wasi_unstable" fn fd_datasync(fd: fd_t) errno_t;
331pub extern "wasi_unstable" fn fd_pread(fd: fd_t, iovs: *const iovec_t, iovs_len: usize, offset: filesize_t, nread: *usize) errno_t;
332pub extern "wasi_unstable" fn fd_pwrite(fd: fd_t, iovs: *const ciovec_t, iovs_len: usize, offset: filesize_t, nwritten: *usize) errno_t;
333pub extern "wasi_unstable" fn fd_read(fd: fd_t, iovs: *const iovec_t, iovs_len: usize, nread: *usize) errno_t;
334pub extern "wasi_unstable" fn fd_readdir(fd: fd_t, buf: [*]u8, buf_len: usize, cookie: dircookie_t, bufused: *usize) errno_t;
335pub extern "wasi_unstable" fn fd_renumber(from: fd_t, to: fd_t) errno_t;
336pub extern "wasi_unstable" fn fd_seek(fd: fd_t, offset: filedelta_t, whence: whence_t, newoffset: *filesize_t) errno_t;
337pub extern "wasi_unstable" fn fd_sync(fd: fd_t) errno_t;
338pub extern "wasi_unstable" fn fd_tell(fd: fd_t, newoffset: *filesize_t) errno_t;
259339pub extern "wasi_unstable" fn fd_write(fd: fd_t, iovs: *const ciovec_t, iovs_len: usize, nwritten: *usize) errno_t;
260340
341pub extern "wasi_unstable" fn fd_fdstat_get(fd: fd_t, buf: *fdstat_t) errno_t;
342pub extern "wasi_unstable" fn fd_fdstat_set_flags(fd: fd_t, flags: fdflags_t) errno_t;
343pub extern "wasi_unstable" fn fd_fdstat_set_rights(fd: fd_t, fs_rights_base: rights_t, fs_rights_inheriting: rights_t) errno_t;
344
345pub extern "wasi_unstable" fn fd_filestat_get(fd: fd_t, buf: *filestat_t) errno_t;
346pub extern "wasi_unstable" fn fd_filestat_set_size(fd: fd_t, st_size: filesize_t) errno_t;
347pub extern "wasi_unstable" fn fd_filestat_set_times(fd: fd_t, st_atim: timestamp_t, st_mtim: timestamp_t, fstflags: fstflags_t) errno_t;
348
349pub extern "wasi_unstable" fn fd_prestat_get(fd: fd_t, buf: *prestat_t) errno_t;
350pub extern "wasi_unstable" fn fd_prestat_dir_name(fd: fd_t, path: [*]u8, path_len: usize) errno_t;
351
352pub extern "wasi_unstable" fn path_create_directory(fd: fd_t, path: [*]const u8, path_len: usize) errno_t;
353pub extern "wasi_unstable" fn path_filestat_get(fd: fd_t, flags: lookupflags_t, path: [*]const u8, path_len: usize, buf: *filestat_t) errno_t;
354pub extern "wasi_unstable" fn path_filestat_set_times(fd: fd_t, flags: lookupflags_t, path: [*]const u8, path_len: usize, st_atim: timestamp_t, st_mtim: timestamp_t, fstflags: fstflags_t) errno_t;
355pub extern "wasi_unstable" fn path_link(old_fd: fd_t, old_flags: lookupflags_t, old_path: [*]const u8, old_path_len: usize, new_fd: fd_t, new_path: [*]const u8, new_path_len: usize) errno_t;
356pub extern "wasi_unstable" fn path_open(dirfd: fd_t, dirflags: lookupflags_t, path: [*]const u8, path_len: usize, oflags: oflags_t, fs_rights_base: rights_t, fs_rights_inheriting: rights_t, fs_flags: fdflags_t, fd: *fd_t) errno_t;
357pub extern "wasi_unstable" fn path_readlink(fd: fd_t, path: [*]const u8, path_len: usize, buf: [*]u8, buf_len: usize, bufused: *usize) errno_t;
358pub extern "wasi_unstable" fn path_remove_directory(fd: fd_t, path: [*]const u8, path_len: usize) errno_t;
359pub extern "wasi_unstable" fn path_rename(old_fd: fd_t, old_path: [*]const u8, old_path_len: usize, new_fd: fd_t, new_path: [*]const u8, new_path_len: usize) errno_t;
360pub extern "wasi_unstable" fn path_symlink(old_path: [*]const u8, old_path_len: usize, fd: fd_t, new_path: [*]const u8, new_path_len: usize) errno_t;
361pub extern "wasi_unstable" fn path_unlink_file(fd: fd_t, path: [*]const u8, path_len: usize) errno_t;
362
363pub extern "wasi_unstable" fn poll_oneoff(in: *const subscription_t, out: *event_t, nsubscriptions: usize, nevents: *usize) errno_t;
364
365pub extern "wasi_unstable" fn proc_exit(rval: exitcode_t) noreturn;
366pub extern "wasi_unstable" fn proc_raise(sig: signal_t) errno_t;
367
261368pub extern "wasi_unstable" fn random_get(buf: [*]u8, buf_len: usize) errno_t;
369
370pub extern "wasi_unstable" fn sched_yield() errno_t;
371
372pub extern "wasi_unstable" fn sock_recv(sock: fd_t, ri_data: *const iovec_t, ri_data_len: usize, ri_flags: riflags_t, ro_datalen: *usize, ro_flags: *roflags_t) errno_t;
373pub extern "wasi_unstable" fn sock_send(sock: fd_t, si_data: *const ciovec_t, si_data_len: usize, si_flags: siflags_t, so_datalen: *usize) errno_t;
374pub extern "wasi_unstable" fn sock_shutdown(sock: fd_t, how: sdflags_t) errno_t;