#[cfg(target_arch = "x86_64")]
use crate::libc::asm::x86_64::{syscall5, SYSCALL_MOUNT};
#[cfg(target_arch = "aarch64")]
use crate::libc::asm::aarch64::{syscall5, SYSCALL_MOUNT};
#[cfg(target_arch = "arm")]
use crate::libc::asm::armv7::{syscall5, SYSCALL_MOUNT};
pub mod flags {
pub const MS_RDONLY: u32 = 1;
pub const MS_NOSUID: u32 = 2;
pub const MS_NODEV: u32 = 4;
pub const MS_NOEXEC: u32 = 8;
pub const MS_SYNCHRONOUS: u32 = 16;
pub const MS_REMOUNT: u32 = 32;
pub const MS_MANDLOCK: u32 = 64;
pub const MS_DIRSYNC: u32 = 128;
pub const MS_NOSYMFOLLOW: u32 = 256;
pub const MS_NOATIME: u32 = 1024;
pub const MS_NODIRATIME: u32 = 2048;
pub const MS_BIND: u32 = 4096;
pub const MS_MOVE: u32 = 8192;
pub const MS_REC: u32 = 16384;
pub const MS_VERBOSE: u32 = 32768;
pub const MS_SILENT: u32 = 32768;
pub const MS_POSIXACL: u32 = 1 << 16;
pub const MS_UNBINDABLE: u32 = 1 << 17;
pub const MS_PRIVATE: u32 = 1 << 18;
pub const MS_SLAVE: u32 = 1 << 19;
pub const MS_SHARED: u32 = 1 << 20;
pub const MS_RELATIME: u32 = 1 << 21;
pub const MS_KERNMOUNT: u32 = 1 << 22;
pub const MS_I_VERSION: u32 = 1 << 23;
pub const MS_STRICTATIME: u32 = 1 << 24;
pub const MS_LAZYTIME: u32 = 1 << 25;
}
pub unsafe fn mount(
source: *const u8,
target: *const u8,
fstype: *const u8,
flags: usize,
data: *const u8,
) -> isize {
unsafe { syscall5(
SYSCALL_MOUNT,
source as usize,
target as usize,
fstype as usize,
flags,
data as usize,
) }
}