14 ZwFuncName SETS "Zw$Name"
15 ZwFuncEndName SETS "$ZwFuncName":CC:"_end"
17 EXPORT $ZwFuncName [FUNC]
32 NtFuncName SETS "Nt$Name"
33 NtFuncEndName SETS "$NtFuncName":CC:"_end"
34 ZwFuncName SETS "Zw$Name"
35 ZwFuncEndName SETS "$ZwFuncName":CC:"_end"
37 EXPORT $NtFuncName [FUNC]
39 EXPORT $ZwFuncName [FUNC]
56 #define KUSER_SHARED_SYSCALL HEX(7ffe0300)
57 #define KGDT_R0_CODE 8
58 MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
59 StackBytes = 4 * ArgCount
60 FPO 0, 0, 0, 0, 0, FRAME_FPO
62 mov edx, KUSER_SHARED_SYSCALL
66 MACRO(STUBCODE_K, Name, SyscallId, ArgCount)
67 StackBytes = 4 * &ArgCount
68 FPO 0, 0, 0, 0, 0, FRAME_FPO
76 #elif defined(_M_AMD64)
77 MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
84 MACRO(STUBCODE_K, Name, SyscallId, ArgCount)
92 MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
103 #define STUBCODE_K STUBCODE_U
104 #elif defined(_M_MIPS)
105 MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
106 li $8, KUSER_SHARED_SYSCALL
111 MACRO(STUBCODE_K, Name, SyscallId, ArgCount)
116 #error unsupported architecture
120 MACRO(MAKE_LABEL, Name, StackBytes)
121 PUBLIC _&Name&@&StackBytes
124 MACRO(START_PROC, Name, StackBytes)
125 PUBLIC _&Name&@&StackBytes
126 .PROC _&Name&@&StackBytes
129 MACRO(MAKE_LABEL, Name, StackBytes)
133 MACRO(START_PROC, Name, StackBytes)
139 MACRO(STUB_U, Name, ArgCount)
140 MAKE_LABEL Zw&Name, %ArgCount * 4
141 START_PROC Nt&Name, %ArgCount * 4
142 STUBCODE_U Name, SyscallId, %ArgCount
144 SyscallId = SyscallId + 1
147 MACRO(STUB_K, Name, ArgCount)
148 START_PROC Zw&Name, %ArgCount * 4
149 STUBCODE_K Name, SyscallId, %ArgCount
151 SyscallId = SyscallId + 1