#[cfg_attr(docsrs, doc(cfg(any(target_os = "linux", target_os = "android"))))]
#[macro_export]
macro_rules! syscall_args64 {
($nr:ident$(, $arg1:expr)* $(, @u64 $arg2:expr)+ $(, $arg3:expr)* $(,)?) => {
$crate::_scall_internal_syscall_args64!($nr, $($arg1,)* $(@u64 $arg2,)+ $($arg3,)*)
};
}
#[cfg(target_pointer_width = "64")]
#[doc(hidden)]
#[macro_export]
macro_rules! _scall_internal_syscall_args64 {
($nr:ident, $($sarg1:expr,)* $(@u64 $larg2:expr,)+ $($sarg3:expr,)*) => {
$crate::syscall!(
$nr, $($sarg1,)* $($larg2 as usize,)+ $($sarg3,)*
)
};
}
#[cfg(all(
target_pointer_width = "32",
not(any(target_arch = "arm", target_arch = "mips", target_arch = "powerpc")),
target_endian = "little",
))]
#[doc(hidden)]
#[macro_export]
macro_rules! _scall_internal_syscall_args64 {
($nr:ident, $($sarg1:expr,)* $(@u64 $larg2:expr,)+ $($sarg3:expr,)*) => {
$crate::syscall!(
$nr, $($sarg1,)* $($larg2 as u32, $larg2 as u64 >> 32,)+ $($sarg3,)*
)
};
}
#[cfg(all(
target_pointer_width = "32",
not(any(target_arch = "arm", target_arch = "mips", target_arch = "powerpc")),
target_endian = "big",
))]
#[doc(hidden)]
#[macro_export]
macro_rules! _scall_internal_syscall_args64 {
($nr:ident, $($sarg1:expr,)* $(@u64 $larg2:expr,)+ $($sarg3:expr,)*) => {
$crate::syscall!(
$nr, $($sarg1,)* $($larg2 as u64 >> 32, $larg2 as u32,)+ $($sarg3,)*
)
};
}
#[cfg(all(
target_pointer_width = "32",
any(target_arch = "arm", target_arch = "mips", target_arch = "powerpc"),
target_endian = "little",
))]
#[doc(hidden)]
#[macro_export]
macro_rules! _scall_internal_syscall_args64 {
($nr:ident, $($sarg1:expr, $sarg2:expr,)* $(@u64 $larg3:expr,)+ $($sarg4:expr,)*) => {
$crate::syscall!(
$nr, $($sarg1, $sarg2,)* $($larg3 as u32, $larg3 as u64 >> 32,)+ $($sarg4,)*
)
};
($nr:ident, $($sarg1:expr,)* $(@u64 $larg2:expr,)+ $($sarg3:expr,)*) => {
$crate::syscall!(
$nr, $($sarg1,)* 0, $($larg2 as u32, $larg2 as u64 >> 32,)+ $($sarg3,)*
)
};
}
#[cfg(all(
target_pointer_width = "32",
any(target_arch = "arm", target_arch = "mips", target_arch = "powerpc"),
target_endian = "big",
))]
#[doc(hidden)]
#[macro_export]
macro_rules! _scall_internal_syscall_args64 {
($nr:ident, $($sarg1:expr, $sarg2:expr,)* $(@u64 $larg3:expr,)+ $($sarg4:expr,)*) => {
$crate::syscall!(
$nr, $($sarg1, $sarg2,)* $($larg3 as u64 >> 32, $larg3 as u32,)+ $($sarg4,)*
)
};
($nr:ident, $($sarg1:expr,)* $(@u64 $larg2:expr,)+ $($sarg3:expr,)*) => {
$crate::syscall!(
$nr, $($sarg1,)* 0, $($larg2 as u64 >> 32, $larg2 as u32,)+ $($sarg3,)*
)
};
}