Skip to content

Commit

Permalink
rustfmt
Browse files Browse the repository at this point in the history
  • Loading branch information
iximeow committed Dec 19, 2019
1 parent 1963872 commit 802d3be
Show file tree
Hide file tree
Showing 9 changed files with 228 additions and 284 deletions.
18 changes: 13 additions & 5 deletions crates/wasi-common/src/ctx.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use crate::fdentry::{self, FdEntry};
use crate::virtfs::VirtualFile;
use crate::sys::fdentry_impl::OsHandle;
use crate::virtfs::VirtualFile;
use crate::{wasi, Error, Result};
use std::borrow::Borrow;
use std::collections::HashMap;
Expand Down Expand Up @@ -192,9 +192,14 @@ impl WasiCtxBuilder {
self
}

/// Add a thunk that will prooduce some FdEntry.
pub fn preopened_virt<P: AsRef<Path>>(mut self, dir: Box<dyn VirtualFile>, guest_path: P) -> Self {
self.virt_preopens.push((guest_path.as_ref().to_owned(), dir));
/// Add a thunk that will prooduce some FdEntry.
pub fn preopened_virt<P: AsRef<Path>>(
mut self,
dir: Box<dyn VirtualFile>,
guest_path: P,
) -> Self {
self.virt_preopens
.push((guest_path.as_ref().to_owned(), dir));
self
}

Expand Down Expand Up @@ -236,7 +241,10 @@ impl WasiCtxBuilder {
fds.insert(fd, f()?);
}
PendingFdEntry::File(f) => {
fds.insert(fd, FdEntry::from(fdentry::File::OsHandle(OsHandle::from(f)))?);
fds.insert(
fd,
FdEntry::from(fdentry::File::OsHandle(OsHandle::from(f)))?,
);
}
}
}
Expand Down
30 changes: 13 additions & 17 deletions crates/wasi-common/src/fdentry.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ use crate::sys::dev_null;
use crate::sys::fdentry_impl::{
descriptor_as_oshandle, determine_type_and_access_rights, OsHandle,
};
use crate::virtfs::VirtualFile;
use crate::{wasi, Error, Result};
use std::marker::PhantomData;
use std::mem::ManuallyDrop;
use std::ops::{Deref, DerefMut};
use std::path::PathBuf;
use std::{fs, io, fmt};
use crate::virtfs::VirtualFile;
use std::{fmt, fs, io};

pub(crate) enum File {
OsHandle(OsHandle),
Expand All @@ -19,9 +19,7 @@ impl File {
pub(crate) fn try_clone(&self) -> io::Result<File> {
match self {
File::OsHandle(file) => file.try_clone().map(|f| File::OsHandle(OsHandle::from(f))),
File::VirtualFile(virt) => {
virt.try_clone().map(|f| File::VirtualFile(f))
}
File::VirtualFile(virt) => virt.try_clone().map(|f| File::VirtualFile(f)),
}
}
}
Expand All @@ -30,7 +28,7 @@ impl fmt::Debug for File {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
File::OsHandle(file) => write!(f, "{:?}", file),
File::VirtualFile(_) => write!(f, "VirtualFile")
File::VirtualFile(_) => write!(f, "VirtualFile"),
}
}
}
Expand Down Expand Up @@ -89,17 +87,15 @@ pub(crate) struct FdEntry {
impl FdEntry {
pub(crate) fn from(file: File) -> Result<Self> {
match file {
File::OsHandle(handle) => {
unsafe { determine_type_and_access_rights(&handle) }.map(
|(file_type, rights_base, rights_inheriting)| Self {
file_type,
descriptor: Descriptor::File(File::OsHandle(handle)),
rights_base,
rights_inheriting,
preopen_path: None,
},
)
}
File::OsHandle(handle) => unsafe { determine_type_and_access_rights(&handle) }.map(
|(file_type, rights_base, rights_inheriting)| Self {
file_type,
descriptor: Descriptor::File(File::OsHandle(handle)),
rights_base,
rights_inheriting,
preopen_path: None,
},
),
File::VirtualFile(virt) => {
let file_type = virt.get_file_type();
let rights_base = virt.get_rights_base();
Expand Down
136 changes: 43 additions & 93 deletions crates/wasi-common/src/hostcalls_impl/fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,8 @@ pub(crate) unsafe fn fd_datasync(wasi_ctx: &WasiCtx, fd: wasi::__wasi_fd_t) -> R
.as_file()?;

match file {
File::OsHandle(fd) => {
fd.sync_data().map_err(Into::into)
},
File::VirtualFile(virt) => {
virt.datasync()
}
File::OsHandle(fd) => fd.sync_data().map_err(Into::into),
File::VirtualFile(virt) => virt.datasync(),
}
}

Expand Down Expand Up @@ -78,12 +74,8 @@ pub(crate) unsafe fn fd_pread(
let buf_size = iovs.iter().map(|v| v.buf_len).sum();
let mut buf = vec![0; buf_size];
let host_nread = match file {
File::OsHandle(fd) => {
hostcalls_impl::fd_pread(fd, &mut buf, offset)?
},
File::VirtualFile(virt) => {
virt.pread(&mut buf, offset)?
}
File::OsHandle(fd) => hostcalls_impl::fd_pread(fd, &mut buf, offset)?,
File::VirtualFile(virt) => virt.pread(&mut buf, offset)?,
};

let mut buf_offset = 0;
Expand Down Expand Up @@ -143,12 +135,8 @@ pub(crate) unsafe fn fd_pwrite(
));
}
let host_nwritten = match file {
File::OsHandle(fd) => {
hostcalls_impl::fd_pwrite(fd, &buf, offset)?
},
File::VirtualFile(virt) => {
virt.pwrite(buf.as_mut(), offset)?
}
File::OsHandle(fd) => hostcalls_impl::fd_pwrite(fd, &buf, offset)?,
File::VirtualFile(virt) => virt.pwrite(buf.as_mut(), offset)?,
};

trace!(" | *nwritten={:?}", host_nwritten);
Expand Down Expand Up @@ -182,15 +170,14 @@ pub(crate) unsafe fn fd_read(
.get_fd_entry_mut(fd)?
.as_descriptor_mut(wasi::__WASI_RIGHTS_FD_READ, 0)?
{
Descriptor::File(file) => {
match file {
File::OsHandle(file) => file.read_vectored(&mut iovs).map_err(Into::into),
File::VirtualFile(virt) => {
virt.read_vectored(&mut iovs)
}
}
}
Descriptor::Stdin => io::stdin().lock().read_vectored(&mut iovs).map_err(Into::into),
Descriptor::File(file) => match file {
File::OsHandle(file) => file.read_vectored(&mut iovs).map_err(Into::into),
File::VirtualFile(virt) => virt.read_vectored(&mut iovs),
},
Descriptor::Stdin => io::stdin()
.lock()
.read_vectored(&mut iovs)
.map_err(Into::into),
_ => return Err(Error::EBADF),
};

Expand Down Expand Up @@ -265,9 +252,7 @@ pub(crate) unsafe fn fd_seek(
};
let host_newoffset = match file {
File::OsHandle(fd) => fd.seek(pos)?,
File::VirtualFile(virt) => {
virt.seek(pos)?
}
File::VirtualFile(virt) => virt.seek(pos)?,
};

trace!(" | *newoffset={:?}", host_newoffset);
Expand All @@ -290,9 +275,7 @@ pub(crate) unsafe fn fd_tell(

let host_offset = match file {
File::OsHandle(fd) => fd.seek(SeekFrom::Current(0))?,
File::VirtualFile(virt) => {
virt.seek(SeekFrom::Current(0))?
}
File::VirtualFile(virt) => virt.seek(SeekFrom::Current(0))?,
};

trace!(" | *newoffset={:?}", host_offset);
Expand All @@ -313,9 +296,7 @@ pub(crate) unsafe fn fd_fdstat_get(

let fs_flags = match wasi_file {
File::OsHandle(wasi_fd) => hostcalls_impl::fd_fdstat_get(wasi_fd)?,
File::VirtualFile(virt) => {
virt.fdstat_get()
}
File::VirtualFile(virt) => virt.fdstat_get(),
};

let fe = wasi_ctx.get_fd_entry(fd)?;
Expand All @@ -339,12 +320,8 @@ pub(crate) unsafe fn fd_fdstat_set_flags(
let file = wasi_ctx.get_fd_entry(fd)?.as_descriptor(0, 0)?.as_file()?;

match file {
File::OsHandle(fd) => {
hostcalls_impl::fd_fdstat_set_flags(fd, fdflags)
},
File::VirtualFile(virt) => {
virt.fdstat_set_flags(fdflags)
}
File::OsHandle(fd) => hostcalls_impl::fd_fdstat_set_flags(fd, fdflags),
File::VirtualFile(virt) => virt.fdstat_set_flags(fdflags),
}
}

Expand Down Expand Up @@ -381,12 +358,8 @@ pub(crate) unsafe fn fd_sync(wasi_ctx: &WasiCtx, fd: wasi::__wasi_fd_t) -> Resul
.as_descriptor(wasi::__WASI_RIGHTS_FD_SYNC, 0)?
.as_file()?;
match file {
File::OsHandle(fd) => {
fd.sync_all().map_err(Into::into)
},
File::VirtualFile(virt) => {
virt.sync()
},
File::OsHandle(fd) => fd.sync_all().map_err(Into::into),
File::VirtualFile(virt) => virt.sync(),
}
}

Expand Down Expand Up @@ -416,9 +389,7 @@ pub(crate) unsafe fn fd_write(
{
Descriptor::File(file) => match file {
File::OsHandle(file) => file.write_vectored(&iovs)?,
File::VirtualFile(virt) => {
virt.write_vectored(&iovs)?
}
File::VirtualFile(virt) => virt.write_vectored(&iovs)?,
},
Descriptor::Stdin => return Err(Error::EBADF),
Descriptor::Stdout => {
Expand Down Expand Up @@ -458,12 +429,8 @@ pub(crate) unsafe fn fd_advise(
.as_file()?;

match file {
File::OsHandle(fd) => {
hostcalls_impl::fd_advise(fd, advice, offset, len)
},
File::VirtualFile(virt) => {
virt.advise(advice, offset, len)
}
File::OsHandle(fd) => hostcalls_impl::fd_advise(fd, advice, offset, len),
File::VirtualFile(virt) => virt.advise(advice, offset, len),
}
}

Expand Down Expand Up @@ -496,10 +463,8 @@ pub(crate) unsafe fn fd_allocate(
} else {
Ok(())
}
},
File::VirtualFile(virt) => {
virt.allocate(offset, len)
}
File::VirtualFile(virt) => virt.allocate(offset, len),
}
}

Expand Down Expand Up @@ -633,21 +598,17 @@ pub(crate) unsafe fn path_open(
!= 0;

let fd = resolved.open_with(read, write, oflags, fs_flags)?;
// hostcalls_impl::path_open(resolved, read, write, oflags, fs_flags)?;
// hostcalls_impl::path_open(resolved, read, write, oflags, fs_flags)?;

let mut fe = FdEntry::from(fd)?;
// Determine the type of the new file descriptor and which rights contradict with this type
let (_ty, max_base, max_inheriting) = match fe.as_descriptor(0, 0)?.as_file()? {
File::OsHandle(file) => {
determine_type_rights(file)?
},
File::VirtualFile(virt) => {
(
virt.get_file_type(),
virt.get_rights_base(),
virt.get_rights_inheriting(),
)
}
File::OsHandle(file) => determine_type_rights(file)?,
File::VirtualFile(virt) => (
virt.get_file_type(),
virt.get_rights_base(),
virt.get_rights_inheriting(),
),
};
fe.rights_base &= max_base;
fe.rights_inheriting &= max_inheriting;
Expand Down Expand Up @@ -764,9 +725,7 @@ pub(crate) unsafe fn fd_filestat_get(

let host_filestat = match file {
File::OsHandle(fd) => hostcalls_impl::fd_filestat_get_impl(&fd)?,
File::VirtualFile(virt) => {
virt.filestat_get()?
}
File::VirtualFile(virt) => virt.filestat_get()?,
};

trace!(" | *filestat_ptr={:?}", host_filestat);
Expand Down Expand Up @@ -831,12 +790,8 @@ pub(crate) fn fd_filestat_set_times_impl(
None
};
match file {
File::OsHandle(fd) => {
set_file_handle_times(fd, atim, mtim).map_err(Into::into)
},
File::VirtualFile(virt) => {
virt.filestat_set_times(atim, mtim)
}
File::OsHandle(fd) => set_file_handle_times(fd, atim, mtim).map_err(Into::into),
File::VirtualFile(virt) => virt.filestat_set_times(atim, mtim),
}
}

Expand All @@ -857,12 +812,8 @@ pub(crate) unsafe fn fd_filestat_set_size(
return Err(Error::E2BIG);
}
match file {
File::OsHandle(fd) => {
fd.set_len(st_size).map_err(Into::into)
},
File::VirtualFile(virt) => {
virt.filestat_set_size(st_size)
}
File::OsHandle(fd) => fd.set_len(st_size).map_err(Into::into),
File::VirtualFile(virt) => virt.filestat_set_size(st_size),
}
}

Expand Down Expand Up @@ -1124,7 +1075,10 @@ pub(crate) unsafe fn fd_readdir(

trace!(" | (buf,buf_len)={:?}", host_buf);

fn copy_entities<T: Iterator<Item = Result<Dirent>>>(iter: T, mut host_buf: &mut [u8]) -> Result<usize> {
fn copy_entities<T: Iterator<Item = Result<Dirent>>>(
iter: T,
mut host_buf: &mut [u8],
) -> Result<usize> {
let mut host_bufused = 0;
for dirent in iter {
let dirent_raw = dirent?.to_wasi_raw()?;
Expand All @@ -1141,12 +1095,8 @@ pub(crate) unsafe fn fd_readdir(
}

let host_bufused = match file {
File::OsHandle(file) => {
copy_entities(hostcalls_impl::fd_readdir(file, cookie)?, host_buf)?
},
File::VirtualFile(virt) => {
copy_entities(virt.readdir(cookie)?, host_buf)?
}
File::OsHandle(file) => copy_entities(hostcalls_impl::fd_readdir(file, cookie)?, host_buf)?,
File::VirtualFile(virt) => copy_entities(virt.readdir(cookie)?, host_buf)?,
};

trace!(" | *buf_used={:?}", host_bufused);
Expand Down
Loading

0 comments on commit 802d3be

Please sign in to comment.