Commit 1b85b6ca authored by Alexandre Julliard's avatar Alexandre Julliard

krnl386: Use RtlCaptureContext and NtSetContextThread to implement register functions.

parent c5a35d89
...@@ -8,15 +8,15 @@ ...@@ -8,15 +8,15 @@
# - code generated by the MS Thunk Compiler # - code generated by the MS Thunk Compiler
# - symbols exported by the Oct 94 beta version of kernel32.dll # - symbols exported by the Oct 94 beta version of kernel32.dll
1 stdcall -noname -i386 -private -register VxDCall0() krnl386.exe16.VxDCall0 1 stdcall -noname -i386 -private -norelay VxDCall0() krnl386.exe16.VxDCall0
2 stdcall -noname -i386 -private -register VxDCall1() krnl386.exe16.VxDCall1 2 stdcall -noname -i386 -private -norelay VxDCall1() krnl386.exe16.VxDCall1
3 stdcall -noname -i386 -private -register VxDCall2() krnl386.exe16.VxDCall2 3 stdcall -noname -i386 -private -norelay VxDCall2() krnl386.exe16.VxDCall2
4 stdcall -noname -i386 -private -register VxDCall3() krnl386.exe16.VxDCall3 4 stdcall -noname -i386 -private -norelay VxDCall3() krnl386.exe16.VxDCall3
5 stdcall -noname -i386 -private -register VxDCall4() krnl386.exe16.VxDCall4 5 stdcall -noname -i386 -private -norelay VxDCall4() krnl386.exe16.VxDCall4
6 stdcall -noname -i386 -private -register VxDCall5() krnl386.exe16.VxDCall5 6 stdcall -noname -i386 -private -norelay VxDCall5() krnl386.exe16.VxDCall5
7 stdcall -noname -i386 -private -register VxDCall6() krnl386.exe16.VxDCall6 7 stdcall -noname -i386 -private -norelay VxDCall6() krnl386.exe16.VxDCall6
8 stdcall -noname -i386 -private -register VxDCall7() krnl386.exe16.VxDCall7 8 stdcall -noname -i386 -private -norelay VxDCall7() krnl386.exe16.VxDCall7
9 stdcall -noname -i386 -private -register VxDCall8() krnl386.exe16.VxDCall8 9 stdcall -noname -i386 -private -norelay VxDCall8() krnl386.exe16.VxDCall8
10 stdcall -noname -i386 -private k32CharToOemA(str ptr) krnl386.exe16.k32CharToOemA 10 stdcall -noname -i386 -private k32CharToOemA(str ptr) krnl386.exe16.k32CharToOemA
11 stdcall -noname -i386 -private k32CharToOemBuffA(str ptr long) krnl386.exe16.k32CharToOemBuffA 11 stdcall -noname -i386 -private k32CharToOemBuffA(str ptr long) krnl386.exe16.k32CharToOemBuffA
12 stdcall -noname -i386 -private k32OemToCharA(ptr ptr) krnl386.exe16.k32OemToCharA 12 stdcall -noname -i386 -private k32OemToCharA(ptr ptr) krnl386.exe16.k32OemToCharA
...@@ -45,20 +45,20 @@ ...@@ -45,20 +45,20 @@
35 stdcall -noname -i386 -private LoadLibrary16(str) krnl386.exe16.LoadLibrary16 35 stdcall -noname -i386 -private LoadLibrary16(str) krnl386.exe16.LoadLibrary16
36 stdcall -noname -i386 -private FreeLibrary16(long) krnl386.exe16.FreeLibrary16 36 stdcall -noname -i386 -private FreeLibrary16(long) krnl386.exe16.FreeLibrary16
37 stdcall -noname -i386 -private GetProcAddress16(long str) krnl386.exe16.GetProcAddress16 37 stdcall -noname -i386 -private GetProcAddress16(long str) krnl386.exe16.GetProcAddress16
38 stdcall -noname -i386 -private -register AllocMappedBuffer() krnl386.exe16.AllocMappedBuffer 38 stdcall -noname -i386 -private -norelay AllocMappedBuffer() krnl386.exe16.AllocMappedBuffer
39 stdcall -noname -i386 -private -register FreeMappedBuffer() krnl386.exe16.FreeMappedBuffer 39 stdcall -noname -i386 -private -norelay FreeMappedBuffer() krnl386.exe16.FreeMappedBuffer
40 stdcall -noname -i386 -private -register OT_32ThkLSF() krnl386.exe16.OT_32ThkLSF 40 stdcall -noname -i386 -private -norelay OT_32ThkLSF() krnl386.exe16.OT_32ThkLSF
41 stdcall -noname -i386 -private ThunkInitLSF(long str long str str) krnl386.exe16.ThunkInitLSF 41 stdcall -noname -i386 -private ThunkInitLSF(long str long str str) krnl386.exe16.ThunkInitLSF
42 stdcall -noname -i386 -private -norelay LogApiThkLSF(str) krnl386.exe16.LogApiThkLSF 42 stdcall -noname -i386 -private -norelay LogApiThkLSF(str) krnl386.exe16.LogApiThkLSF
43 stdcall -noname -i386 -private ThunkInitLS(long str long str str) krnl386.exe16.ThunkInitLS 43 stdcall -noname -i386 -private ThunkInitLS(long str long str str) krnl386.exe16.ThunkInitLS
44 stdcall -noname -i386 -private -norelay LogApiThkSL(str) krnl386.exe16.LogApiThkSL 44 stdcall -noname -i386 -private -norelay LogApiThkSL(str) krnl386.exe16.LogApiThkSL
45 stdcall -noname -i386 -private -register Common32ThkLS() krnl386.exe16.Common32ThkLS 45 stdcall -noname -i386 -private -norelay Common32ThkLS() krnl386.exe16.Common32ThkLS
46 stdcall -noname -i386 -private ThunkInitSL(long str long str str) krnl386.exe16.ThunkInitSL 46 stdcall -noname -i386 -private ThunkInitSL(long str long str str) krnl386.exe16.ThunkInitSL
47 stdcall -noname -i386 -private -norelay LogCBThkSL(str) krnl386.exe16.LogCBThkSL 47 stdcall -noname -i386 -private -norelay LogCBThkSL(str) krnl386.exe16.LogCBThkSL
48 stdcall -noname -i386 -private ReleaseThunkLock(ptr) krnl386.exe16.ReleaseThunkLock 48 stdcall -noname -i386 -private ReleaseThunkLock(ptr) krnl386.exe16.ReleaseThunkLock
49 stdcall -noname -i386 -private RestoreThunkLock(long) krnl386.exe16.RestoreThunkLock 49 stdcall -noname -i386 -private RestoreThunkLock(long) krnl386.exe16.RestoreThunkLock
51 stdcall -noname -i386 -private -register W32S_BackTo32() krnl386.exe16.W32S_BackTo32 51 stdcall -noname -i386 -private -norelay W32S_BackTo32() krnl386.exe16.W32S_BackTo32
52 stdcall -noname -i386 -private GetThunkBuff() krnl386.exe16.GetThunkBuff 52 stdcall -noname -i386 -private GetThunkBuff() krnl386.exe16.GetThunkBuff
53 stdcall -noname -i386 -private GetThunkStuff(str str) krnl386.exe16.GetThunkStuff 53 stdcall -noname -i386 -private GetThunkStuff(str str) krnl386.exe16.GetThunkStuff
54 stdcall -noname -i386 -private K32WOWCallback16(long long) krnl386.exe16.K32WOWCallback16 54 stdcall -noname -i386 -private K32WOWCallback16(long long) krnl386.exe16.K32WOWCallback16
...@@ -96,8 +96,8 @@ ...@@ -96,8 +96,8 @@
86 stdcall -i386 -private @(ptr) krnl386.exe16._KERNEL32_86 86 stdcall -i386 -private @(ptr) krnl386.exe16._KERNEL32_86
87 stdcall -noname -i386 -private SSOnBigStack() krnl386.exe16.SSOnBigStack 87 stdcall -noname -i386 -private SSOnBigStack() krnl386.exe16.SSOnBigStack
88 varargs -noname -i386 -private SSCall(long long ptr) krnl386.exe16.SSCall 88 varargs -noname -i386 -private SSCall(long long ptr) krnl386.exe16.SSCall
89 stdcall -noname -i386 -private -register FT_PrologPrime() krnl386.exe16.FT_PrologPrime 89 stdcall -noname -i386 -private -norelay FT_PrologPrime() krnl386.exe16.FT_PrologPrime
90 stdcall -noname -i386 -private -register QT_ThunkPrime() krnl386.exe16.QT_ThunkPrime 90 stdcall -noname -i386 -private -norelay QT_ThunkPrime() krnl386.exe16.QT_ThunkPrime
91 stdcall -noname -i386 -private PK16FNF(ptr) krnl386.exe16.PK16FNF 91 stdcall -noname -i386 -private PK16FNF(ptr) krnl386.exe16.PK16FNF
92 stdcall -noname -i386 -private GetPK16SysVar() krnl386.exe16.GetPK16SysVar 92 stdcall -noname -i386 -private GetPK16SysVar() krnl386.exe16.GetPK16SysVar
93 stdcall -noname -i386 -private GetpWin16Lock(ptr) krnl386.exe16.GetpWin16Lock 93 stdcall -noname -i386 -private GetpWin16Lock(ptr) krnl386.exe16.GetpWin16Lock
...@@ -461,8 +461,8 @@ ...@@ -461,8 +461,8 @@
@ stdcall -i386 -private -norelay FT_Exit52() krnl386.exe16.FT_Exit52 @ stdcall -i386 -private -norelay FT_Exit52() krnl386.exe16.FT_Exit52
@ stdcall -i386 -private -norelay FT_Exit56() krnl386.exe16.FT_Exit56 @ stdcall -i386 -private -norelay FT_Exit56() krnl386.exe16.FT_Exit56
@ stdcall -i386 -private -norelay FT_Exit8() krnl386.exe16.FT_Exit8 @ stdcall -i386 -private -norelay FT_Exit8() krnl386.exe16.FT_Exit8
@ stdcall -i386 -private -register FT_Prolog() krnl386.exe16.FT_Prolog @ stdcall -i386 -private -norelay FT_Prolog() krnl386.exe16.FT_Prolog
@ stdcall -i386 -private -register FT_Thunk() krnl386.exe16.FT_Thunk @ stdcall -i386 -private -norelay FT_Thunk() krnl386.exe16.FT_Thunk
@ stdcall FatalAppExitA(long str) @ stdcall FatalAppExitA(long str)
@ stdcall FatalAppExitW(long wstr) @ stdcall FatalAppExitW(long wstr)
@ stdcall FatalExit(long) @ stdcall FatalExit(long)
...@@ -1021,8 +1021,8 @@ ...@@ -1021,8 +1021,8 @@
@ stdcall K32InitializeProcessForWsWatch(long) @ stdcall K32InitializeProcessForWsWatch(long)
@ stdcall K32QueryWorkingSet(long ptr long) @ stdcall K32QueryWorkingSet(long ptr long)
@ stdcall K32QueryWorkingSetEx(long ptr long) @ stdcall K32QueryWorkingSetEx(long ptr long)
@ stdcall -i386 -private -register K32Thk1632Epilog() krnl386.exe16.K32Thk1632Epilog @ stdcall -i386 -private -norelay K32Thk1632Epilog() krnl386.exe16.K32Thk1632Epilog
@ stdcall -i386 -private -register K32Thk1632Prolog() krnl386.exe16.K32Thk1632Prolog @ stdcall -i386 -private -norelay K32Thk1632Prolog() krnl386.exe16.K32Thk1632Prolog
@ stdcall LCIDToLocaleName(long ptr long long) @ stdcall LCIDToLocaleName(long ptr long long)
@ stdcall LCMapStringA(long long str long ptr long) @ stdcall LCMapStringA(long long str long ptr long)
@ stdcall LCMapStringEx(wstr long wstr long ptr long ptr ptr long) @ stdcall LCMapStringEx(wstr long wstr long ptr long ptr ptr long)
...@@ -1154,7 +1154,7 @@ ...@@ -1154,7 +1154,7 @@
@ stdcall ProcessIdToSessionId(long ptr) @ stdcall ProcessIdToSessionId(long ptr)
@ stdcall PulseEvent(long) @ stdcall PulseEvent(long)
@ stdcall PurgeComm(long long) @ stdcall PurgeComm(long long)
@ stdcall -i386 -private -register QT_Thunk() krnl386.exe16.QT_Thunk @ stdcall -i386 -private -norelay QT_Thunk() krnl386.exe16.QT_Thunk
# @ stub QueryActCtxSettingsW # @ stub QueryActCtxSettingsW
@ stdcall QueryActCtxW(long ptr ptr long ptr long ptr) @ stdcall QueryActCtxW(long ptr ptr long ptr long ptr)
@ stdcall QueryDepthSList(ptr) ntdll.RtlQueryDepthSList @ stdcall QueryDepthSList(ptr) ntdll.RtlQueryDepthSList
......
...@@ -298,12 +298,24 @@ static inline DWORD stack32_pop( CONTEXT *context ) ...@@ -298,12 +298,24 @@ static inline DWORD stack32_pop( CONTEXT *context )
return ret; return ret;
} }
#define DEFINE_REGS_ENTRYPOINT( name, args ) \ #define DEFINE_REGS_ENTRYPOINT(name) \
__ASM_GLOBAL_FUNC( name, \ __ASM_STDCALL_FUNC( name, 0, \
".byte 0x68\n\t" /* pushl $__regs_func */ \ "pushl %ebp\n\t" \
".long " __ASM_NAME("__regs_") #name "-.-11\n\t" \ __ASM_CFI(".cfi_adjust_cfa_offset 4\n\t") \
".byte 0x6a," #args "\n\t" /* pushl $args */ \ __ASM_CFI(".cfi_rel_offset %ebp,0\n\t") \
"call " __ASM_NAME("__wine_call_from_regs") "\n\t" \ "movl %esp,%ebp\n\t" \
"ret $(4*" #args ")" ) /* fake ret to make copy protections happy */ __ASM_CFI(".cfi_def_cfa_register %ebp\n\t") \
"leal -(0x2cc+4)(%esp),%esp\n\t" /* sizeof(CONTEXT) + space for %eax */ \
"movl %eax,-4(%ebp)\n\t" \
"pushl %esp\n\t" /* context */ \
"call " __ASM_NAME("RtlCaptureContext") __ASM_STDCALL(4) "\n\t" \
"movl -4(%ebp),%eax\n\t" \
"movl %eax,0xb0(%esp)\n\t" /* context->Eax */ \
"pushl %esp\n\t" /* context */ \
"call " __ASM_NAME("__regs_") #name __ASM_STDCALL(4) "\n\t" \
"pushl %esp\n\t" /* context */ \
"pushl $-2\n\t" /* GetCurrentThread() */ \
"call " __ASM_NAME("NtSetContextThread") __ASM_STDCALL(8) "\n\t" \
"ret" ) /* fake ret to make copy protections happy */
#endif /* __WINE_KERNEL16_PRIVATE_H */ #endif /* __WINE_KERNEL16_PRIVATE_H */
...@@ -549,15 +549,15 @@ ...@@ -549,15 +549,15 @@
################################################################ ################################################################
# 32-bit version of the various 16-bit functions exported by kernel32 # 32-bit version of the various 16-bit functions exported by kernel32
# #
@ stdcall -arch=win32 -register VxDCall0() VxDCall @ stdcall -arch=win32 -norelay VxDCall0() VxDCall
@ stdcall -arch=win32 -register VxDCall1() VxDCall @ stdcall -arch=win32 -norelay VxDCall1() VxDCall
@ stdcall -arch=win32 -register VxDCall2() VxDCall @ stdcall -arch=win32 -norelay VxDCall2() VxDCall
@ stdcall -arch=win32 -register VxDCall3() VxDCall @ stdcall -arch=win32 -norelay VxDCall3() VxDCall
@ stdcall -arch=win32 -register VxDCall4() VxDCall @ stdcall -arch=win32 -norelay VxDCall4() VxDCall
@ stdcall -arch=win32 -register VxDCall5() VxDCall @ stdcall -arch=win32 -norelay VxDCall5() VxDCall
@ stdcall -arch=win32 -register VxDCall6() VxDCall @ stdcall -arch=win32 -norelay VxDCall6() VxDCall
@ stdcall -arch=win32 -register VxDCall7() VxDCall @ stdcall -arch=win32 -norelay VxDCall7() VxDCall
@ stdcall -arch=win32 -register VxDCall8() VxDCall @ stdcall -arch=win32 -norelay VxDCall8() VxDCall
@ stdcall -arch=win32 k32CharToOemA(str ptr) @ stdcall -arch=win32 k32CharToOemA(str ptr)
@ stdcall -arch=win32 k32CharToOemBuffA(str ptr long) @ stdcall -arch=win32 k32CharToOemBuffA(str ptr long)
@ stdcall -arch=win32 k32OemToCharA(ptr ptr) @ stdcall -arch=win32 k32OemToCharA(ptr ptr)
...@@ -584,19 +584,19 @@ ...@@ -584,19 +584,19 @@
@ stdcall -arch=win32 LoadLibrary16(str) @ stdcall -arch=win32 LoadLibrary16(str)
@ stdcall -arch=win32 FreeLibrary16(long) @ stdcall -arch=win32 FreeLibrary16(long)
@ stdcall -arch=win32 GetProcAddress16(long str) WIN32_GetProcAddress16 @ stdcall -arch=win32 GetProcAddress16(long str) WIN32_GetProcAddress16
@ stdcall -arch=win32 -register AllocMappedBuffer() @ stdcall -arch=win32 -norelay AllocMappedBuffer()
@ stdcall -arch=win32 -register FreeMappedBuffer() @ stdcall -arch=win32 -norelay FreeMappedBuffer()
@ stdcall -arch=win32 -register OT_32ThkLSF() @ stdcall -arch=win32 -norelay OT_32ThkLSF()
@ stdcall -arch=win32 ThunkInitLSF(ptr str long str str) @ stdcall -arch=win32 ThunkInitLSF(ptr str long str str)
@ stdcall -arch=win32 -norelay LogApiThkLSF(str) @ stdcall -arch=win32 -norelay LogApiThkLSF(str)
@ stdcall -arch=win32 ThunkInitLS(ptr str long str str) @ stdcall -arch=win32 ThunkInitLS(ptr str long str str)
@ stdcall -arch=win32 -norelay LogApiThkSL(str) @ stdcall -arch=win32 -norelay LogApiThkSL(str)
@ stdcall -arch=win32 -register Common32ThkLS() @ stdcall -arch=win32 -norelay Common32ThkLS()
@ stdcall -arch=win32 ThunkInitSL(ptr str long str str) @ stdcall -arch=win32 ThunkInitSL(ptr str long str str)
@ stdcall -arch=win32 -norelay LogCBThkSL(str) @ stdcall -arch=win32 -norelay LogCBThkSL(str)
@ stdcall -arch=win32 ReleaseThunkLock(ptr) @ stdcall -arch=win32 ReleaseThunkLock(ptr)
@ stdcall -arch=win32 RestoreThunkLock(long) @ stdcall -arch=win32 RestoreThunkLock(long)
@ stdcall -arch=win32 -register W32S_BackTo32() @ stdcall -arch=win32 -norelay W32S_BackTo32()
@ stdcall -arch=win32 GetThunkBuff() @ stdcall -arch=win32 GetThunkBuff()
@ stdcall -arch=win32 GetThunkStuff(str str) @ stdcall -arch=win32 GetThunkStuff(str str)
@ stdcall -arch=win32 K32WOWCallback16(long long) @ stdcall -arch=win32 K32WOWCallback16(long long)
...@@ -619,8 +619,8 @@ ...@@ -619,8 +619,8 @@
@ stdcall -arch=win32 _KERNEL32_86(ptr) @ stdcall -arch=win32 _KERNEL32_86(ptr)
@ stdcall -arch=win32 SSOnBigStack() @ stdcall -arch=win32 SSOnBigStack()
@ varargs -arch=win32 SSCall(long long ptr) @ varargs -arch=win32 SSCall(long long ptr)
@ stdcall -arch=win32 -register FT_PrologPrime() @ stdcall -arch=win32 -norelay FT_PrologPrime()
@ stdcall -arch=win32 -register QT_ThunkPrime() @ stdcall -arch=win32 -norelay QT_ThunkPrime()
@ stdcall -arch=win32 PK16FNF(ptr) @ stdcall -arch=win32 PK16FNF(ptr)
@ stdcall -arch=win32 GetPK16SysVar() @ stdcall -arch=win32 GetPK16SysVar()
@ stdcall -arch=win32 GetpWin16Lock(ptr) @ stdcall -arch=win32 GetpWin16Lock(ptr)
...@@ -648,12 +648,12 @@ ...@@ -648,12 +648,12 @@
@ stdcall -arch=win32 -norelay FT_Exit52() @ stdcall -arch=win32 -norelay FT_Exit52()
@ stdcall -arch=win32 -norelay FT_Exit56() @ stdcall -arch=win32 -norelay FT_Exit56()
@ stdcall -arch=win32 -norelay FT_Exit8() @ stdcall -arch=win32 -norelay FT_Exit8()
@ stdcall -arch=win32 -register FT_Prolog() @ stdcall -arch=win32 -norelay FT_Prolog()
@ stdcall -arch=win32 -register FT_Thunk() @ stdcall -arch=win32 -norelay FT_Thunk()
@ stdcall -arch=win32 FreeSLCallback(long) @ stdcall -arch=win32 FreeSLCallback(long)
@ stdcall -arch=win32 Get16DLLAddress(long str) @ stdcall -arch=win32 Get16DLLAddress(long str)
@ stdcall -arch=win32 -register K32Thk1632Epilog() @ stdcall -arch=win32 -norelay K32Thk1632Epilog()
@ stdcall -arch=win32 -register K32Thk1632Prolog() @ stdcall -arch=win32 -norelay K32Thk1632Prolog()
@ stdcall -arch=win32 -norelay MapHInstLS() @ stdcall -arch=win32 -norelay MapHInstLS()
@ stdcall -arch=win32 -norelay MapHInstLS_PN() @ stdcall -arch=win32 -norelay MapHInstLS_PN()
@ stdcall -arch=win32 -norelay MapHInstSL() @ stdcall -arch=win32 -norelay MapHInstSL()
...@@ -665,7 +665,7 @@ ...@@ -665,7 +665,7 @@
@ stdcall -arch=win32 MapSLFix(long) @ stdcall -arch=win32 MapSLFix(long)
@ stdcall -arch=win32 PrivateFreeLibrary(long) @ stdcall -arch=win32 PrivateFreeLibrary(long)
@ stdcall -arch=win32 PrivateLoadLibrary(str) @ stdcall -arch=win32 PrivateLoadLibrary(str)
@ stdcall -arch=win32 -register QT_Thunk() @ stdcall -arch=win32 -norelay QT_Thunk()
@ stdcall -arch=win32 -norelay SMapLS() @ stdcall -arch=win32 -norelay SMapLS()
@ stdcall -arch=win32 -norelay SMapLS_IP_EBP_12() @ stdcall -arch=win32 -norelay SMapLS_IP_EBP_12()
@ stdcall -arch=win32 -norelay SMapLS_IP_EBP_16() @ stdcall -arch=win32 -norelay SMapLS_IP_EBP_16()
......
...@@ -461,7 +461,7 @@ void WINAPI __regs_QT_Thunk( CONTEXT *context ) ...@@ -461,7 +461,7 @@ void WINAPI __regs_QT_Thunk( CONTEXT *context )
context->Esp += LOWORD(context16.Esp) - context->Esp += LOWORD(context16.Esp) -
( OFFSETOF(NtCurrentTeb()->WOW32Reserved) - argsize ); ( OFFSETOF(NtCurrentTeb()->WOW32Reserved) - argsize );
} }
DEFINE_REGS_ENTRYPOINT( QT_Thunk, 0 ) DEFINE_REGS_ENTRYPOINT( QT_Thunk )
/********************************************************************** /**********************************************************************
...@@ -527,7 +527,7 @@ void WINAPI __regs_FT_Prolog( CONTEXT *context ) ...@@ -527,7 +527,7 @@ void WINAPI __regs_FT_Prolog( CONTEXT *context )
*(DWORD *)(context->Ebp - 48) = context->Eax; *(DWORD *)(context->Ebp - 48) = context->Eax;
*(DWORD *)(context->Ebp - 52) = context->Edx; *(DWORD *)(context->Ebp - 52) = context->Edx;
} }
DEFINE_REGS_ENTRYPOINT( FT_Prolog, 0 ) DEFINE_REGS_ENTRYPOINT( FT_Prolog )
/********************************************************************** /**********************************************************************
* FT_Thunk (KERNEL32.@) * FT_Thunk (KERNEL32.@)
...@@ -593,7 +593,7 @@ void WINAPI __regs_FT_Thunk( CONTEXT *context ) ...@@ -593,7 +593,7 @@ void WINAPI __regs_FT_Thunk( CONTEXT *context )
/* Copy modified buffers back to 32-bit stack */ /* Copy modified buffers back to 32-bit stack */
memcpy( oldstack, newstack, argsize ); memcpy( oldstack, newstack, argsize );
} }
DEFINE_REGS_ENTRYPOINT( FT_Thunk, 0 ) DEFINE_REGS_ENTRYPOINT( FT_Thunk )
/*********************************************************************** /***********************************************************************
* FT_Exit0 (KERNEL32.@) * FT_Exit0 (KERNEL32.@)
...@@ -743,7 +743,7 @@ void WINAPI __regs_Common32ThkLS( CONTEXT *context ) ...@@ -743,7 +743,7 @@ void WINAPI __regs_Common32ThkLS( CONTEXT *context )
/* Clean up caller's stack frame */ /* Clean up caller's stack frame */
context->Esp += LOBYTE(context16.Ebx); context->Esp += LOBYTE(context16.Ebx);
} }
DEFINE_REGS_ENTRYPOINT( Common32ThkLS, 0 ) DEFINE_REGS_ENTRYPOINT( Common32ThkLS )
/*********************************************************************** /***********************************************************************
* OT_32ThkLSF (KERNEL32.40) * OT_32ThkLSF (KERNEL32.40)
...@@ -798,7 +798,7 @@ void WINAPI __regs_OT_32ThkLSF( CONTEXT *context ) ...@@ -798,7 +798,7 @@ void WINAPI __regs_OT_32ThkLSF( CONTEXT *context )
context->Esp += LOWORD(context16.Esp) - context->Esp += LOWORD(context16.Esp) -
( OFFSETOF(NtCurrentTeb()->WOW32Reserved) - argsize ); ( OFFSETOF(NtCurrentTeb()->WOW32Reserved) - argsize );
} }
DEFINE_REGS_ENTRYPOINT( OT_32ThkLSF, 0 ) DEFINE_REGS_ENTRYPOINT( OT_32ThkLSF )
/*********************************************************************** /***********************************************************************
* ThunkInitLSF (KERNEL32.41) * ThunkInitLSF (KERNEL32.41)
...@@ -897,7 +897,7 @@ void WINAPI __regs_FT_PrologPrime( CONTEXT *context ) ...@@ -897,7 +897,7 @@ void WINAPI __regs_FT_PrologPrime( CONTEXT *context )
/* Jump to the call stub just created */ /* Jump to the call stub just created */
context->Eip = (DWORD)relayCode; context->Eip = (DWORD)relayCode;
} }
DEFINE_REGS_ENTRYPOINT( FT_PrologPrime, 0 ) DEFINE_REGS_ENTRYPOINT( FT_PrologPrime )
/*********************************************************************** /***********************************************************************
* QT_ThunkPrime (KERNEL32.90) * QT_ThunkPrime (KERNEL32.90)
...@@ -927,7 +927,7 @@ void WINAPI __regs_QT_ThunkPrime( CONTEXT *context ) ...@@ -927,7 +927,7 @@ void WINAPI __regs_QT_ThunkPrime( CONTEXT *context )
/* Jump to the call stub just created */ /* Jump to the call stub just created */
context->Eip = (DWORD)relayCode; context->Eip = (DWORD)relayCode;
} }
DEFINE_REGS_ENTRYPOINT( QT_ThunkPrime, 0 ) DEFINE_REGS_ENTRYPOINT( QT_ThunkPrime )
/*********************************************************************** /***********************************************************************
* ThunkInitSL (KERNEL32.46) * ThunkInitSL (KERNEL32.46)
...@@ -1034,7 +1034,7 @@ void WINAPI __regs_W32S_BackTo32( CONTEXT *context ) ...@@ -1034,7 +1034,7 @@ void WINAPI __regs_W32S_BackTo32( CONTEXT *context )
context->Eax = call_entry_point( proc, 10, stack + 1 ); context->Eax = call_entry_point( proc, 10, stack + 1 );
context->Eip = stack32_pop(context); context->Eip = stack32_pop(context);
} }
DEFINE_REGS_ENTRYPOINT( W32S_BackTo32, 0 ) DEFINE_REGS_ENTRYPOINT( W32S_BackTo32 )
/********************************************************************** /**********************************************************************
* AllocSLCallback (KERNEL32.@) * AllocSLCallback (KERNEL32.@)
...@@ -1149,7 +1149,7 @@ void WINAPI __regs_AllocMappedBuffer( ...@@ -1149,7 +1149,7 @@ void WINAPI __regs_AllocMappedBuffer(
context->Edi = (DWORD)(buffer + 2); context->Edi = (DWORD)(buffer + 2);
} }
} }
DEFINE_REGS_ENTRYPOINT( AllocMappedBuffer, 0 ) DEFINE_REGS_ENTRYPOINT( AllocMappedBuffer )
/********************************************************************** /**********************************************************************
* FreeMappedBuffer (KERNEL32.39) * FreeMappedBuffer (KERNEL32.39)
...@@ -1172,7 +1172,7 @@ void WINAPI __regs_FreeMappedBuffer( ...@@ -1172,7 +1172,7 @@ void WINAPI __regs_FreeMappedBuffer(
GlobalFree((HGLOBAL)buffer[0]); GlobalFree((HGLOBAL)buffer[0]);
} }
} }
DEFINE_REGS_ENTRYPOINT( FreeMappedBuffer, 0 ) DEFINE_REGS_ENTRYPOINT( FreeMappedBuffer )
/********************************************************************** /**********************************************************************
* GetTEBSelectorFS (KERNEL.475) * GetTEBSelectorFS (KERNEL.475)
...@@ -1278,7 +1278,7 @@ void WINAPI __regs_K32Thk1632Prolog( CONTEXT *context ) ...@@ -1278,7 +1278,7 @@ void WINAPI __regs_K32Thk1632Prolog( CONTEXT *context )
been called. Thus we re-use it to hold the Win16Lock count */ been called. Thus we re-use it to hold the Win16Lock count */
ReleaseThunkLock(&CURRENT_STACK16->entry_point); ReleaseThunkLock(&CURRENT_STACK16->entry_point);
} }
DEFINE_REGS_ENTRYPOINT( K32Thk1632Prolog, 0 ) DEFINE_REGS_ENTRYPOINT( K32Thk1632Prolog )
/*********************************************************************** /***********************************************************************
* K32Thk1632Epilog (KERNEL32.@) * K32Thk1632Epilog (KERNEL32.@)
...@@ -1313,7 +1313,7 @@ void WINAPI __regs_K32Thk1632Epilog( CONTEXT *context ) ...@@ -1313,7 +1313,7 @@ void WINAPI __regs_K32Thk1632Epilog( CONTEXT *context )
context->Ebp, context->Esp, NtCurrentTeb()->WOW32Reserved); context->Ebp, context->Esp, NtCurrentTeb()->WOW32Reserved);
} }
} }
DEFINE_REGS_ENTRYPOINT( K32Thk1632Epilog, 0 ) DEFINE_REGS_ENTRYPOINT( K32Thk1632Epilog )
/********************************************************************* /*********************************************************************
* PK16FNF [KERNEL32.91] * PK16FNF [KERNEL32.91]
......
...@@ -313,7 +313,7 @@ void WINAPI DECLSPEC_HIDDEN __regs_VxDCall( CONTEXT *context ) ...@@ -313,7 +313,7 @@ void WINAPI DECLSPEC_HIDDEN __regs_VxDCall( CONTEXT *context )
context->Eax = 0xffffffff; /* FIXME */ context->Eax = 0xffffffff; /* FIXME */
} }
} }
DEFINE_REGS_ENTRYPOINT( VxDCall, 0 ) DEFINE_REGS_ENTRYPOINT( VxDCall )
/*********************************************************************** /***********************************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment