Commit 2c7a2480 authored by Alexandre Julliard's avatar Alexandre Julliard

Converted all the kernel32 register functions to the

DEFINE_REGS_ENTRYPOINT mechanism.
parent 84e00d48
......@@ -980,7 +980,7 @@ BOOL WINAPI LocalUnlock(
*
* The SEGPTR is used by the caller!
*/
void AllocMappedBuffer( CONTEXT86 *context )
void WINAPI __regs_AllocMappedBuffer( CONTEXT86 *context )
{
HGLOBAL handle = GlobalAlloc(0, context->Edi + 8);
DWORD *buffer = (DWORD *)GlobalLock(handle);
......@@ -1004,7 +1004,9 @@ void AllocMappedBuffer( CONTEXT86 *context )
context->Edi = (DWORD)(buffer + 2);
}
}
#ifdef DEFINE_REGS_ENTRYPOINT
DEFINE_REGS_ENTRYPOINT( AllocMappedBuffer, 0, 0 );
#endif
/**********************************************************************
* FreeMappedBuffer (KERNEL32.39)
......@@ -1013,7 +1015,7 @@ void AllocMappedBuffer( CONTEXT86 *context )
*
* Input: EDI register: pointer to buffer
*/
void FreeMappedBuffer( CONTEXT86 *context )
void WINAPI __regs_FreeMappedBuffer( CONTEXT86 *context )
{
if (context->Edi)
{
......@@ -1025,6 +1027,9 @@ void FreeMappedBuffer( CONTEXT86 *context )
GlobalFree((HGLOBAL)buffer[0]);
}
}
#ifdef DEFINE_REGS_ENTRYPOINT
DEFINE_REGS_ENTRYPOINT( FreeMappedBuffer, 0, 0 );
#endif
/***********************************************************************
* GlobalMemoryStatusEx (KERNEL32.@)
......
......@@ -8,15 +8,15 @@
# - code generated by the MS Thunk Compiler
# - symbols exported by the Oct 94 beta version of kernel32.dll
1 stdcall -register -i386 VxDCall0(long) VxDCall
2 stdcall -register -i386 VxDCall1(long) VxDCall
3 stdcall -register -i386 VxDCall2(long) VxDCall
4 stdcall -register -i386 VxDCall3(long) VxDCall
5 stdcall -register -i386 VxDCall4(long) VxDCall
6 stdcall -register -i386 VxDCall5(long) VxDCall
7 stdcall -register -i386 VxDCall6(long) VxDCall
8 stdcall -register -i386 VxDCall7(long) VxDCall
9 stdcall -register -i386 VxDCall8(long) VxDCall
1 stdcall -i386 VxDCall0(long) VxDCall
2 stdcall -i386 VxDCall1(long) VxDCall
3 stdcall -i386 VxDCall2(long) VxDCall
4 stdcall -i386 VxDCall3(long) VxDCall
5 stdcall -i386 VxDCall4(long) VxDCall
6 stdcall -i386 VxDCall5(long) VxDCall
7 stdcall -i386 VxDCall6(long) VxDCall
8 stdcall -i386 VxDCall7(long) VxDCall
9 stdcall -i386 VxDCall8(long) VxDCall
10 stdcall k32CharToOemA(str ptr)
11 stdcall k32CharToOemBuffA(str ptr long)
12 stdcall k32OemToCharA(ptr ptr)
......@@ -24,7 +24,7 @@
14 stdcall k32LoadStringA(long long ptr long)
15 varargs k32wsprintfA(str str)
16 stdcall k32wvsprintfA(ptr str ptr)
17 stdcall -register -i386 CommonUnimpStub()
17 stdcall -i386 CommonUnimpStub()
18 stdcall GetProcessDword(long long)
19 stub ThunkTheTemplateHandle
20 stdcall DosFileHandleToWin32Handle(long)
......@@ -45,20 +45,20 @@
35 stdcall LoadLibrary16(str)
36 stdcall FreeLibrary16(long)
37 stdcall GetProcAddress16(long str) WIN32_GetProcAddress16
38 stdcall -register -i386 AllocMappedBuffer()
39 stdcall -register -i386 FreeMappedBuffer()
40 stdcall -register -i386 OT_32ThkLSF()
38 stdcall -i386 AllocMappedBuffer()
39 stdcall -i386 FreeMappedBuffer()
40 stdcall -i386 OT_32ThkLSF()
41 stdcall ThunkInitLSF(long str long str str)
42 stdcall -register -i386 LogApiThkLSF(str)
42 stdcall -i386 LogApiThkLSF(str)
43 stdcall ThunkInitLS(long str long str str)
44 stdcall -register -i386 LogApiThkSL(str)
45 stdcall -register -i386 Common32ThkLS()
44 stdcall -i386 LogApiThkSL(str)
45 stdcall -i386 Common32ThkLS()
46 stdcall ThunkInitSL(long str long str str)
47 stdcall -register -i386 LogCBThkSL(str)
47 stdcall -i386 LogCBThkSL(str)
48 stdcall ReleaseThunkLock(ptr)
49 stdcall RestoreThunkLock(long)
51 stdcall -register -i386 W32S_BackTo32()
51 stdcall -i386 W32S_BackTo32()
52 stdcall GetThunkBuff()
53 stdcall GetThunkStuff(str str)
54 stdcall K32WOWCallback16(long long)
......@@ -96,8 +96,8 @@
86 stdcall @(ptr) _KERNEL32_86
87 stdcall SSOnBigStack()
88 varargs SSCall(long long ptr)
89 stdcall -register -i386 FT_PrologPrime()
90 stdcall -register -i386 QT_ThunkPrime()
89 stdcall -i386 FT_PrologPrime()
90 stdcall -i386 QT_ThunkPrime()
91 stdcall PK16FNF(ptr)
92 stdcall GetPK16SysVar()
93 stdcall GetpWin16Lock(ptr)
......@@ -278,23 +278,23 @@
@ stdcall ExitThread(long)
@ stdcall ExpandEnvironmentStringsA(str ptr long)
@ stdcall ExpandEnvironmentStringsW(wstr ptr long)
@ stdcall -register -i386 FT_Exit0()
@ stdcall -register -i386 FT_Exit12()
@ stdcall -register -i386 FT_Exit16()
@ stdcall -register -i386 FT_Exit20()
@ stdcall -register -i386 FT_Exit24()
@ stdcall -register -i386 FT_Exit28()
@ stdcall -register -i386 FT_Exit32()
@ stdcall -register -i386 FT_Exit36()
@ stdcall -register -i386 FT_Exit40()
@ stdcall -register -i386 FT_Exit44()
@ stdcall -register -i386 FT_Exit48()
@ stdcall -register -i386 FT_Exit4()
@ stdcall -register -i386 FT_Exit52()
@ stdcall -register -i386 FT_Exit56()
@ stdcall -register -i386 FT_Exit8()
@ stdcall -register -i386 FT_Prolog()
@ stdcall -register -i386 FT_Thunk()
@ stdcall -i386 FT_Exit0()
@ stdcall -i386 FT_Exit12()
@ stdcall -i386 FT_Exit16()
@ stdcall -i386 FT_Exit20()
@ stdcall -i386 FT_Exit24()
@ stdcall -i386 FT_Exit28()
@ stdcall -i386 FT_Exit32()
@ stdcall -i386 FT_Exit36()
@ stdcall -i386 FT_Exit40()
@ stdcall -i386 FT_Exit44()
@ stdcall -i386 FT_Exit48()
@ stdcall -i386 FT_Exit4()
@ stdcall -i386 FT_Exit52()
@ stdcall -i386 FT_Exit56()
@ stdcall -i386 FT_Exit8()
@ stdcall -i386 FT_Prolog()
@ stdcall -i386 FT_Thunk()
@ stdcall FatalAppExitA(long str)
@ stdcall FatalAppExitW(long wstr)
@ stdcall FatalExit(long)
......@@ -590,8 +590,8 @@
@ stdcall IsValidCodePage(long)
@ stdcall IsValidLanguageGroup(long long)
@ stdcall IsValidLocale(long long)
@ stdcall -register -i386 K32Thk1632Epilog()
@ stdcall -register -i386 K32Thk1632Prolog()
@ stdcall -i386 K32Thk1632Epilog()
@ stdcall -i386 K32Thk1632Prolog()
@ stdcall LCMapStringA(long long str long ptr long)
@ stdcall LCMapStringW(long long wstr long ptr long)
@ stdcall LeaveCriticalSection(ptr) ntdll.RtlLeaveCriticalSection
......@@ -616,10 +616,10 @@
@ stdcall LockFileEx(long long long long long ptr)
@ stdcall LockResource(long)
@ stdcall MakeCriticalSectionGlobal(ptr)
@ stdcall -register -i386 MapHInstLS()
@ stdcall -register -i386 MapHInstLS_PN()
@ stdcall -register -i386 MapHInstSL()
@ stdcall -register -i386 MapHInstSL_PN()
@ stdcall -i386 MapHInstLS()
@ stdcall -i386 MapHInstLS_PN()
@ stdcall -i386 MapHInstSL()
@ stdcall -i386 MapHInstSL_PN()
@ stdcall MapHModuleLS(long)
@ stdcall MapHModuleSL(long)
@ stdcall MapLS(ptr)
......@@ -666,7 +666,7 @@
@ stdcall Process32NextW (ptr ptr)
@ stdcall PulseEvent(long)
@ stdcall PurgeComm(long long)
@ stdcall -register -i386 QT_Thunk()
@ stdcall -i386 QT_Thunk()
@ stdcall QueryDosDeviceA(str ptr long)
@ stdcall QueryDosDeviceW(wstr ptr long)
@ stub QueryInformationJobObject
......@@ -713,26 +713,26 @@
@ stdcall RtlMoveMemory(ptr ptr long) ntdll.RtlMoveMemory
@ stdcall RtlUnwind(ptr ptr ptr long) ntdll.RtlUnwind
@ stdcall RtlZeroMemory(ptr long) ntdll.RtlZeroMemory
@ stdcall -register -i386 SMapLS()
@ stdcall -register -i386 SMapLS_IP_EBP_12()
@ stdcall -register -i386 SMapLS_IP_EBP_16()
@ stdcall -register -i386 SMapLS_IP_EBP_20()
@ stdcall -register -i386 SMapLS_IP_EBP_24()
@ stdcall -register -i386 SMapLS_IP_EBP_28()
@ stdcall -register -i386 SMapLS_IP_EBP_32()
@ stdcall -register -i386 SMapLS_IP_EBP_36()
@ stdcall -register -i386 SMapLS_IP_EBP_40()
@ stdcall -register -i386 SMapLS_IP_EBP_8()
@ stdcall -register -i386 SUnMapLS()
@ stdcall -register -i386 SUnMapLS_IP_EBP_12()
@ stdcall -register -i386 SUnMapLS_IP_EBP_16()
@ stdcall -register -i386 SUnMapLS_IP_EBP_20()
@ stdcall -register -i386 SUnMapLS_IP_EBP_24()
@ stdcall -register -i386 SUnMapLS_IP_EBP_28()
@ stdcall -register -i386 SUnMapLS_IP_EBP_32()
@ stdcall -register -i386 SUnMapLS_IP_EBP_36()
@ stdcall -register -i386 SUnMapLS_IP_EBP_40()
@ stdcall -register -i386 SUnMapLS_IP_EBP_8()
@ stdcall -i386 SMapLS()
@ stdcall -i386 SMapLS_IP_EBP_8()
@ stdcall -i386 SMapLS_IP_EBP_12()
@ stdcall -i386 SMapLS_IP_EBP_16()
@ stdcall -i386 SMapLS_IP_EBP_20()
@ stdcall -i386 SMapLS_IP_EBP_24()
@ stdcall -i386 SMapLS_IP_EBP_28()
@ stdcall -i386 SMapLS_IP_EBP_32()
@ stdcall -i386 SMapLS_IP_EBP_36()
@ stdcall -i386 SMapLS_IP_EBP_40()
@ stdcall -i386 SUnMapLS()
@ stdcall -i386 SUnMapLS_IP_EBP_8()
@ stdcall -i386 SUnMapLS_IP_EBP_12()
@ stdcall -i386 SUnMapLS_IP_EBP_16()
@ stdcall -i386 SUnMapLS_IP_EBP_20()
@ stdcall -i386 SUnMapLS_IP_EBP_24()
@ stdcall -i386 SUnMapLS_IP_EBP_28()
@ stdcall -i386 SUnMapLS_IP_EBP_32()
@ stdcall -i386 SUnMapLS_IP_EBP_36()
@ stdcall -i386 SUnMapLS_IP_EBP_40()
@ stdcall ScrollConsoleScreenBufferA(long ptr ptr ptr ptr)
@ stdcall ScrollConsoleScreenBufferW(long ptr ptr ptr ptr)
@ stdcall SearchPathA(str str str long ptr ptr)
......@@ -838,7 +838,7 @@
@ stdcall UTRegister(long str str str ptr ptr ptr)
@ stdcall UTUnRegister(long)
@ stdcall UnMapLS(long)
@ stdcall -register -i386 UnMapSLFixArray(long long)
@ stdcall -i386 UnMapSLFixArray(long long)
@ stdcall UnhandledExceptionFilter(ptr)
@ stdcall UninitializeCriticalSection(ptr)
@ stdcall UnlockFile(long long long long long)
......
......@@ -374,8 +374,8 @@
469 stub WOAGimmeTitle
470 stub WOADestroyConsole
471 pascal GetCurrentProcessId() GetCurrentProcessId
472 pascal -register MapHInstLS() MapHInstLS
473 pascal -register MapHInstSL() MapHInstSL
472 pascal -register MapHInstLS() __regs_MapHInstLS
473 pascal -register MapHInstSL() __regs_MapHInstSL
474 pascal CloseW32Handle(long) CloseHandle
475 pascal -ret16 GetTEBSelectorFS() GetTEBSelectorFS16
476 pascal ConvertToGlobalHandle(long) ConvertToGlobalHandle
......
......@@ -2263,32 +2263,44 @@ HMODULE WINAPI MapHModuleSL(HMODULE16 hmod)
* MapHInstLS (KERNEL32.@)
* MapHInstLS (KERNEL.472)
*/
void MapHInstLS( CONTEXT86 *context )
void WINAPI __regs_MapHInstLS( CONTEXT86 *context )
{
context->Eax = MapHModuleLS( (HMODULE)context->Eax );
}
#ifdef DEFINE_REGS_ENTRYPOINT
DEFINE_REGS_ENTRYPOINT( MapHInstLS, 0, 0 );
#endif
/***************************************************************************
* MapHInstSL (KERNEL32.@)
* MapHInstSL (KERNEL.473)
*/
void MapHInstSL( CONTEXT86 *context )
void WINAPI __regs_MapHInstSL( CONTEXT86 *context )
{
context->Eax = (DWORD)MapHModuleSL( context->Eax );
}
#ifdef DEFINE_REGS_ENTRYPOINT
DEFINE_REGS_ENTRYPOINT( MapHInstSL, 0, 0 );
#endif
/***************************************************************************
* MapHInstLS_PN (KERNEL32.@)
*/
void MapHInstLS_PN( CONTEXT86 *context )
void WINAPI __regs_MapHInstLS_PN( CONTEXT86 *context )
{
if (context->Eax) context->Eax = MapHModuleLS( (HMODULE)context->Eax );
}
#ifdef DEFINE_REGS_ENTRYPOINT
DEFINE_REGS_ENTRYPOINT( MapHInstLS_PN, 0, 0 );
#endif
/***************************************************************************
* MapHInstSL_PN (KERNEL32.@)
*/
void MapHInstSL_PN( CONTEXT86 *context )
void WINAPI __regs_MapHInstSL_PN( CONTEXT86 *context )
{
if (context->Eax) context->Eax = (DWORD)MapHModuleSL( context->Eax );
}
#ifdef DEFINE_REGS_ENTRYPOINT
DEFINE_REGS_ENTRYPOINT( MapHInstSL_PN, 0, 0 );
#endif
......@@ -564,11 +564,13 @@ LPVOID WINAPI MapSLFix( SEGPTR sptr )
/***********************************************************************
* UnMapSLFixArray (KERNEL32.@)
*/
void UnMapSLFixArray( SEGPTR sptr[], INT length, CONTEXT86 *context )
void WINAPI __regs_UnMapSLFixArray( SEGPTR sptr[], INT length, CONTEXT86 *context )
{
/* Must not change EAX, hence defined as 'register' function */
}
#ifdef DEFINE_REGS_ENTRYPOINT
DEFINE_REGS_ENTRYPOINT( UnMapSLFixArray, 8, 8 );
#endif
/***********************************************************************
* GetThreadSelectorEntry (KERNEL32.@)
......@@ -637,77 +639,12 @@ BOOL WINAPI GetThreadSelectorEntry( HANDLE hthread, DWORD sel, LPLDT_ENTRY ldten
}
/**********************************************************************
* SMapLS* (KERNEL32)
* These functions map linear pointers at [EBP+xxx] to segmented pointers
* and return them.
* Win95 uses some kind of alias structs, which it stores in [EBP+x] to
* unravel them at SUnMapLS. We just store the segmented pointer there.
*/
static void x_SMapLS_IP_EBP_x(CONTEXT86 *context,int argoff)
{
DWORD val,ptr;
val =*(DWORD*)(context->Ebp + argoff);
if (val<0x10000) {
ptr=val;
*(DWORD*)(context->Ebp + argoff) = 0;
} else {
ptr = MapLS((LPVOID)val);
*(DWORD*)(context->Ebp + argoff) = ptr;
}
context->Eax = ptr;
}
/***********************************************************************
* SMapLS_IP_EBP_8 (KERNEL32.@)
*/
void SMapLS_IP_EBP_8 (CONTEXT86 *context) {x_SMapLS_IP_EBP_x(context, 8);}
/***********************************************************************
* SMapLS_IP_EBP_12 (KERNEL32.@)
*/
void SMapLS_IP_EBP_12(CONTEXT86 *context) {x_SMapLS_IP_EBP_x(context,12);}
/***********************************************************************
* SMapLS_IP_EBP_16 (KERNEL32.@)
*/
void SMapLS_IP_EBP_16(CONTEXT86 *context) {x_SMapLS_IP_EBP_x(context,16);}
/***********************************************************************
* SMapLS_IP_EBP_20 (KERNEL32.@)
*/
void SMapLS_IP_EBP_20(CONTEXT86 *context) {x_SMapLS_IP_EBP_x(context,20);}
/***********************************************************************
* SMapLS_IP_EBP_24 (KERNEL32.@)
*/
void SMapLS_IP_EBP_24(CONTEXT86 *context) {x_SMapLS_IP_EBP_x(context,24);}
/***********************************************************************
* SMapLS_IP_EBP_28 (KERNEL32.@)
*/
void SMapLS_IP_EBP_28(CONTEXT86 *context) {x_SMapLS_IP_EBP_x(context,28);}
/***********************************************************************
* SMapLS_IP_EBP_32 (KERNEL32.@)
*/
void SMapLS_IP_EBP_32(CONTEXT86 *context) {x_SMapLS_IP_EBP_x(context,32);}
/***********************************************************************
* SMapLS_IP_EBP_36 (KERNEL32.@)
*/
void SMapLS_IP_EBP_36(CONTEXT86 *context) {x_SMapLS_IP_EBP_x(context,36);}
/***********************************************************************
* SMapLS_IP_EBP_40 (KERNEL32.@)
*/
void SMapLS_IP_EBP_40(CONTEXT86 *context) {x_SMapLS_IP_EBP_x(context,40);}
#ifdef DEFINE_REGS_ENTRYPOINT
/***********************************************************************
* SMapLS (KERNEL32.@)
*/
void SMapLS( CONTEXT86 *context )
void WINAPI __regs_SMapLS( CONTEXT86 *context )
{
if (HIWORD(context->Eax))
{
......@@ -717,67 +654,87 @@ void SMapLS( CONTEXT86 *context )
context->Edx = 0;
}
}
DEFINE_REGS_ENTRYPOINT( SMapLS, 0, 0 );
/***********************************************************************
* SUnMapLS (KERNEL32.@)
*/
void SUnMapLS( CONTEXT86 *context )
void WINAPI __regs_SUnMapLS( CONTEXT86 *context )
{
if (HIWORD(context->Eax)) UnMapLS( (SEGPTR)context->Eax );
}
DEFINE_REGS_ENTRYPOINT( SUnMapLS, 0, 0 );
inline static void x_SUnMapLS_IP_EBP_x(CONTEXT86 *context,int argoff)
{
SEGPTR *ptr = (SEGPTR *)(context->Ebp + argoff);
if (*ptr)
{
UnMapLS( *ptr );
*ptr = 0;
}
}
/***********************************************************************
* SUnMapLS_IP_EBP_8 (KERNEL32.@)
* SMapLS_IP_EBP_8 (KERNEL32.@)
* SMapLS_IP_EBP_12 (KERNEL32.@)
* SMapLS_IP_EBP_16 (KERNEL32.@)
* SMapLS_IP_EBP_20 (KERNEL32.@)
* SMapLS_IP_EBP_24 (KERNEL32.@)
* SMapLS_IP_EBP_28 (KERNEL32.@)
* SMapLS_IP_EBP_32 (KERNEL32.@)
* SMapLS_IP_EBP_36 (KERNEL32.@)
* SMapLS_IP_EBP_40 (KERNEL32.@)
*
* These functions map linear pointers at [EBP+xxx] to segmented pointers
* and return them.
* Win95 uses some kind of alias structs, which it stores in [EBP+x] to
* unravel them at SUnMapLS. We just store the segmented pointer there.
*/
void SUnMapLS_IP_EBP_8 (CONTEXT86 *context) { x_SUnMapLS_IP_EBP_x(context, 8); }
#define DEFINE_SMapLS(n) \
void WINAPI __regs_SMapLS_IP_EBP_ ## n (CONTEXT86 *context) \
{ \
SEGPTR *ptr = (SEGPTR *)(context->Ebp + n); \
if (!HIWORD(*ptr)) \
{ \
context->Eax = *ptr; \
*ptr = 0; \
} \
else *ptr = context->Eax = MapLS((LPVOID)*ptr); \
} \
DEFINE_REGS_ENTRYPOINT( SMapLS_IP_EBP_ ## n, 0, 0 )
DEFINE_SMapLS(8);
DEFINE_SMapLS(12);
DEFINE_SMapLS(16);
DEFINE_SMapLS(20);
DEFINE_SMapLS(24);
DEFINE_SMapLS(28);
DEFINE_SMapLS(32);
DEFINE_SMapLS(36);
DEFINE_SMapLS(40);
/***********************************************************************
* SUnMapLS_IP_EBP_12 (KERNEL32.@)
*/
void SUnMapLS_IP_EBP_12(CONTEXT86 *context) { x_SUnMapLS_IP_EBP_x(context,12); }
/***********************************************************************
* SUnMapLS_IP_EBP_8 (KERNEL32.@)
* SUnMapLS_IP_EBP_12 (KERNEL32.@)
* SUnMapLS_IP_EBP_16 (KERNEL32.@)
*/
void SUnMapLS_IP_EBP_16(CONTEXT86 *context) { x_SUnMapLS_IP_EBP_x(context,16); }
/***********************************************************************
* SUnMapLS_IP_EBP_20 (KERNEL32.@)
*/
void SUnMapLS_IP_EBP_20(CONTEXT86 *context) { x_SUnMapLS_IP_EBP_x(context,20); }
/***********************************************************************
* SUnMapLS_IP_EBP_24 (KERNEL32.@)
*/
void SUnMapLS_IP_EBP_24(CONTEXT86 *context) { x_SUnMapLS_IP_EBP_x(context,24); }
/***********************************************************************
* SUnMapLS_IP_EBP_28 (KERNEL32.@)
*/
void SUnMapLS_IP_EBP_28(CONTEXT86 *context) { x_SUnMapLS_IP_EBP_x(context,28); }
/***********************************************************************
* SUnMapLS_IP_EBP_32 (KERNEL32.@)
*/
void SUnMapLS_IP_EBP_32(CONTEXT86 *context) { x_SUnMapLS_IP_EBP_x(context,32); }
/***********************************************************************
* SUnMapLS_IP_EBP_36 (KERNEL32.@)
*/
void SUnMapLS_IP_EBP_36(CONTEXT86 *context) { x_SUnMapLS_IP_EBP_x(context,36); }
/***********************************************************************
* SUnMapLS_IP_EBP_40 (KERNEL32.@)
*/
void SUnMapLS_IP_EBP_40(CONTEXT86 *context) { x_SUnMapLS_IP_EBP_x(context,40); }
#define DEFINE_SUnMapLS(n) \
void WINAPI __regs_SUnMapLS_IP_EBP_ ## n (CONTEXT86 *context) \
{ \
SEGPTR *ptr = (SEGPTR *)(context->Ebp + n); \
UnMapLS( *ptr ); \
*ptr = 0; \
} \
DEFINE_REGS_ENTRYPOINT( SUnMapLS_IP_EBP_ ## n, 0, 0 )
DEFINE_SUnMapLS(8);
DEFINE_SUnMapLS(12);
DEFINE_SUnMapLS(16);
DEFINE_SUnMapLS(20);
DEFINE_SUnMapLS(24);
DEFINE_SUnMapLS(28);
DEFINE_SUnMapLS(32);
DEFINE_SUnMapLS(36);
DEFINE_SUnMapLS(40);
#endif /* DEFINE_REGS_ENTRYPOINT */
......@@ -278,7 +278,7 @@ done:
* VxDCall7 (KERNEL32.8)
* VxDCall8 (KERNEL32.9)
*/
void VxDCall( DWORD service, CONTEXT86 *context )
void WINAPI __regs_VxDCall( DWORD service, CONTEXT86 *context )
{
int i;
VxDCallProc proc = NULL;
......@@ -304,6 +304,9 @@ void VxDCall( DWORD service, CONTEXT86 *context )
context->Eax = 0xffffffff; /* FIXME */
}
}
#ifdef DEFINE_REGS_ENTRYPOINT
DEFINE_REGS_ENTRYPOINT( VxDCall, 4, 4 );
#endif
/***********************************************************************
......
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