Commit Graph

124 Commits

Author SHA1 Message Date
Jakub Konka
c3ff3cf075 Add template for Windows impl 2019-05-24 11:02:03 -07:00
Jakub Konka
7605584691 Move *nix specific implementation to separate module 2019-05-24 11:02:03 -07:00
Dan Gohman
3372e47e5a Fix fd_fdstat_set_rights to set the rights.
After checking that no new rights are being added, actually set the
rights, which may be a subset of the original rights.
2019-05-20 10:22:07 +02:00
Dan Gohman
c5bda1f4e1 Fix symlink resolution on Linux and FreeBSD.
Linux's open returns ENOTDIR when used with O_DIRECTORY|O_NOFOLLOW and
the path is a symlink. Update the code to expect this.

FreeBSD's open returns EMLINK instead of ELOOP when using O_NOFOLLOW on
symlink. Update the code to expect this.
2019-05-20 10:22:07 +02:00
Dan Gohman
9823bf6196 Change path_open to not create files with execute privleges.
WASI currently lacks the ability to specify the full UNIX access control
information when creating files and directories, so for now just avoid
creating executable files and rely on the umask.
2019-05-20 10:22:07 +02:00
Dan Gohman
32da43f600 Handle set-size rights correctly when truncating a file.
If a path_open call is requesting __WASI_RIGHT_FD_FILESTAT_SET_SIZE,
interpret that as a request for write privleges. If it is requesting
O_TRUNC, require __WASI_RIGHT_PATH_FILESTAT_SET_SIZE, since this is
a path operation rather than a FD operation.
2019-05-20 10:22:07 +02:00
Dan Gohman
d20d787bb7 Don't grant __WASI_RIGHT_FD_FILESTAT_SET_SIZE for directories.
RIGHTS_DIRECTORY_BASE should not include
__WASI_RIGHT_FD_FILESTAT_SET_SIZE, because that would imply the ability
to set the size of a directory.
2019-05-20 10:22:07 +02:00
Jakub Konka
14ba585edf Reorganise hostcalls into submodules 2019-05-18 15:43:58 -07:00
Jakub Konka
b9871648b2 Import all changes from lucet-wasi 2019-05-18 15:43:58 -07:00
Jakub Konka
006198eb92 Generate C bindings for all hostcalls 2019-05-15 13:57:06 -07:00
Jakub Konka
e552b19dfe Add placeholder for cbindgen proc_macro_attribute 2019-05-15 13:57:06 -07:00
Dan Gohman
eb1cf8b0a1 Make users of dec_slice_of safe.
Make `dec_slice_of` return a slice rather than a pointer-length pair,
freeing its users from having to call the unsafe `slice::from_raw_parts`.

This requires splitting `dec_slice_of` and `dec_ptr` into mut and
non-mut versions, and reorganizing poll_oneoff a little to avoid
borrow-checker errors -- decoded slices do alias the main memory, so
make sure functions only need one or the other.
2019-05-14 16:14:22 -07:00
Jakub Konka
8a68375f89 Move TODO about proc_exit from wasmtime 2019-05-14 06:17:35 -07:00
Jakub Konka
8b09f321ac Make memory fns safe wherever possible 2019-05-13 14:27:56 -07:00
Jakub Konka
75ad92b0f3 Insulate API from intricacies of memory mgmt of calling runtimes 2019-05-11 16:50:52 +02:00
Jakub Konka
751a1a1f7b Add experimental struct with views memory and ctxs
This struct is heavily taking from Lucet's Vmctx struct.
2019-05-10 22:23:35 +02:00
Jakub Konka
8090f8791f Add stubs for unimplemented hostcalls 2019-05-08 08:04:16 +02:00
Dan Gohman
c6db9f3dff Merge pull request #6 from kubkon/dev-ops
Set up CI, add format and test scripts.
2019-05-07 22:44:39 -07:00
Jakub Konka
19a4f00752 Set up CI, add format and test scripts.
Remove unused Cargo dependencies.
2019-05-08 07:39:54 +02:00
Dan Gohman
5e702fa001 Update a comment to refer to WASI. 2019-05-07 12:48:49 -07:00
Jakub Konka
2587fa0145 Port WASI host types 2019-05-07 21:44:16 +02:00
Dan Gohman
8335484870 Update wasm32.rs to name the union fields.
The upstream wasi/core.h header switched from anonymous unions to unions
named `u`. This patch updates wasm32.rs to reflect this, as was done in
wasmtime 5b77f952.
2019-05-07 21:37:02 +02:00
Jakub Konka
ce6f9cb165 Changes to compile in lucet 2019-05-06 09:51:54 +02:00
Jakub Konka
cd39c1dfd8 Extract common interface from lucet-wasi 2019-05-04 18:20:21 +02:00