3 #define KUSER_SHARED_SYSCALL HEX(7ffe0300)
5 MACRO(STUBCODE_U, SyscallId, StackBytes)
6 FPO 0, 0, 0, 0, 0, FRAME_FPO
8 mov ecx, KUSER_SHARED_SYSCALL
12 MACRO(STUBCODE_K, SyscallId, StackBytes)
13 FPO 0, 0, 0, 0, 0, FRAME_FPO
21 #elif defined(_M_AMD64)
22 MACRO(STUBCODE_U, SyscallId, StackBytes)
29 MACRO(STUBCODE_K, SyscallId, StackBytes)
36 MACRO(STUBCODE_U, SyscallId, StackBytes)
40 MACRO(STUBCODE_K, SyscallId, StackBytes)
46 MACRO(STUBCODE_U, SyscallId, StackBytes)
57 #define STUBCODE_K STUBCODE_U
58 #elif defined(_M_MIPS)
59 MACRO(STUBCODE_U, SyscallId, StackBytes)
60 li $8, KUSER_SHARED_SYSCALL
65 MACRO(STUBCODE_K, SyscallId, StackBytes)
70 #error unsupported architecture
74 MACRO(MAKE_LABEL, Name, Stackbytes)
75 PUBLIC _&Name&@&Stackbytes
78 MACRO(START_PROC, Name, Stackbytes)
79 PUBLIC _&Name&@&Stackbytes
80 .PROC &Name&@&Stackbytes
82 MACRO(END_PROC, Name, Stackbytes)
83 .ENDP &Name&@&Stackbytes
86 MACRO(MAKE_LABEL, Name, Stackbytes)
90 MACRO(START_PROC, Name, Stackbytes)
94 MACRO(END_PROC, Name, Stackbytes)
99 MACRO(STUB_U, Name, ArgCount)
100 Stackbytes = 4 * &ArgCount
101 MAKE_LABEL Zw&Name, %Stackbytes
102 START_PROC Nt&Name, %Stackbytes
103 STUBCODE_U SyscallId, %Stackbytes
104 END_PROC Nt&Name, %Stackbytes
105 SyscallId = SyscallId + 1
108 MACRO(STUB_K, Name, ArgCount)
109 Stackbytes = 4 * &ArgCount
110 START_PROC Zw&Name, %Stackbytes
111 STUBCODE_K SyscallId, %Stackbytes
112 END_PROC Zw&Name, %Stackbytes
113 SyscallId = SyscallId + 1