3 EXTERN _KiSystemService:PROC
4 #define KUSER_SHARED_SYSCALL HEX(7ffe0300)
6 MACRO(STUBCODE_U, SyscallId, StackBytes)
8 mov ecx, KUSER_SHARED_SYSCALL
12 MACRO(STUBCODE_K, SyscallId, StackBytes)
20 #elif defined(_M_AMD64)
21 EXTERN KiSystemService:PROC
22 MACRO(STUBCODE_U, SyscallId, StackBytes)
28 MACRO(STUBCODE_K, SyscallId, StackBytes)
34 MACRO(STUBCODE_U, SyscallId, StackBytes)
38 MACRO(STUBCODE_K, SyscallId, StackBytes)
44 MACRO(STUBCODE_U, SyscallId, StackBytes)
55 #define STUBCODE_K STUBCODE_U
56 #elif defined(_M_MIPS)
57 MACRO(STUBCODE_U, SyscallId, StackBytes)
58 li $8, KUSER_SHARED_SYSCALL
63 MACRO(STUBCODE_K, SyscallId, StackBytes)
68 #error unsupported architecture
72 MACRO(MAKE_LABEL, Name, Stackbytes)
73 PUBLIC _&Name&@&Stackbytes
77 MACRO(MAKE_LABEL, Name, Stackbytes)
83 MACRO(STUB_U, Name, ArgCount)
84 Stackbytes = 4 * &ArgCount
85 MAKE_LABEL Zw&Name, %Stackbytes
86 MAKE_LABEL Nt&Name, %Stackbytes
87 STUBCODE_U SyscallId, %Stackbytes
88 SyscallId = SyscallId + 1
91 MACRO(STUB_K, Name, ArgCount)
92 Stackbytes = 4 * &ArgCount
93 MAKE_LABEL Zw&Name, %Stackbytes
94 STUBCODE_K SyscallId, %Stackbytes
95 SyscallId = SyscallId + 1