1 module syscalld.arch.syscall_x86; 2 3 version(Posix): 4 version(D_InlineAsm_X86): 5 @nogc: 6 nothrow: 7 8 int syscall(int ident) 9 { 10 int ret; 11 12 synchronized asm @nogc nothrow 13 { 14 mov EAX, ident; 15 int 0x80; 16 mov ret, EAX; 17 } 18 return ret; 19 } 20 21 int syscall(int ident, int n) 22 { 23 int ret; 24 25 synchronized asm @nogc nothrow 26 { 27 mov EAX, ident; 28 mov EBX, n[EBP]; 29 int 0x80; 30 mov ret, EAX; 31 } 32 return ret; 33 } 34 35 int syscall(int ident, int n, int arg1) 36 { 37 int ret; 38 39 synchronized asm @nogc nothrow 40 { 41 mov EAX, ident; 42 mov EBX, n[EBP]; 43 mov ECX, arg1[EBP]; 44 int 0x80; 45 mov ret, EAX; 46 } 47 return ret; 48 } 49 50 int syscall(int ident, int n, int arg1, int arg2) 51 { 52 int ret; 53 54 synchronized asm @nogc nothrow 55 { 56 mov EAX, ident; 57 mov EBX, n[EBP]; 58 mov ECX, arg1[EBP]; 59 mov EDX, arg2[EBP]; 60 int 0x80; 61 mov ret, EAX; 62 } 63 return ret; 64 } 65 66 int syscall(int ident, int n, int arg1, int arg2, int arg3) 67 { 68 int ret; 69 70 synchronized asm @nogc nothrow 71 { 72 mov EAX, ident; 73 mov EBX, n[EBP]; 74 mov ECX, arg1[EBP]; 75 mov EDX, arg2[EBP]; 76 mov ESI, arg3[EBP]; 77 int 0x80; 78 mov ret, EAX; 79 } 80 return ret; 81 } 82 83 int syscall(int ident, int n, int arg1, int arg2, int arg3, int arg4) 84 { 85 int ret; 86 87 synchronized asm @nogc nothrow 88 { 89 mov EAX, ident; 90 mov EBX, n[EBP]; 91 mov ECX, arg1[EBP]; 92 mov EDX, arg2[EBP]; 93 mov ESI, arg3[EBP]; 94 mov EDI, arg4[EBP]; 95 int 0x80; 96 mov ret, EAX; 97 } 98 return ret; 99 } 100 101 int syscall(int ident, int n, int arg1, int arg2, int arg3, int arg4, int arg5) 102 { 103 int ret; 104 105 synchronized asm @nogc nothrow 106 { 107 mov EAX, ident; 108 mov EBX, n[EBP]; 109 mov ECX, arg1[EBP]; 110 mov EDX, arg2[EBP]; 111 mov ESI, arg3[EBP]; 112 mov EDI, arg4[EBP]; 113 mov EBP, arg5[EBP]; 114 int 0x80; 115 mov ret, EAX; 116 } 117 return ret; 118 } 119 120 121 122 123