File tree Expand file tree Collapse file tree 11 files changed +249
-376
lines changed Expand file tree Collapse file tree 11 files changed +249
-376
lines changed Original file line number Diff line number Diff line change @@ -27,14 +27,24 @@ pub fn args() -> Args {
2727 } )
2828}
2929
30+ fn cvt_wasi ( r : u16 ) -> crate :: io:: Result < ( ) > {
31+ if r != 0 {
32+ Err ( Error :: from_raw_os_error ( r as i32 ) )
33+ } else {
34+ Ok ( ( ) )
35+ }
36+ }
37+
3038fn maybe_args ( ) -> io:: Result < Args > {
39+ // FIXME: replace with safe functions
40+ use wasi:: wasi_unstable:: raw:: { __wasi_args_sizes_get, __wasi_args_get} ;
3141 unsafe {
3242 let ( mut argc, mut argv_buf_size) = ( 0 , 0 ) ;
33- cvt_wasi ( libc :: __wasi_args_sizes_get ( & mut argc, & mut argv_buf_size) ) ?;
43+ cvt_wasi ( __wasi_args_sizes_get ( & mut argc, & mut argv_buf_size) ) ?;
3444
35- let mut argc = vec ! [ core:: ptr:: null_mut:: <libc :: c_char >( ) ; argc] ;
45+ let mut argc = vec ! [ core:: ptr:: null_mut:: <u8 >( ) ; argc] ;
3646 let mut argv_buf = vec ! [ 0 ; argv_buf_size] ;
37- cvt_wasi ( libc :: __wasi_args_get ( argc. as_mut_ptr ( ) , argv_buf. as_mut_ptr ( ) ) ) ?;
47+ cvt_wasi ( __wasi_args_get ( argc. as_mut_ptr ( ) , argv_buf. as_mut_ptr ( ) ) ) ?;
3848
3949 let args = argc. into_iter ( )
4050 . map ( |ptr| CStr :: from_ptr ( ptr) . to_bytes ( ) . to_vec ( ) )
Original file line number Diff line number Diff line change @@ -336,16 +336,16 @@ pub trait FileTypeExt {
336336
337337impl FileTypeExt for fs:: FileType {
338338 fn is_block_device ( & self ) -> bool {
339- self . as_inner ( ) . bits ( ) == libc :: __WASI_FILETYPE_BLOCK_DEVICE
339+ self . as_inner ( ) . bits ( ) == wasi :: FILETYPE_BLOCK_DEVICE
340340 }
341341 fn is_character_device ( & self ) -> bool {
342- self . as_inner ( ) . bits ( ) == libc :: __WASI_FILETYPE_CHARACTER_DEVICE
342+ self . as_inner ( ) . bits ( ) == wasi :: FILETYPE_CHARACTER_DEVICE
343343 }
344344 fn is_socket_dgram ( & self ) -> bool {
345- self . as_inner ( ) . bits ( ) == libc :: __WASI_FILETYPE_SOCKET_DGRAM
345+ self . as_inner ( ) . bits ( ) == wasi :: FILETYPE_SOCKET_DGRAM
346346 }
347347 fn is_socket_stream ( & self ) -> bool {
348- self . as_inner ( ) . bits ( ) == libc :: __WASI_FILETYPE_SOCKET_STREAM
348+ self . as_inner ( ) . bits ( ) == wasi :: FILETYPE_SOCKET_STREAM
349349 }
350350}
351351
Original file line number Diff line number Diff line change @@ -8,6 +8,8 @@ use crate::sys;
88use crate :: net;
99use crate :: sys_common:: { AsInner , FromInner , IntoInner } ;
1010
11+ use wasi:: wasi_unstable as wasi;
12+
1113/// Raw file descriptors.
1214pub type RawFd = u32 ;
1315
@@ -125,18 +127,18 @@ impl IntoRawFd for fs::File {
125127
126128impl AsRawFd for io:: Stdin {
127129 fn as_raw_fd ( & self ) -> RawFd {
128- libc :: STDIN_FILENO as u32
130+ wasi :: STDIN_FD
129131 }
130132}
131133
132134impl AsRawFd for io:: Stdout {
133135 fn as_raw_fd ( & self ) -> RawFd {
134- libc :: STDOUT_FILENO as u32
136+ wasi :: STDOUT_FD
135137 }
136138}
137139
138140impl AsRawFd for io:: Stderr {
139141 fn as_raw_fd ( & self ) -> RawFd {
140- libc :: STDERR_FILENO as u32
142+ wasi :: STDERR_FD
141143 }
142144}
You can’t perform that action at this time.
0 commit comments