x86_64_linux_nolibc/syscall/x86_64/linux/
macros.rs

1// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2// file at the top-level directory of this distribution and at
3// http://rust-lang.org/COPYRIGHT.
4//
5// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8// option. This file may not be copied, modified, or distributed
9// except according to those terms.
10
11#[macro_export]
12macro_rules! linux_syscall {
13    ($nr:expr) => {
14        $crate::syscall::os::linux::syscall0($nr as isize)
15    };
16
17    ($nr:expr, $a1:expr) => {
18        $crate::syscall::os::linux::syscall1($nr as isize, $a1 as usize)
19    };
20
21    ($nr:expr, $a1:expr, $a2:expr) => {
22        $crate::syscall::os::linux::syscall2($nr as isize, $a1 as usize, $a2 as usize)
23    };
24
25    ($nr:expr, $a1:expr, $a2:expr, $a3:expr) => {
26        $crate::syscall::os::linux::syscall3($nr as isize, $a1 as usize, $a2 as usize, $a3 as usize)
27    };
28
29    ($nr:expr, $a1:expr, $a2:expr, $a3:expr, $a4:expr) => {
30        $crate::syscall::os::linux::syscall4(
31            $nr as isize,
32            $a1 as usize,
33            $a2 as usize,
34            $a3 as usize,
35            $a4 as usize,
36        )
37    };
38
39    ($nr:expr, $a1:expr, $a2:expr, $a3:expr, $a4:expr, $a5:expr) => {
40        $crate::syscall::os::linux::syscall5(
41            $nr as isize,
42            $a1 as usize,
43            $a2 as usize,
44            $a3 as usize,
45            $a4 as usize,
46            $a5 as usize,
47        )
48    };
49
50    ($nr:expr, $a1:expr, $a2:expr, $a3:expr, $a4:expr, $a5:expr, $a6:expr) => {
51        $crate::syscall::os::linux::syscall6(
52            $nr as isize,
53            $a1 as usize,
54            $a2 as usize,
55            $a3 as usize,
56            $a4 as usize,
57            $a5 as usize,
58            $a6 as usize,
59        )
60    };
61
62    ($nr:expr, $a1:expr, $a2:expr, $a3:expr, $a4:expr, $a5:expr, $a6:expr, $a7:expr) => {
63        $crate::syscall::os::linux::syscall7(
64            $nr as isize,
65            $a1 as usize,
66            $a2 as usize,
67            $a3 as usize,
68            $a4 as usize,
69            $a5 as usize,
70            $a6 as usize,
71            $a7 as usize,
72        )
73    };
74}