1111
1212pub mod nr;
1313
14+ const MACOS_SYSCALL_PREFIX : usize = 33554432 ;
15+
1416#[ inline( always) ]
1517pub unsafe fn syscall0 ( n : usize ) -> usize {
1618 let ret: usize ;
19+ let syscall = n + MACOS_SYSCALL_PREFIX ;
1720 llvm_asm ! ( "syscall" : "={rax}" ( ret)
18- : "{rax}" ( n )
21+ : "{rax}" ( syscall )
1922 : "rcx" , "r11" , "memory"
2023 : "volatile" ) ;
2124 ret
@@ -24,8 +27,9 @@ pub unsafe fn syscall0(n: usize) -> usize {
2427#[ inline( always) ]
2528pub unsafe fn syscall1 ( n : usize , a1 : usize ) -> usize {
2629 let ret: usize ;
30+ let syscall = n + MACOS_SYSCALL_PREFIX ;
2731 llvm_asm ! ( "syscall" : "={rax}" ( ret)
28- : "{rax}" ( n ) , "{rdi}" ( a1)
32+ : "{rax}" ( syscall ) , "{rdi}" ( a1)
2933 : "rcx" , "r11" , "memory"
3034 : "volatile" ) ;
3135 ret
@@ -34,8 +38,9 @@ pub unsafe fn syscall1(n: usize, a1: usize) -> usize {
3438#[ inline( always) ]
3539pub unsafe fn syscall2 ( n : usize , a1 : usize , a2 : usize ) -> usize {
3640 let ret: usize ;
41+ let syscall = n + MACOS_SYSCALL_PREFIX ;
3742 llvm_asm ! ( "syscall" : "={rax}" ( ret)
38- : "{rax}" ( n ) , "{rdi}" ( a1) , "{rsi}" ( a2)
43+ : "{rax}" ( syscall ) , "{rdi}" ( a1) , "{rsi}" ( a2)
3944 : "rcx" , "r11" , "memory"
4045 : "volatile" ) ;
4146 ret
@@ -44,8 +49,9 @@ pub unsafe fn syscall2(n: usize, a1: usize, a2: usize) -> usize {
4449#[ inline( always) ]
4550pub unsafe fn syscall3 ( n : usize , a1 : usize , a2 : usize , a3 : usize ) -> usize {
4651 let ret: usize ;
52+ let syscall = n + MACOS_SYSCALL_PREFIX ;
4753 llvm_asm ! ( "syscall" : "={rax}" ( ret)
48- : "{rax}" ( n ) , "{rdi}" ( a1) , "{rsi}" ( a2) , "{rdx}" ( a3)
54+ : "{rax}" ( syscall ) , "{rdi}" ( a1) , "{rsi}" ( a2) , "{rdx}" ( a3)
4955 : "rcx" , "r11" , "memory"
5056 : "volatile" ) ;
5157 ret
@@ -59,8 +65,9 @@ pub unsafe fn syscall4(n: usize,
5965 a4 : usize )
6066 -> usize {
6167 let ret: usize ;
68+ let syscall = n + MACOS_SYSCALL_PREFIX ;
6269 llvm_asm ! ( "syscall" : "={rax}" ( ret)
63- : "{rax}" ( n ) , "{rdi}" ( a1) , "{rsi}" ( a2) , "{rdx}" ( a3) ,
70+ : "{rax}" ( syscall ) , "{rdi}" ( a1) , "{rsi}" ( a2) , "{rdx}" ( a3) ,
6471 "{r10}" ( a4)
6572 : "rcx" , "r11" , "memory"
6673 : "volatile" ) ;
@@ -76,8 +83,9 @@ pub unsafe fn syscall5(n: usize,
7683 a5 : usize )
7784 -> usize {
7885 let ret: usize ;
86+ let syscall = n + MACOS_SYSCALL_PREFIX ;
7987 llvm_asm ! ( "syscall" : "={rax}" ( ret)
80- : "{rax}" ( n ) , "{rdi}" ( a1) , "{rsi}" ( a2) , "{rdx}" ( a3) ,
88+ : "{rax}" ( syscall ) , "{rdi}" ( a1) , "{rsi}" ( a2) , "{rdx}" ( a3) ,
8189 "{r10}" ( a4) , "{r8}" ( a5)
8290 : "rcx" , "r11" , "memory"
8391 : "volatile" ) ;
@@ -94,8 +102,9 @@ pub unsafe fn syscall6(n: usize,
94102 a6 : usize )
95103 -> usize {
96104 let ret: usize ;
105+ let syscall = n + MACOS_SYSCALL_PREFIX ;
97106 llvm_asm ! ( "syscall" : "={rax}" ( ret)
98- : "{rax}" ( n ) , "{rdi}" ( a1) , "{rsi}" ( a2) , "{rdx}" ( a3) ,
107+ : "{rax}" ( syscall ) , "{rdi}" ( a1) , "{rsi}" ( a2) , "{rdx}" ( a3) ,
99108 "{r10}" ( a4) , "{r8}" ( a5) , "{r9}" ( a6)
100109 : "rcx" , "r11" , "memory"
101110 : "volatile" ) ;
0 commit comments