Rename OFlag/AtFlag to OFlags/AtFlags. (#1951)
* Rename `OFlag`/`AtFlag` to `OFlags`/`AtFlags`. This makes them consistent with `PollFlags` and common usage of bitflags types in Rust code in general. POSIX does tend to use names like `oflag` and `flag`, so this is in mild disagreement with POSIX style, however I find this particular aspects of POSIX confusing because these values hold multiple flags. * rustfmt
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
use crate::old::snapshot_0::wasi::{self, WasiResult};
|
||||
use std::convert::TryFrom;
|
||||
|
||||
pub(crate) const O_RSYNC: yanix::file::OFlag = yanix::file::OFlag::SYNC;
|
||||
pub(crate) const O_RSYNC: yanix::file::OFlags = yanix::file::OFlags::SYNC;
|
||||
|
||||
pub(crate) fn stdev_from_nix(dev: libc::dev_t) -> WasiResult<wasi::__wasi_device_t> {
|
||||
wasi::__wasi_device_t::try_from(dev).map_err(Into::into)
|
||||
|
||||
@@ -3,12 +3,12 @@ use crate::old::snapshot_0::wasi::{WasiError, WasiResult};
|
||||
use std::os::unix::prelude::AsRawFd;
|
||||
|
||||
pub(crate) fn path_unlink_file(resolved: PathGet) -> WasiResult<()> {
|
||||
use yanix::file::{unlinkat, AtFlag};
|
||||
use yanix::file::{unlinkat, AtFlags};
|
||||
match unsafe {
|
||||
unlinkat(
|
||||
resolved.dirfd().as_raw_fd(),
|
||||
resolved.path(),
|
||||
AtFlag::empty(),
|
||||
AtFlags::empty(),
|
||||
)
|
||||
} {
|
||||
Err(err) => {
|
||||
@@ -27,7 +27,7 @@ pub(crate) fn path_unlink_file(resolved: PathGet) -> WasiResult<()> {
|
||||
fstatat(
|
||||
resolved.dirfd().as_raw_fd(),
|
||||
resolved.path(),
|
||||
AtFlag::SYMLINK_NOFOLLOW,
|
||||
AtFlags::SYMLINK_NOFOLLOW,
|
||||
)
|
||||
} {
|
||||
Ok(stat) => {
|
||||
@@ -48,7 +48,7 @@ pub(crate) fn path_unlink_file(resolved: PathGet) -> WasiResult<()> {
|
||||
}
|
||||
|
||||
pub(crate) fn path_symlink(old_path: &str, resolved: PathGet) -> WasiResult<()> {
|
||||
use yanix::file::{fstatat, symlinkat, AtFlag};
|
||||
use yanix::file::{fstatat, symlinkat, AtFlags};
|
||||
|
||||
log::debug!("path_symlink old_path = {:?}", old_path);
|
||||
log::debug!("path_symlink resolved = {:?}", resolved);
|
||||
@@ -66,7 +66,7 @@ pub(crate) fn path_symlink(old_path: &str, resolved: PathGet) -> WasiResult<()>
|
||||
fstatat(
|
||||
resolved.dirfd().as_raw_fd(),
|
||||
new_path,
|
||||
AtFlag::SYMLINK_NOFOLLOW,
|
||||
AtFlags::SYMLINK_NOFOLLOW,
|
||||
)
|
||||
} {
|
||||
Ok(_) => return Err(WasiError::EEXIST),
|
||||
@@ -82,7 +82,7 @@ pub(crate) fn path_symlink(old_path: &str, resolved: PathGet) -> WasiResult<()>
|
||||
}
|
||||
|
||||
pub(crate) fn path_rename(resolved_old: PathGet, resolved_new: PathGet) -> WasiResult<()> {
|
||||
use yanix::file::{fstatat, renameat, AtFlag};
|
||||
use yanix::file::{fstatat, renameat, AtFlags};
|
||||
match unsafe {
|
||||
renameat(
|
||||
resolved_old.dirfd().as_raw_fd(),
|
||||
@@ -107,7 +107,7 @@ pub(crate) fn path_rename(resolved_old: PathGet, resolved_new: PathGet) -> WasiR
|
||||
fstatat(
|
||||
resolved_old.dirfd().as_raw_fd(),
|
||||
resolved_old.path(),
|
||||
AtFlag::SYMLINK_NOFOLLOW,
|
||||
AtFlags::SYMLINK_NOFOLLOW,
|
||||
)
|
||||
} {
|
||||
Ok(_) => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use crate::old::snapshot_0::wasi::{self, WasiResult};
|
||||
|
||||
pub(crate) const O_RSYNC: yanix::file::OFlag = yanix::file::OFlag::RSYNC;
|
||||
pub(crate) const O_RSYNC: yanix::file::OFlags = yanix::file::OFlags::RSYNC;
|
||||
|
||||
pub(crate) fn stdev_from_nix(dev: libc::dev_t) -> WasiResult<wasi::__wasi_device_t> {
|
||||
Ok(wasi::__wasi_device_t::from(dev))
|
||||
|
||||
@@ -36,12 +36,12 @@ pub(crate) unsafe fn determine_type_and_access_rights<Fd: AsRawFd>(
|
||||
)> {
|
||||
let (file_type, mut rights_base, rights_inheriting) = determine_type_rights(fd)?;
|
||||
|
||||
use yanix::{fcntl, file::OFlag};
|
||||
use yanix::{fcntl, file::OFlags};
|
||||
let flags = fcntl::get_status_flags(fd.as_raw_fd())?;
|
||||
let accmode = flags & OFlag::ACCMODE;
|
||||
if accmode == OFlag::RDONLY {
|
||||
let accmode = flags & OFlags::ACCMODE;
|
||||
if accmode == OFlags::RDONLY {
|
||||
rights_base &= !wasi::__WASI_RIGHTS_FD_WRITE;
|
||||
} else if accmode == OFlag::WRONLY {
|
||||
} else if accmode == OFlags::WRONLY {
|
||||
rights_base &= !wasi::__WASI_RIGHTS_FD_READ;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ use crate::old::snapshot_0::{helpers, sys::unix::sys_impl};
|
||||
use std::ffi::OsStr;
|
||||
use std::io;
|
||||
use std::os::unix::prelude::OsStrExt;
|
||||
use yanix::file::OFlag;
|
||||
use yanix::file::OFlags;
|
||||
|
||||
pub(crate) use sys_impl::host_impl::*;
|
||||
|
||||
@@ -104,59 +104,59 @@ impl From<io::Error> for WasiError {
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn nix_from_fdflags(fdflags: wasi::__wasi_fdflags_t) -> OFlag {
|
||||
let mut nix_flags = OFlag::empty();
|
||||
pub(crate) fn nix_from_fdflags(fdflags: wasi::__wasi_fdflags_t) -> OFlags {
|
||||
let mut nix_flags = OFlags::empty();
|
||||
if fdflags & wasi::__WASI_FDFLAGS_APPEND != 0 {
|
||||
nix_flags.insert(OFlag::APPEND);
|
||||
nix_flags.insert(OFlags::APPEND);
|
||||
}
|
||||
if fdflags & wasi::__WASI_FDFLAGS_DSYNC != 0 {
|
||||
nix_flags.insert(OFlag::DSYNC);
|
||||
nix_flags.insert(OFlags::DSYNC);
|
||||
}
|
||||
if fdflags & wasi::__WASI_FDFLAGS_NONBLOCK != 0 {
|
||||
nix_flags.insert(OFlag::NONBLOCK);
|
||||
nix_flags.insert(OFlags::NONBLOCK);
|
||||
}
|
||||
if fdflags & wasi::__WASI_FDFLAGS_RSYNC != 0 {
|
||||
nix_flags.insert(O_RSYNC);
|
||||
}
|
||||
if fdflags & wasi::__WASI_FDFLAGS_SYNC != 0 {
|
||||
nix_flags.insert(OFlag::SYNC);
|
||||
nix_flags.insert(OFlags::SYNC);
|
||||
}
|
||||
nix_flags
|
||||
}
|
||||
|
||||
pub(crate) fn fdflags_from_nix(oflags: OFlag) -> wasi::__wasi_fdflags_t {
|
||||
pub(crate) fn fdflags_from_nix(oflags: OFlags) -> wasi::__wasi_fdflags_t {
|
||||
let mut fdflags = 0;
|
||||
if oflags.contains(OFlag::APPEND) {
|
||||
if oflags.contains(OFlags::APPEND) {
|
||||
fdflags |= wasi::__WASI_FDFLAGS_APPEND;
|
||||
}
|
||||
if oflags.contains(OFlag::DSYNC) {
|
||||
if oflags.contains(OFlags::DSYNC) {
|
||||
fdflags |= wasi::__WASI_FDFLAGS_DSYNC;
|
||||
}
|
||||
if oflags.contains(OFlag::NONBLOCK) {
|
||||
if oflags.contains(OFlags::NONBLOCK) {
|
||||
fdflags |= wasi::__WASI_FDFLAGS_NONBLOCK;
|
||||
}
|
||||
if oflags.contains(O_RSYNC) {
|
||||
fdflags |= wasi::__WASI_FDFLAGS_RSYNC;
|
||||
}
|
||||
if oflags.contains(OFlag::SYNC) {
|
||||
if oflags.contains(OFlags::SYNC) {
|
||||
fdflags |= wasi::__WASI_FDFLAGS_SYNC;
|
||||
}
|
||||
fdflags
|
||||
}
|
||||
|
||||
pub(crate) fn nix_from_oflags(oflags: wasi::__wasi_oflags_t) -> OFlag {
|
||||
let mut nix_flags = OFlag::empty();
|
||||
pub(crate) fn nix_from_oflags(oflags: wasi::__wasi_oflags_t) -> OFlags {
|
||||
let mut nix_flags = OFlags::empty();
|
||||
if oflags & wasi::__WASI_OFLAGS_CREAT != 0 {
|
||||
nix_flags.insert(OFlag::CREAT);
|
||||
nix_flags.insert(OFlags::CREAT);
|
||||
}
|
||||
if oflags & wasi::__WASI_OFLAGS_DIRECTORY != 0 {
|
||||
nix_flags.insert(OFlag::DIRECTORY);
|
||||
nix_flags.insert(OFlags::DIRECTORY);
|
||||
}
|
||||
if oflags & wasi::__WASI_OFLAGS_EXCL != 0 {
|
||||
nix_flags.insert(OFlag::EXCL);
|
||||
nix_flags.insert(OFlags::EXCL);
|
||||
}
|
||||
if oflags & wasi::__WASI_OFLAGS_TRUNC != 0 {
|
||||
nix_flags.insert(OFlag::TRUNC);
|
||||
nix_flags.insert(OFlags::TRUNC);
|
||||
}
|
||||
nix_flags
|
||||
}
|
||||
|
||||
@@ -72,14 +72,14 @@ pub(crate) fn path_create_directory(resolved: PathGet) -> WasiResult<()> {
|
||||
}
|
||||
|
||||
pub(crate) fn path_link(resolved_old: PathGet, resolved_new: PathGet) -> WasiResult<()> {
|
||||
use yanix::file::{linkat, AtFlag};
|
||||
use yanix::file::{linkat, AtFlags};
|
||||
unsafe {
|
||||
linkat(
|
||||
resolved_old.dirfd().as_raw_fd(),
|
||||
resolved_old.path(),
|
||||
resolved_new.dirfd().as_raw_fd(),
|
||||
resolved_new.path(),
|
||||
AtFlag::SYMLINK_FOLLOW,
|
||||
AtFlags::SYMLINK_FOLLOW,
|
||||
)
|
||||
}
|
||||
.map_err(Into::into)
|
||||
@@ -92,18 +92,18 @@ pub(crate) fn path_open(
|
||||
oflags: wasi::__wasi_oflags_t,
|
||||
fs_flags: wasi::__wasi_fdflags_t,
|
||||
) -> WasiResult<File> {
|
||||
use yanix::file::{fstatat, openat, AtFlag, FileType, Mode, OFlag};
|
||||
use yanix::file::{fstatat, openat, AtFlags, FileType, Mode, OFlags};
|
||||
|
||||
let mut nix_all_oflags = if read && write {
|
||||
OFlag::RDWR
|
||||
OFlags::RDWR
|
||||
} else if write {
|
||||
OFlag::WRONLY
|
||||
OFlags::WRONLY
|
||||
} else {
|
||||
OFlag::RDONLY
|
||||
OFlags::RDONLY
|
||||
};
|
||||
|
||||
// on non-Capsicum systems, we always want nofollow
|
||||
nix_all_oflags.insert(OFlag::NOFOLLOW);
|
||||
nix_all_oflags.insert(OFlags::NOFOLLOW);
|
||||
|
||||
// convert open flags
|
||||
nix_all_oflags.insert(host_impl::nix_from_oflags(oflags));
|
||||
@@ -135,7 +135,7 @@ pub(crate) fn path_open(
|
||||
fstatat(
|
||||
resolved.dirfd().as_raw_fd(),
|
||||
resolved.path(),
|
||||
AtFlag::SYMLINK_NOFOLLOW,
|
||||
AtFlags::SYMLINK_NOFOLLOW,
|
||||
)
|
||||
} {
|
||||
Ok(stat) => {
|
||||
@@ -151,13 +151,13 @@ pub(crate) fn path_open(
|
||||
// Linux returns ENOTDIR instead of ELOOP when using O_NOFOLLOW|O_DIRECTORY
|
||||
// on a symlink.
|
||||
libc::ENOTDIR
|
||||
if !(nix_all_oflags & (OFlag::NOFOLLOW | OFlag::DIRECTORY)).is_empty() =>
|
||||
if !(nix_all_oflags & (OFlags::NOFOLLOW | OFlags::DIRECTORY)).is_empty() =>
|
||||
{
|
||||
match unsafe {
|
||||
fstatat(
|
||||
resolved.dirfd().as_raw_fd(),
|
||||
resolved.path(),
|
||||
AtFlag::SYMLINK_NOFOLLOW,
|
||||
AtFlags::SYMLINK_NOFOLLOW,
|
||||
)
|
||||
} {
|
||||
Ok(stat) => {
|
||||
@@ -172,7 +172,7 @@ pub(crate) fn path_open(
|
||||
}
|
||||
// FreeBSD returns EMLINK instead of ELOOP when using O_NOFOLLOW on
|
||||
// a symlink.
|
||||
libc::EMLINK if !(nix_all_oflags & OFlag::NOFOLLOW).is_empty() => {
|
||||
libc::EMLINK if !(nix_all_oflags & OFlags::NOFOLLOW).is_empty() => {
|
||||
return Err(WasiError::ELOOP);
|
||||
}
|
||||
_ => {}
|
||||
@@ -212,10 +212,10 @@ pub(crate) fn path_filestat_get(
|
||||
resolved: PathGet,
|
||||
dirflags: wasi::__wasi_lookupflags_t,
|
||||
) -> WasiResult<wasi::__wasi_filestat_t> {
|
||||
use yanix::file::{fstatat, AtFlag};
|
||||
use yanix::file::{fstatat, AtFlags};
|
||||
let atflags = match dirflags {
|
||||
0 => AtFlag::empty(),
|
||||
_ => AtFlag::SYMLINK_NOFOLLOW,
|
||||
0 => AtFlags::empty(),
|
||||
_ => AtFlags::SYMLINK_NOFOLLOW,
|
||||
};
|
||||
unsafe { fstatat(resolved.dirfd().as_raw_fd(), resolved.path(), atflags) }
|
||||
.map_err(Into::into)
|
||||
@@ -270,12 +270,12 @@ pub(crate) fn path_filestat_set_times(
|
||||
}
|
||||
|
||||
pub(crate) fn path_remove_directory(resolved: PathGet) -> WasiResult<()> {
|
||||
use yanix::file::{unlinkat, AtFlag};
|
||||
use yanix::file::{unlinkat, AtFlags};
|
||||
unsafe {
|
||||
unlinkat(
|
||||
resolved.dirfd().as_raw_fd(),
|
||||
resolved.path(),
|
||||
AtFlag::REMOVEDIR,
|
||||
AtFlags::REMOVEDIR,
|
||||
)
|
||||
}
|
||||
.map_err(Into::into)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
use crate::old::snapshot_0::sys::host_impl;
|
||||
use crate::old::snapshot_0::wasi::{self, WasiResult};
|
||||
use std::fs::File;
|
||||
use yanix::file::OFlag;
|
||||
use yanix::file::OFlags;
|
||||
|
||||
pub(crate) fn path_open_rights(
|
||||
rights_base: wasi::__wasi_rights_t,
|
||||
@@ -17,19 +17,19 @@ pub(crate) fn path_open_rights(
|
||||
|
||||
// convert open flags
|
||||
let oflags = host_impl::nix_from_oflags(oflags);
|
||||
if oflags.contains(OFlag::CREAT) {
|
||||
if oflags.contains(OFlags::CREAT) {
|
||||
needed_base |= wasi::__WASI_RIGHTS_PATH_CREATE_FILE;
|
||||
}
|
||||
if oflags.contains(OFlag::TRUNC) {
|
||||
if oflags.contains(OFlags::TRUNC) {
|
||||
needed_base |= wasi::__WASI_RIGHTS_PATH_FILESTAT_SET_SIZE;
|
||||
}
|
||||
|
||||
// convert file descriptor flags
|
||||
let fdflags = host_impl::nix_from_fdflags(fs_flags);
|
||||
if fdflags.contains(OFlag::DSYNC) {
|
||||
if fdflags.contains(OFlags::DSYNC) {
|
||||
needed_inheriting |= wasi::__WASI_RIGHTS_FD_DATASYNC;
|
||||
}
|
||||
if fdflags.intersects(host_impl::O_RSYNC | OFlag::SYNC) {
|
||||
if fdflags.intersects(host_impl::O_RSYNC | OFlags::SYNC) {
|
||||
needed_inheriting |= wasi::__WASI_RIGHTS_FD_SYNC;
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ pub(crate) fn openat(dirfd: &File, path: &str) -> WasiResult<File> {
|
||||
openat(
|
||||
dirfd.as_raw_fd(),
|
||||
path,
|
||||
OFlag::RDONLY | OFlag::DIRECTORY | OFlag::NOFOLLOW,
|
||||
OFlags::RDONLY | OFlags::DIRECTORY | OFlags::NOFOLLOW,
|
||||
Mode::empty(),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use crate::old::snapshot_0::wasi::{self, WasiResult};
|
||||
use std::convert::TryInto;
|
||||
|
||||
pub(crate) const O_RSYNC: yanix::file::OFlag = yanix::file::OFlag::RSYNC;
|
||||
pub(crate) const O_RSYNC: yanix::file::OFlags = yanix::file::OFlags::RSYNC;
|
||||
|
||||
pub(crate) fn stdev_from_nix(dev: libc::dev_t) -> WasiResult<wasi::__wasi_device_t> {
|
||||
Ok(wasi::__wasi_device_t::from(dev))
|
||||
|
||||
@@ -3,12 +3,12 @@ use crate::old::snapshot_0::wasi::WasiResult;
|
||||
use std::os::unix::prelude::AsRawFd;
|
||||
|
||||
pub(crate) fn path_unlink_file(resolved: PathGet) -> WasiResult<()> {
|
||||
use yanix::file::{unlinkat, AtFlag};
|
||||
use yanix::file::{unlinkat, AtFlags};
|
||||
unsafe {
|
||||
unlinkat(
|
||||
resolved.dirfd().as_raw_fd(),
|
||||
resolved.path(),
|
||||
AtFlag::empty(),
|
||||
AtFlags::empty(),
|
||||
)
|
||||
}
|
||||
.map_err(Into::into)
|
||||
|
||||
Reference in New Issue
Block a user