Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/rust/nix/src/mount/   (Firefox Browser Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  apple.rs

  Sprache: Rust
 

use crate::{Errno, NixPath, Result};
use libc::c_int;

libc_bitflags!(
    /// Used with [`mount()`] and [`unmount()`].
    pub struct MntFlags: c_int {
        /// Do not interpret special files on the filesystem.
        MNT_NODEV;
        /// Enable data protection on the filesystem if the filesystem is configured for it.
        MNT_CPROTECT;
        /// file system is quarantined
        MNT_QUARANTINE;
        /// filesystem is stored locally
        MNT_LOCAL;
        /// quotas are enabled on filesystem
        MNT_QUOTA;
        /// identifies the root filesystem
        MNT_ROOTFS;
        /// file system is not appropriate path to user data
        MNT_DONTBROWSE;
        /// VFS will ignore ownership information on filesystem objects
        MNT_IGNORE_OWNERSHIP;
        /// filesystem was mounted by automounter
        MNT_AUTOMOUNTED;
        /// filesystem is journaled
        MNT_JOURNALED;
        /// Don't allow user extended attributes
        MNT_NOUSERXATTR;
        /// filesystem should defer writes
        MNT_DEFWRITE;
        /// don't block unmount if not responding
        MNT_NOBLOCK;
        /// file system is exported
        MNT_EXPORTED;
        /// file system written asynchronously
        MNT_ASYNC;
        /// Force a read-write mount even if the file system appears to be
        /// unclean.
        MNT_FORCE;
        /// MAC support for objects.
        MNT_MULTILABEL;
        /// Do not update access times.
        MNT_NOATIME;
        /// Disallow program execution.
        MNT_NOEXEC;
        /// Do not honor setuid or setgid bits on files when executing them.
        MNT_NOSUID;
        /// Mount read-only.
        MNT_RDONLY;
        /// Causes the vfs subsystem to update its data structures pertaining to
        /// the specified already mounted file system.
        MNT_RELOAD;
        /// Create a snapshot of the file system.
        MNT_SNAPSHOT;
        /// All I/O to the file system should be done synchronously.
        MNT_SYNCHRONOUS;
        /// Union with underlying fs.
        MNT_UNION;
        /// Indicates that the mount command is being applied to an already
        /// mounted file system.
        MNT_UPDATE;
    }
);

/// Mount a file system.
///
/// # Arguments
/// - `source`  -   Specifies the file system.  e.g. `/dev/sd0`.
/// - `target` -    Specifies the destination.  e.g. `/mnt`.
/// - `flags` -     Optional flags controlling the mount.
/// - `data` -      Optional file system specific data.
///
/// # see also
/// [`mount`](https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/mount.2.html)
pub fn mount<
    P1: ?Sized + NixPath,
    P2: ?Sized + NixPath,
    P3: ?Sized + NixPath,
>(
    source: &P1,
    target: &P2,
    flags: MntFlags,
    data: Option<&P3>,
) -> Result<()> {
    let res = source.with_nix_path(|s| {
        target.with_nix_path(|t| {
            crate::with_opt_nix_path(data, |d| unsafe {
                libc::mount(
                    s.as_ptr(),
                    t.as_ptr(),
                    flags.bits(),
                    d.cast_mut().cast(),
                )
            })
        })
    })???;

    Errno::result(res).map(drop)
}

/// Umount the file system mounted at `target`.
pub fn unmount<P>(target: &P, flags: MntFlags) -> Result<()>
where
    P: ?Sized + NixPath,
{
    let res = target.with_nix_path(|cstr| unsafe {
        libc::unmount(cstr.as_ptr(), flags.bits())
    })?;

    Errno::result(res).map(drop)
}

Messung V0.5 in Prozent
C=74 H=90 G=82

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet am  2026-06-18) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.