xref: /sqlite-3.40.0/ext/wasm/api/sqlite3-wasi.h (revision 3961b263)
1*3961b263Sstephan /**
2*3961b263Sstephan    Dummy function stubs to get sqlite3.c compiling with
3*3961b263Sstephan    wasi-sdk. This requires, in addition:
4*3961b263Sstephan 
5*3961b263Sstephan    -D_WASI_EMULATED_MMAN -D_WASI_EMULATED_GETPID
6*3961b263Sstephan 
7*3961b263Sstephan    -lwasi-emulated-getpid
8*3961b263Sstephan */
9*3961b263Sstephan typedef unsigned mode_t;
10*3961b263Sstephan int fchmod(int fd, mode_t mode);
fchmod(int fd,mode_t mode)11*3961b263Sstephan int fchmod(int fd, mode_t mode){
12*3961b263Sstephan   return (fd && mode) ? 0 : 0;
13*3961b263Sstephan }
14*3961b263Sstephan typedef unsigned uid_t;
15*3961b263Sstephan typedef uid_t gid_t;
16*3961b263Sstephan int fchown(int fd, uid_t owner, gid_t group);
fchown(int fd,uid_t owner,gid_t group)17*3961b263Sstephan int fchown(int fd, uid_t owner, gid_t group){
18*3961b263Sstephan   return (fd && owner && group) ? 0 : 0;
19*3961b263Sstephan }
20*3961b263Sstephan uid_t geteuid(void);
geteuid(void)21*3961b263Sstephan uid_t geteuid(void){return 0;}
22*3961b263Sstephan #if !defined(F_WRLCK)
23*3961b263Sstephan enum {
24*3961b263Sstephan F_WRLCK,
25*3961b263Sstephan F_RDLCK,
26*3961b263Sstephan F_GETLK,
27*3961b263Sstephan F_SETLK,
28*3961b263Sstephan F_UNLCK
29*3961b263Sstephan };
30*3961b263Sstephan #endif
31*3961b263Sstephan 
32*3961b263Sstephan #undef HAVE_PREAD
33*3961b263Sstephan 
34*3961b263Sstephan #include <wasi/api.h>
35*3961b263Sstephan #define WASM__KEEP __attribute__((used))
36*3961b263Sstephan 
37*3961b263Sstephan #if 0
38*3961b263Sstephan /**
39*3961b263Sstephan    wasi-sdk cannot build sqlite3's default VFS without at least the following
40*3961b263Sstephan    functions. They are apparently syscalls which clients have to implement or
41*3961b263Sstephan    otherwise obtain.
42*3961b263Sstephan 
43*3961b263Sstephan    https://github.com/WebAssembly/WASI/blob/main/phases/snapshot/docs.md
44*3961b263Sstephan */
45*3961b263Sstephan environ_get
46*3961b263Sstephan environ_sizes_get
47*3961b263Sstephan clock_time_get
48*3961b263Sstephan fd_close
49*3961b263Sstephan fd_fdstat_get
50*3961b263Sstephan fd_fdstat_set_flags
51*3961b263Sstephan fd_filestat_get
52*3961b263Sstephan fd_filestat_set_size
53*3961b263Sstephan fd_pread
54*3961b263Sstephan fd_prestat_get
55*3961b263Sstephan fd_prestat_dir_name
56*3961b263Sstephan fd_read
57*3961b263Sstephan fd_seek
58*3961b263Sstephan fd_sync
59*3961b263Sstephan fd_write
60*3961b263Sstephan path_create_directory
61*3961b263Sstephan path_filestat_get
62*3961b263Sstephan path_filestat_set_times
63*3961b263Sstephan path_open
64*3961b263Sstephan path_readlink
65*3961b263Sstephan path_remove_directory
66*3961b263Sstephan path_unlink_file
67*3961b263Sstephan poll_oneoff
68*3961b263Sstephan proc_exit
69*3961b263Sstephan #endif
70