1
- use crate :: io:: { self , BorrowedCursor , IoSlice , IoSliceMut } ;
1
+ #[ cfg( target_os = "hermit" ) ]
2
+ use hermit_abi:: { EBADF , STDERR_FILENO , STDIN_FILENO , STDOUT_FILENO } ;
3
+ #[ cfg( target_family = "unix" ) ]
4
+ use libc:: { EBADF , STDERR_FILENO , STDIN_FILENO , STDOUT_FILENO } ;
5
+
6
+ #[ cfg( target_family = "unix" ) ]
7
+ use crate :: io:: BorrowedCursor ;
8
+ use crate :: io:: { self , IoSlice , IoSliceMut } ;
2
9
use crate :: mem:: ManuallyDrop ;
10
+ #[ cfg( target_os = "hermit" ) ]
11
+ use crate :: os:: hermit:: io:: FromRawFd ;
12
+ #[ cfg( target_family = "unix" ) ]
3
13
use crate :: os:: unix:: io:: FromRawFd ;
4
14
use crate :: sys:: fd:: FileDesc ;
5
15
@@ -15,15 +25,16 @@ impl Stdin {
15
25
16
26
impl io:: Read for Stdin {
17
27
fn read ( & mut self , buf : & mut [ u8 ] ) -> io:: Result < usize > {
18
- unsafe { ManuallyDrop :: new ( FileDesc :: from_raw_fd ( libc :: STDIN_FILENO ) ) . read ( buf) }
28
+ unsafe { ManuallyDrop :: new ( FileDesc :: from_raw_fd ( STDIN_FILENO ) ) . read ( buf) }
19
29
}
20
30
31
+ #[ cfg( not( target_os = "hermit" ) ) ]
21
32
fn read_buf ( & mut self , buf : BorrowedCursor < ' _ > ) -> io:: Result < ( ) > {
22
- unsafe { ManuallyDrop :: new ( FileDesc :: from_raw_fd ( libc :: STDIN_FILENO ) ) . read_buf ( buf) }
33
+ unsafe { ManuallyDrop :: new ( FileDesc :: from_raw_fd ( STDIN_FILENO ) ) . read_buf ( buf) }
23
34
}
24
35
25
36
fn read_vectored ( & mut self , bufs : & mut [ IoSliceMut < ' _ > ] ) -> io:: Result < usize > {
26
- unsafe { ManuallyDrop :: new ( FileDesc :: from_raw_fd ( libc :: STDIN_FILENO ) ) . read_vectored ( bufs) }
37
+ unsafe { ManuallyDrop :: new ( FileDesc :: from_raw_fd ( STDIN_FILENO ) ) . read_vectored ( bufs) }
27
38
}
28
39
29
40
#[ inline]
@@ -40,13 +51,11 @@ impl Stdout {
40
51
41
52
impl io:: Write for Stdout {
42
53
fn write ( & mut self , buf : & [ u8 ] ) -> io:: Result < usize > {
43
- unsafe { ManuallyDrop :: new ( FileDesc :: from_raw_fd ( libc :: STDOUT_FILENO ) ) . write ( buf) }
54
+ unsafe { ManuallyDrop :: new ( FileDesc :: from_raw_fd ( STDOUT_FILENO ) ) . write ( buf) }
44
55
}
45
56
46
57
fn write_vectored ( & mut self , bufs : & [ IoSlice < ' _ > ] ) -> io:: Result < usize > {
47
- unsafe {
48
- ManuallyDrop :: new ( FileDesc :: from_raw_fd ( libc:: STDOUT_FILENO ) ) . write_vectored ( bufs)
49
- }
58
+ unsafe { ManuallyDrop :: new ( FileDesc :: from_raw_fd ( STDOUT_FILENO ) ) . write_vectored ( bufs) }
50
59
}
51
60
52
61
#[ inline]
@@ -68,13 +77,11 @@ impl Stderr {
68
77
69
78
impl io:: Write for Stderr {
70
79
fn write ( & mut self , buf : & [ u8 ] ) -> io:: Result < usize > {
71
- unsafe { ManuallyDrop :: new ( FileDesc :: from_raw_fd ( libc :: STDERR_FILENO ) ) . write ( buf) }
80
+ unsafe { ManuallyDrop :: new ( FileDesc :: from_raw_fd ( STDERR_FILENO ) ) . write ( buf) }
72
81
}
73
82
74
83
fn write_vectored ( & mut self , bufs : & [ IoSlice < ' _ > ] ) -> io:: Result < usize > {
75
- unsafe {
76
- ManuallyDrop :: new ( FileDesc :: from_raw_fd ( libc:: STDERR_FILENO ) ) . write_vectored ( bufs)
77
- }
84
+ unsafe { ManuallyDrop :: new ( FileDesc :: from_raw_fd ( STDERR_FILENO ) ) . write_vectored ( bufs) }
78
85
}
79
86
80
87
#[ inline]
@@ -89,7 +96,7 @@ impl io::Write for Stderr {
89
96
}
90
97
91
98
pub fn is_ebadf ( err : & io:: Error ) -> bool {
92
- err. raw_os_error ( ) == Some ( libc :: EBADF as i32 )
99
+ err. raw_os_error ( ) == Some ( EBADF as i32 )
93
100
}
94
101
95
102
pub const STDIN_BUF_SIZE : usize = crate :: sys:: io:: DEFAULT_BUF_SIZE ;
0 commit comments