summaryrefslogtreecommitdiffstats
path: root/vendor/rustix/src/fs/abs.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rustix/src/fs/abs.rs')
-rw-r--r--vendor/rustix/src/fs/abs.rs42
1 files changed, 39 insertions, 3 deletions
diff --git a/vendor/rustix/src/fs/abs.rs b/vendor/rustix/src/fs/abs.rs
index 25556304b..a0d6cdecb 100644
--- a/vendor/rustix/src/fs/abs.rs
+++ b/vendor/rustix/src/fs/abs.rs
@@ -1,33 +1,69 @@
//! POSIX-style filesystem functions which operate on bare paths.
#[cfg(not(any(
+ target_os = "haiku",
target_os = "illumos",
target_os = "netbsd",
target_os = "redox",
+ target_os = "solaris",
target_os = "wasi",
)))]
use crate::fs::StatFs;
#[cfg(not(any(
+ target_os = "haiku",
target_os = "illumos",
- target_os = "netbsd",
target_os = "redox",
+ target_os = "solaris",
target_os = "wasi",
)))]
-use crate::{imp, io, path};
+use {
+ crate::fs::StatVfs,
+ crate::{backend, io, path},
+};
/// `statfs`—Queries filesystem metadata.
///
+/// Compared to [`statvfs`], this function often provides more information,
+/// though it's less portable.
+///
/// # References
/// - [Linux]
///
/// [Linux]: https://man7.org/linux/man-pages/man2/statfs.2.html
#[cfg(not(any(
+ target_os = "haiku",
target_os = "illumos",
target_os = "netbsd",
target_os = "redox",
+ target_os = "solaris",
target_os = "wasi",
)))]
#[inline]
pub fn statfs<P: path::Arg>(path: P) -> io::Result<StatFs> {
- path.into_with_c_str(imp::fs::syscalls::statfs)
+ path.into_with_c_str(backend::fs::syscalls::statfs)
+}
+
+/// `statvfs`—Queries filesystem metadata, POSIX version.
+///
+/// Compared to [`statfs`], this function often provides less information,
+/// but it is more portable. But even so, filesystems are very diverse and not
+/// all the fields are meaningful for every filesystem. And `f_fsid` doesn't
+/// seem to have a clear meaning anywhere.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/statvfs.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/statvfs.2.html
+#[cfg(not(any(
+ target_os = "haiku",
+ target_os = "illumos",
+ target_os = "redox",
+ target_os = "solaris",
+ target_os = "wasi",
+)))]
+#[inline]
+pub fn statvfs<P: path::Arg>(path: P) -> io::Result<StatVfs> {
+ path.into_with_c_str(backend::fs::syscalls::statvfs)
}