1 //! Declare functions defined in out-of-line ("outline") asm files. 2 //! 3 //! Kernel calling conventions differ from userspace calling conventions, 4 //! so we also define inline function wrappers which reorder the arguments 5 //! so that they match with the kernel convention as closely as possible, 6 //! to minimize the amount of out-of-line code we need. 7 8 #[cfg(target_arch = "x86")] 9 mod x86; 10 // For these architectures, pass the `nr` argument last. 11 #[cfg(any( 12 target_arch = "arm", 13 target_arch = "aarch64", 14 target_arch = "mips", 15 target_arch = "mips64", 16 target_arch = "powerpc64", 17 target_arch = "riscv64", 18 target_arch = "x86_64", 19 ))] 20 mod nr_last; 21 22 #[cfg(any( 23 target_arch = "arm", 24 target_arch = "aarch64", 25 target_arch = "mips", 26 target_arch = "mips64", 27 target_arch = "powerpc64", 28 target_arch = "riscv64", 29 target_arch = "x86_64", 30 ))] 31 pub(in crate::backend) use nr_last::*; 32 #[cfg(target_arch = "x86")] 33 pub(in crate::backend) use x86::*; 34