summaryrefslogtreecommitdiff
path: root/deps/uvwasi/include/wasi_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/uvwasi/include/wasi_types.h')
-rw-r--r--deps/uvwasi/include/wasi_types.h323
1 files changed, 323 insertions, 0 deletions
diff --git a/deps/uvwasi/include/wasi_types.h b/deps/uvwasi/include/wasi_types.h
new file mode 100644
index 0000000000..34b5291c57
--- /dev/null
+++ b/deps/uvwasi/include/wasi_types.h
@@ -0,0 +1,323 @@
+#ifndef __UVWASI_WASI_TYPES_H__
+#define __UVWASI_WASI_TYPES_H__
+
+#include <stddef.h>
+#include <stdint.h>
+
+/* API: https://github.com/WebAssembly/WASI/blob/master/phases/unstable/docs/wasi_unstable_preview0.md */
+
+typedef uint8_t uvwasi_advice_t;
+#define UVWASI_ADVICE_NORMAL 0
+#define UVWASI_ADVICE_SEQUENTIAL 1
+#define UVWASI_ADVICE_RANDOM 2
+#define UVWASI_ADVICE_WILLNEED 3
+#define UVWASI_ADVICE_DONTNEED 4
+#define UVWASI_ADVICE_NOREUSE 5
+
+typedef struct uvwasi_ciovec_s {
+ const void* buf;
+ size_t buf_len;
+} uvwasi_ciovec_t;
+
+typedef uint32_t uvwasi_clockid_t;
+#define UVWASI_CLOCK_REALTIME 0
+#define UVWASI_CLOCK_MONOTONIC 1
+#define UVWASI_CLOCK_PROCESS_CPUTIME_ID 2
+#define UVWASI_CLOCK_THREAD_CPUTIME_ID 3
+
+typedef uint64_t uvwasi_device_t;
+
+typedef uint64_t uvwasi_dircookie_t;
+#define UVWASI_DIRCOOKIE_START 0
+
+typedef uint16_t uvwasi_errno_t;
+#define UVWASI_ESUCCESS 0
+#define UVWASI_E2BIG 1
+#define UVWASI_EACCES 2
+#define UVWASI_EADDRINUSE 3
+#define UVWASI_EADDRNOTAVAIL 4
+#define UVWASI_EAFNOSUPPORT 5
+#define UVWASI_EAGAIN 6
+#define UVWASI_EALREADY 7
+#define UVWASI_EBADF 8
+#define UVWASI_EBADMSG 9
+#define UVWASI_EBUSY 10
+#define UVWASI_ECANCELED 11
+#define UVWASI_ECHILD 12
+#define UVWASI_ECONNABORTED 13
+#define UVWASI_ECONNREFUSED 14
+#define UVWASI_ECONNRESET 15
+#define UVWASI_EDEADLK 16
+#define UVWASI_EDESTADDRREQ 17
+#define UVWASI_EDOM 18
+#define UVWASI_EDQUOT 19
+#define UVWASI_EEXIST 20
+#define UVWASI_EFAULT 21
+#define UVWASI_EFBIG 22
+#define UVWASI_EHOSTUNREACH 23
+#define UVWASI_EIDRM 24
+#define UVWASI_EILSEQ 25
+#define UVWASI_EINPROGRESS 26
+#define UVWASI_EINTR 27
+#define UVWASI_EINVAL 28
+#define UVWASI_EIO 29
+#define UVWASI_EISCONN 30
+#define UVWASI_EISDIR 31
+#define UVWASI_ELOOP 32
+#define UVWASI_EMFILE 33
+#define UVWASI_EMLINK 34
+#define UVWASI_EMSGSIZE 35
+#define UVWASI_EMULTIHOP 36
+#define UVWASI_ENAMETOOLONG 37
+#define UVWASI_ENETDOWN 38
+#define UVWASI_ENETRESET 39
+#define UVWASI_ENETUNREACH 40
+#define UVWASI_ENFILE 41
+#define UVWASI_ENOBUFS 42
+#define UVWASI_ENODEV 43
+#define UVWASI_ENOENT 44
+#define UVWASI_ENOEXEC 45
+#define UVWASI_ENOLCK 46
+#define UVWASI_ENOLINK 47
+#define UVWASI_ENOMEM 48
+#define UVWASI_ENOMSG 49
+#define UVWASI_ENOPROTOOPT 50
+#define UVWASI_ENOSPC 51
+#define UVWASI_ENOSYS 52
+#define UVWASI_ENOTCONN 53
+#define UVWASI_ENOTDIR 54
+#define UVWASI_ENOTEMPTY 55
+#define UVWASI_ENOTRECOVERABLE 56
+#define UVWASI_ENOTSOCK 57
+#define UVWASI_ENOTSUP 58
+#define UVWASI_ENOTTY 59
+#define UVWASI_ENXIO 60
+#define UVWASI_EOVERFLOW 61
+#define UVWASI_EOWNERDEAD 62
+#define UVWASI_EPERM 63
+#define UVWASI_EPIPE 64
+#define UVWASI_EPROTO 65
+#define UVWASI_EPROTONOSUPPORT 66
+#define UVWASI_EPROTOTYPE 67
+#define UVWASI_ERANGE 68
+#define UVWASI_EROFS 69
+#define UVWASI_ESPIPE 70
+#define UVWASI_ESRCH 71
+#define UVWASI_ESTALE 72
+#define UVWASI_ETIMEDOUT 73
+#define UVWASI_ETXTBSY 74
+#define UVWASI_EXDEV 75
+#define UVWASI_ENOTCAPABLE 76
+
+typedef uint16_t uvwasi_eventrwflags_t; /* Bitfield */
+#define UVWASI_EVENT_FD_READWRITE_HANGUP (1 << 0)
+
+typedef uint8_t uvwasi_eventtype_t;
+#define UVWASI_EVENTTYPE_CLOCK 0
+#define UVWASI_EVENTTYPE_FD_READ 1
+#define UVWASI_EVENTTYPE_FD_WRITE 2
+
+typedef uint32_t uvwasi_exitcode_t;
+
+typedef uint32_t uvwasi_fd_t;
+
+typedef uint16_t uvwasi_fdflags_t; /* Bitfield */
+#define UVWASI_FDFLAG_APPEND (1 << 0)
+#define UVWASI_FDFLAG_DSYNC (1 << 1)
+#define UVWASI_FDFLAG_NONBLOCK (1 << 2)
+#define UVWASI_FDFLAG_RSYNC (1 << 3)
+#define UVWASI_FDFLAG_SYNC (1 << 4)
+
+typedef int64_t uvwasi_filedelta_t;
+
+typedef uint64_t uvwasi_filesize_t;
+
+typedef uint8_t uvwasi_filetype_t;
+#define UVWASI_FILETYPE_UNKNOWN 0
+#define UVWASI_FILETYPE_BLOCK_DEVICE 1
+#define UVWASI_FILETYPE_CHARACTER_DEVICE 2
+#define UVWASI_FILETYPE_DIRECTORY 3
+#define UVWASI_FILETYPE_REGULAR_FILE 4
+#define UVWASI_FILETYPE_SOCKET_DGRAM 5
+#define UVWASI_FILETYPE_SOCKET_STREAM 6
+#define UVWASI_FILETYPE_SYMBOLIC_LINK 7
+
+typedef uint16_t uvwasi_fstflags_t; /* Bitfield */
+#define UVWASI_FILESTAT_SET_ATIM (1 << 0)
+#define UVWASI_FILESTAT_SET_ATIM_NOW (1 << 1)
+#define UVWASI_FILESTAT_SET_MTIM (1 << 2)
+#define UVWASI_FILESTAT_SET_MTIM_NOW (1 << 3)
+
+typedef uint64_t uvwasi_inode_t;
+
+typedef struct uvwasi_iovec_s {
+ void* buf;
+ size_t buf_len;
+} uvwasi_iovec_t;
+
+typedef uint32_t uvwasi_linkcount_t;
+
+typedef uint32_t uvwasi_lookupflags_t; /* Bitfield */
+#define UVWASI_LOOKUP_SYMLINK_FOLLOW (1 << 0)
+
+typedef uint16_t uvwasi_oflags_t; /* Bitfield */
+#define UVWASI_O_CREAT (1 << 0)
+#define UVWASI_O_DIRECTORY (1 << 1)
+#define UVWASI_O_EXCL (1 << 2)
+#define UVWASI_O_TRUNC (1 << 3)
+
+typedef uint8_t uvwasi_preopentype_t;
+#define UVWASI_PREOPENTYPE_DIR 0
+
+typedef struct uvwasi_prestat_s {
+ uvwasi_preopentype_t pr_type;
+ union uvwasi_prestat_u {
+ struct uvwasi_prestat_dir_t {
+ size_t pr_name_len;
+ } dir;
+ } u;
+} uvwasi_prestat_t;
+
+typedef uint16_t uvwasi_riflags_t; /* Bitfield */
+#define UVWASI_SOCK_RECV_PEEK (1 << 0)
+#define UVWASI_SOCK_RECV_WAITALL (1 << 1)
+
+typedef uint64_t uvwasi_rights_t; /* Bitfield */
+#define UVWASI_RIGHT_FD_DATASYNC (1 << 0)
+#define UVWASI_RIGHT_FD_READ (1 << 1)
+#define UVWASI_RIGHT_FD_SEEK (1 << 2)
+#define UVWASI_RIGHT_FD_FDSTAT_SET_FLAGS (1 << 3)
+#define UVWASI_RIGHT_FD_SYNC (1 << 4)
+#define UVWASI_RIGHT_FD_TELL (1 << 5)
+#define UVWASI_RIGHT_FD_WRITE (1 << 6)
+#define UVWASI_RIGHT_FD_ADVISE (1 << 7)
+#define UVWASI_RIGHT_FD_ALLOCATE (1 << 8)
+#define UVWASI_RIGHT_PATH_CREATE_DIRECTORY (1 << 9)
+#define UVWASI_RIGHT_PATH_CREATE_FILE (1 << 10)
+#define UVWASI_RIGHT_PATH_LINK_SOURCE (1 << 11)
+#define UVWASI_RIGHT_PATH_LINK_TARGET (1 << 12)
+#define UVWASI_RIGHT_PATH_OPEN (1 << 13)
+#define UVWASI_RIGHT_FD_READDIR (1 << 14)
+#define UVWASI_RIGHT_PATH_READLINK (1 << 15)
+#define UVWASI_RIGHT_PATH_RENAME_SOURCE (1 << 16)
+#define UVWASI_RIGHT_PATH_RENAME_TARGET (1 << 17)
+#define UVWASI_RIGHT_PATH_FILESTAT_GET (1 << 18)
+#define UVWASI_RIGHT_PATH_FILESTAT_SET_SIZE (1 << 19)
+#define UVWASI_RIGHT_PATH_FILESTAT_SET_TIMES (1 << 20)
+#define UVWASI_RIGHT_FD_FILESTAT_GET (1 << 21)
+#define UVWASI_RIGHT_FD_FILESTAT_SET_SIZE (1 << 22)
+#define UVWASI_RIGHT_FD_FILESTAT_SET_TIMES (1 << 23)
+#define UVWASI_RIGHT_PATH_SYMLINK (1 << 24)
+#define UVWASI_RIGHT_PATH_REMOVE_DIRECTORY (1 << 25)
+#define UVWASI_RIGHT_PATH_UNLINK_FILE (1 << 26)
+#define UVWASI_RIGHT_POLL_FD_READWRITE (1 << 27)
+#define UVWASI_RIGHT_SOCK_SHUTDOWN (1 << 28)
+
+typedef uint16_t uvwasi_roflags_t; /* Bitfield */
+#define UVWASI_SOCK_RECV_DATA_TRUNCATED (1 << 0)
+
+typedef uint8_t uvwasi_sdflags_t; /* Bitfield */
+#define UVWASI_SHUT_RD (1 << 0)
+#define UVWASI_SHUT_WR (1 << 1)
+
+typedef uint16_t uvwasi_siflags_t; /* Bitfield */
+
+typedef uint8_t uvwasi_signal_t;
+#define UVWASI_SIGHUP 1
+#define UVWASI_SIGINT 2
+#define UVWASI_SIGQUIT 3
+#define UVWASI_SIGILL 4
+#define UVWASI_SIGTRAP 5
+#define UVWASI_SIGABRT 6
+#define UVWASI_SIGBUS 7
+#define UVWASI_SIGFPE 8
+#define UVWASI_SIGKILL 9
+#define UVWASI_SIGUSR1 10
+#define UVWASI_SIGSEGV 11
+#define UVWASI_SIGUSR2 12
+#define UVWASI_SIGPIPE 13
+#define UVWASI_SIGALRM 14
+#define UVWASI_SIGTERM 15
+#define UVWASI_SIGCHLD 16
+#define UVWASI_SIGCONT 17
+#define UVWASI_SIGSTOP 18
+#define UVWASI_SIGTSTP 19
+#define UVWASI_SIGTTIN 20
+#define UVWASI_SIGTTOU 21
+#define UVWASI_SIGURG 22
+#define UVWASI_SIGXCPU 23
+#define UVWASI_SIGXFSZ 24
+#define UVWASI_SIGVTALRM 25
+#define UVWASI_SIGPROF 26
+#define UVWASI_SIGWINCH 27
+#define UVWASI_SIGPOLL 28
+#define UVWASI_SIGPWR 29
+#define UVWASI_SIGSYS 30
+
+typedef uint16_t uvwasi_subclockflags_t; /* Bitfield */
+#define UVWASI_SUBSCRIPTION_CLOCK_ABSTIME (1 << 0)
+
+typedef uint64_t uvwasi_timestamp_t;
+
+typedef uint64_t uvwasi_userdata_t;
+
+typedef struct uvwasi_subscription_s {
+ uvwasi_userdata_t userdata;
+ uvwasi_eventtype_t type;
+ union {
+ struct {
+ uvwasi_userdata_t identifier;
+ uvwasi_clockid_t clock_id;
+ uvwasi_timestamp_t timeout;
+ uvwasi_timestamp_t precision;
+ uvwasi_subclockflags_t flags;
+ } clock;
+ struct {
+ uvwasi_fd_t fd;
+ } fd_readwrite;
+ } u;
+} uvwasi_subscription_t;
+
+typedef struct uvwasi_dirent_s {
+ uvwasi_dircookie_t d_next;
+ uvwasi_inode_t d_ino;
+ uint32_t d_namlen;
+ uvwasi_filetype_t d_type;
+} uvwasi_dirent_t;
+
+typedef struct uvwasi_fdstat_s {
+ uvwasi_filetype_t fs_filetype;
+ uvwasi_fdflags_t fs_flags;
+ uvwasi_rights_t fs_rights_base;
+ uvwasi_rights_t fs_rights_inheriting;
+} uvwasi_fdstat_t;
+
+typedef struct uvwasi_filestat_s {
+ uvwasi_device_t st_dev;
+ uvwasi_inode_t st_ino;
+ uvwasi_filetype_t st_filetype;
+ uvwasi_linkcount_t st_nlink;
+ uvwasi_filesize_t st_size;
+ uvwasi_timestamp_t st_atim;
+ uvwasi_timestamp_t st_mtim;
+ uvwasi_timestamp_t st_ctim;
+} uvwasi_filestat_t;
+
+typedef struct uvwasi_event_s {
+ uvwasi_userdata_t userdata;
+ uvwasi_errno_t error;
+ uvwasi_eventtype_t type;
+ union {
+ struct {
+ uvwasi_filesize_t nbytes;
+ uvwasi_eventrwflags_t flags;
+ } fd_readwrite;
+ } u;
+} uvwasi_event_t;
+
+typedef uint8_t uvwasi_whence_t;
+#define UVWASI_WHENCE_CUR 0
+#define UVWASI_WHENCE_END 1
+#define UVWASI_WHENCE_SET 2
+
+#endif /* __UVWASI_WASI_TYPES_H__ */