2
2
#![ allow( improper_ctypes) ]
3
3
4
4
use { Errno , Result } ;
5
- use libc:: { c_int, c_void, size_t, off_t} ;
5
+ use libc:: { self , c_int, c_void, size_t, off_t} ;
6
6
use std:: marker:: PhantomData ;
7
7
use std:: os:: unix:: io:: RawFd ;
8
8
9
9
mod ffi {
10
- use super :: IoVec ;
11
- use libc:: { ssize_t, c_int , size_t, off_t, c_void} ;
10
+ // use super::IoVec;
11
+ use libc:: { ssize_t, size_t, off_t, c_void} ;
12
12
use std:: os:: unix:: io:: RawFd ;
13
13
14
- extern {
15
- // vectorized version of write
16
- // doc: http://man7.org/linux/man-pages/man2/writev.2.html
17
- pub fn writev ( fd : RawFd , iov : * const IoVec < & [ u8 ] > , iovcnt : c_int ) -> ssize_t ;
18
-
19
- // vectorized version of read
20
- // doc: http://man7.org/linux/man-pages/man2/readv.2.html
21
- pub fn readv ( fd : RawFd , iov : * const IoVec < & mut [ u8 ] > , iovcnt : c_int ) -> ssize_t ;
14
+ pub use libc:: { readv, writev} ;
22
15
16
+ extern {
23
17
// vectorized write at a specified offset
24
18
// doc: http://man7.org/linux/man-pages/man2/pwritev.2.html
25
19
#[ cfg( feature = "preadv_pwritev" ) ]
@@ -44,14 +38,14 @@ mod ffi {
44
38
}
45
39
}
46
40
47
- pub fn writev ( fd : RawFd , iov : & [ IoVec < & [ u8 ] > ] ) -> Result < usize > {
48
- let res = unsafe { ffi:: writev ( fd, iov. as_ptr ( ) , iov. len ( ) as c_int ) } ;
41
+ pub fn writev ( fd : RawFd , iov : & [ & [ u8 ] ] ) -> Result < usize > {
42
+ let res = unsafe { ffi:: writev ( fd, iov. as_ptr ( ) as * const libc :: iovec , iov. len ( ) as c_int ) } ;
49
43
50
44
Errno :: result ( res) . map ( |r| r as usize )
51
45
}
52
46
53
- pub fn readv ( fd : RawFd , iov : & mut [ IoVec < & mut [ u8 ] > ] ) -> Result < usize > {
54
- let res = unsafe { ffi:: readv ( fd, iov. as_ptr ( ) , iov. len ( ) as c_int ) } ;
47
+ pub fn readv ( fd : RawFd , iov : & mut [ & mut [ u8 ] ] ) -> Result < usize > {
48
+ let res = unsafe { ffi:: readv ( fd, iov. as_ptr ( ) as * const libc :: iovec , iov. len ( ) as c_int ) } ;
55
49
56
50
Errno :: result ( res) . map ( |r| r as usize )
57
51
}
0 commit comments