summaryrefslogtreecommitdiff
path: root/src/sys/uio.rs
diff options
context:
space:
mode:
authorAlan Somers <asomers@gmail.com>2021-06-13 19:42:13 -0600
committerAlan Somers <asomers@gmail.com>2021-06-13 20:13:32 -0600
commit48c7a07c428ccd680c23a18f269f3b887439d6d6 (patch)
treeb0e3dda01805352b450399b25cdc4903a70bbb53 /src/sys/uio.rs
parentcf57ae5b1273fe6796515351ff31e434a05e0e21 (diff)
downloadnix-48c7a07c428ccd680c23a18f269f3b887439d6d6.zip
Add nmount for FreeBSD.
Diffstat (limited to 'src/sys/uio.rs')
-rw-r--r--src/sys/uio.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/sys/uio.rs b/src/sys/uio.rs
index b8ae8605..48a0efd8 100644
--- a/src/sys/uio.rs
+++ b/src/sys/uio.rs
@@ -168,7 +168,7 @@ pub fn process_vm_readv(
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
-pub struct IoVec<T>(libc::iovec, PhantomData<T>);
+pub struct IoVec<T>(pub(crate) libc::iovec, PhantomData<T>);
impl<T> IoVec<T> {
#[inline]
@@ -184,6 +184,14 @@ impl<T> IoVec<T> {
}
impl<'a> IoVec<&'a [u8]> {
+ #[cfg(target_os = "freebsd")]
+ pub(crate) fn from_raw_parts(base: *mut c_void, len: usize) -> Self {
+ IoVec(libc::iovec {
+ iov_base: base,
+ iov_len: len
+ }, PhantomData)
+ }
+
pub fn from_slice(buf: &'a [u8]) -> IoVec<&'a [u8]> {
IoVec(libc::iovec {
iov_base: buf.as_ptr() as *mut c_void,