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
f95af95d87
Update README
2019-05-18 15:43:58 -07: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
bbdaf7b686
Re-enable cargo cache in travis ci
2019-05-16 06:10:23 -07:00
Jakub Konka
5ff4f57f97
Disable cargo cache in travis ci temporarily
2019-05-15 13:57:06 -07:00
Jakub Konka
5aa598520c
Rename C prefix from __wasi to wasi_common_
2019-05-15 13:57:06 -07:00
Jakub Konka
52eda1498a
Correctly unpack &mut [T] into *mut T and usize
2019-05-15 13:57:06 -07:00
Jakub Konka
006198eb92
Generate C bindings for all hostcalls
2019-05-15 13:57:06 -07:00
Jakub Konka
9ad16cc702
Add sanity tests
2019-05-15 13:57:06 -07:00
Jakub Konka
7f3c325cdf
Dereference pointers and call the hostcall fn
2019-05-15 13:57:06 -07:00
Jakub Konka
4a5910b4a3
Capture correct return type
2019-05-15 13:57:06 -07:00
Jakub Konka
7791166859
Generate C fn name prefixed with __wasi_
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
Dan Gohman
251504e8a7
Merge pull request #11 from CraneStation/docs
...
Clean up docs; specify minimum Rust version
2019-05-13 13:28:40 -07:00
Jakub Konka
66559e5702
Cleanup docs; specify minimum Rust version
2019-05-12 11:49:09 +02:00
Dan Gohman
a200b2133e
Merge pull request #10 from CraneStation/api
...
Add experimental struct with views into memory and ctx
2019-05-11 08:31:59 -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
328b8f3d91
Merge pull request #8 from afinch7/gitignore
...
add .gitignore
2019-05-10 07:39:15 +02:00
Jakub Konka
6b3b3d818b
Merge branch 'master' into gitignore
2019-05-10 07:34:59 +02:00
andy finch
1a478e8eff
remove rustfmt file from .gitignore
2019-05-09 18:59:58 -04:00
andy finch
3001a8b078
updated .gitignore to be compatible with cargo defaults
2019-05-09 14:24:27 -04:00
Dan Gohman
15ad680e58
Merge pull request #9 from CraneStation/code-conduct
...
Add contributing guide and code of conduct
2019-05-09 10:15:10 -07:00
Jakub Konka
696525cf58
Add contributing guide and code of conduct
2019-05-09 19:02:32 +02:00
afinch7
2c681f3130
add .gitignore
2019-05-09 12:35:39 -04:00
Dan Gohman
574b885656
Merge pull request #7 from CraneStation/missing-hostcalls
...
Add stubs for unimplemented hostcalls
2019-05-09 00:34:02 -07: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
Jakub Konka
56824194b2
Merge pull request #5 from kubkon/comment
...
Update a comment to refer to WASI.
2019-05-07 22:46:00 +02:00
Dan Gohman
5e702fa001
Update a comment to refer to WASI.
2019-05-07 12:48:49 -07:00
Dan Gohman
aaed8c409a
Merge pull request #4 from kubkon/port-wasi-types
...
Port WASI host types
2019-05-07 12:47:51 -07:00
Jakub Konka
2587fa0145
Port WASI host types
2019-05-07 21:44:16 +02:00
Dan Gohman
eb58f27bd5
Merge pull request #3 from kubkon/add-git-revision
...
Add git revision to track against lucet-wasi
2019-05-07 12:40:12 -07: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
Dan Gohman
7cb78efac4
Eliminate whitespace diffs with upstream LICENSE files.
2019-05-07 09:01:57 +02:00
Jakub Konka
b784ae875e
Add git revision to track against lucet-wasi
2019-05-07 08:58:24 +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