Renamed CallTo16* functions to wine_call_to_16* and export them from
kernel32.spec.
This commit is contained in:
parent
b5eefcd134
commit
e296bf3717
|
@ -950,3 +950,7 @@ debug_channels (comm debugstr dll int resource stress thunk toolhelp win32)
|
||||||
@ varargs __wine_call_from_16_long() __wine_call_from_16_long
|
@ varargs __wine_call_from_16_long() __wine_call_from_16_long
|
||||||
@ varargs __wine_call_from_16_regs() __wine_call_from_16_regs
|
@ varargs __wine_call_from_16_regs() __wine_call_from_16_regs
|
||||||
@ varargs __wine_call_from_16_thunk() __wine_call_from_16_thunk
|
@ varargs __wine_call_from_16_thunk() __wine_call_from_16_thunk
|
||||||
|
@ stdcall wine_call_to_16_word(ptr long) wine_call_to_16_word
|
||||||
|
@ stdcall wine_call_to_16_long(ptr long) wine_call_to_16_long
|
||||||
|
@ stdcall wine_call_to_16_regs_short(ptr long) wine_call_to_16_regs_short
|
||||||
|
@ stdcall wine_call_to_16_regs_long (ptr long) wine_call_to_16_regs_long
|
||||||
|
|
|
@ -303,7 +303,7 @@ void WINAPI QT_Thunk( CONTEXT86 *context )
|
||||||
memcpy( (LPBYTE)CURRENT_STACK16 - argsize,
|
memcpy( (LPBYTE)CURRENT_STACK16 - argsize,
|
||||||
(LPBYTE)context->Esp, argsize );
|
(LPBYTE)context->Esp, argsize );
|
||||||
|
|
||||||
CallTo16RegisterShort( &context16, argsize );
|
wine_call_to_16_regs_short( &context16, argsize );
|
||||||
context->Eax = context16.Eax;
|
context->Eax = context16.Eax;
|
||||||
context->Edx = context16.Edx;
|
context->Edx = context16.Edx;
|
||||||
context->Ecx = context16.Ecx;
|
context->Ecx = context16.Ecx;
|
||||||
|
@ -430,7 +430,7 @@ void WINAPI FT_Thunk( CONTEXT86 *context )
|
||||||
+ (*(LPBYTE *)arg - oldstack));
|
+ (*(LPBYTE *)arg - oldstack));
|
||||||
}
|
}
|
||||||
|
|
||||||
CallTo16RegisterShort( &context16, argsize );
|
wine_call_to_16_regs_short( &context16, argsize );
|
||||||
context->Eax = context16.Eax;
|
context->Eax = context16.Eax;
|
||||||
context->Edx = context16.Edx;
|
context->Edx = context16.Edx;
|
||||||
context->Ecx = context16.Ecx;
|
context->Ecx = context16.Ecx;
|
||||||
|
@ -637,7 +637,7 @@ void WINAPI Common32ThkLS( CONTEXT86 *context )
|
||||||
memcpy( (LPBYTE)CURRENT_STACK16 - argsize,
|
memcpy( (LPBYTE)CURRENT_STACK16 - argsize,
|
||||||
(LPBYTE)context->Esp, argsize );
|
(LPBYTE)context->Esp, argsize );
|
||||||
|
|
||||||
CallTo16RegisterLong(&context16, argsize + 32);
|
wine_call_to_16_regs_long(&context16, argsize + 32);
|
||||||
context->Eax = context16.Eax;
|
context->Eax = context16.Eax;
|
||||||
|
|
||||||
/* Clean up caller's stack frame */
|
/* Clean up caller's stack frame */
|
||||||
|
@ -688,7 +688,7 @@ void WINAPI OT_32ThkLSF( CONTEXT86 *context )
|
||||||
memcpy( (LPBYTE)CURRENT_STACK16 - argsize,
|
memcpy( (LPBYTE)CURRENT_STACK16 - argsize,
|
||||||
(LPBYTE)context->Esp, argsize );
|
(LPBYTE)context->Esp, argsize );
|
||||||
|
|
||||||
CallTo16RegisterShort(&context16, argsize);
|
wine_call_to_16_regs_short(&context16, argsize);
|
||||||
context->Eax = context16.Eax;
|
context->Eax = context16.Eax;
|
||||||
context->Edx = context16.Edx;
|
context->Edx = context16.Edx;
|
||||||
|
|
||||||
|
|
|
@ -266,12 +266,12 @@ BOOL WINAPI K32WOWCallback16Ex( DWORD vpfn16, DWORD dwFlags,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actually, we should take care whether the called routine cleans up
|
* Actually, we should take care whether the called routine cleans up
|
||||||
* its stack or not. Fortunately, our CallTo16 core doesn't rely on
|
* its stack or not. Fortunately, our wine_call_to_16 core doesn't rely on
|
||||||
* the callee to do so; after the routine has returned, the 16-bit
|
* the callee to do so; after the routine has returned, the 16-bit
|
||||||
* stack pointer is always reset to the position it had before.
|
* stack pointer is always reset to the position it had before.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ret = CallTo16Long( (FARPROC16)vpfn16, cbArgs );
|
ret = wine_call_to_16_long( (FARPROC16)vpfn16, cbArgs );
|
||||||
|
|
||||||
if ( pdwRetCode )
|
if ( pdwRetCode )
|
||||||
*pdwRetCode = ret;
|
*pdwRetCode = ret;
|
||||||
|
|
|
@ -82,7 +82,7 @@ static VOID WINAPI MOUSE_CallMouseEventProc( FARPROC16 proc,
|
||||||
context.Esi = LOWORD( dwExtraInfo );
|
context.Esi = LOWORD( dwExtraInfo );
|
||||||
context.Edi = HIWORD( dwExtraInfo );
|
context.Edi = HIWORD( dwExtraInfo );
|
||||||
|
|
||||||
CallTo16RegisterShort( &context, 0 );
|
wine_call_to_16_regs_short( &context, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID WINAPI WIN16_MOUSE_Enable( FARPROC16 proc )
|
VOID WINAPI WIN16_MOUSE_Enable( FARPROC16 proc )
|
||||||
|
|
|
@ -63,17 +63,37 @@ BOOL RELAY_Init(void)
|
||||||
* (these will never be called but need to be present to satisfy the linker ...)
|
* (these will never be called but need to be present to satisfy the linker ...)
|
||||||
*/
|
*/
|
||||||
#ifndef __i386__
|
#ifndef __i386__
|
||||||
WORD CALLBACK CallTo16Word( FARPROC16 target, INT nArgs )
|
/***********************************************************************
|
||||||
{ assert( FALSE ); }
|
* wine_call_to_16_word
|
||||||
|
*/
|
||||||
|
WORD WINAPI wine_call_to_16_word( FARPROC16 target, INT nArgs )
|
||||||
|
{
|
||||||
|
assert( FALSE );
|
||||||
|
}
|
||||||
|
|
||||||
LONG CALLBACK CallTo16Long( FARPROC16 target, INT nArgs )
|
/***********************************************************************
|
||||||
{ assert( FALSE ); }
|
* wine_call_to_16_long
|
||||||
|
*/
|
||||||
|
LONG WINAPI wine_call_to_16_long( FARPROC16 target, INT nArgs )
|
||||||
|
{
|
||||||
|
assert( FALSE );
|
||||||
|
}
|
||||||
|
|
||||||
void CALLBACK CallTo16RegisterShort( CONTEXT86 *context, INT nArgs )
|
/***********************************************************************
|
||||||
{ assert( FALSE ); }
|
* wine_call_to_16_regs_short
|
||||||
|
*/
|
||||||
|
void WINAPI wine_call_to_16_regs_short( CONTEXT86 *context, INT nArgs )
|
||||||
|
{
|
||||||
|
assert( FALSE );
|
||||||
|
}
|
||||||
|
|
||||||
void CALLBACK CallTo16RegisterLong ( CONTEXT86 *context, INT nArgs )
|
/***********************************************************************
|
||||||
{ assert( FALSE ); }
|
* wine_call_to_16_regs_long
|
||||||
|
*/
|
||||||
|
void WINAPI wine_call_to_16_regs_long ( CONTEXT86 *context, INT nArgs )
|
||||||
|
{
|
||||||
|
assert( FALSE );
|
||||||
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* __wine_call_from_16_word
|
* __wine_call_from_16_word
|
||||||
|
|
|
@ -13,11 +13,6 @@
|
||||||
struct _CONTEXT86;
|
struct _CONTEXT86;
|
||||||
struct _STACK16FRAME;
|
struct _STACK16FRAME;
|
||||||
|
|
||||||
extern WORD CALLBACK CallTo16Word( FARPROC16 target, INT nArgs );
|
|
||||||
extern LONG CALLBACK CallTo16Long( FARPROC16 target, INT nArgs );
|
|
||||||
extern void CALLBACK CallTo16RegisterShort( struct _CONTEXT86 *context, INT nArgs );
|
|
||||||
extern void CALLBACK CallTo16RegisterLong ( struct _CONTEXT86 *context, INT nArgs );
|
|
||||||
|
|
||||||
#include "pshpack1.h"
|
#include "pshpack1.h"
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
|
|
@ -255,4 +255,10 @@ SEGPTR WINAPI WIN16_LockResource16(HGLOBAL16);
|
||||||
LONG WINAPI WIN16_hread(HFILE16,SEGPTR,LONG);
|
LONG WINAPI WIN16_hread(HFILE16,SEGPTR,LONG);
|
||||||
UINT16 WINAPI WIN16_lread(HFILE16,SEGPTR,UINT16);
|
UINT16 WINAPI WIN16_lread(HFILE16,SEGPTR,UINT16);
|
||||||
|
|
||||||
|
/* Wine-specific functions */
|
||||||
|
WORD WINAPI wine_call_to_16_word( FARPROC16 target, INT nArgs );
|
||||||
|
LONG WINAPI wine_call_to_16_long( FARPROC16 target, INT nArgs );
|
||||||
|
void WINAPI wine_call_to_16_regs_short( CONTEXT86 *context, INT nArgs );
|
||||||
|
void WINAPI wine_call_to_16_regs_long ( CONTEXT86 *context, INT nArgs );
|
||||||
|
|
||||||
#endif /* __WINE_WINE_WINBASE16_H */
|
#endif /* __WINE_WINE_WINBASE16_H */
|
||||||
|
|
|
@ -1192,7 +1192,7 @@ static void NE_InitProcess(void)
|
||||||
SELECTOROF(pTask->teb->cur_stack),
|
SELECTOROF(pTask->teb->cur_stack),
|
||||||
OFFSETOF(pTask->teb->cur_stack) );
|
OFFSETOF(pTask->teb->cur_stack) );
|
||||||
|
|
||||||
CallTo16RegisterShort( &context, 0 );
|
wine_call_to_16_regs_short( &context, 0 );
|
||||||
ExitThread( LOWORD(context.Eax) );
|
ExitThread( LOWORD(context.Eax) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -627,7 +627,7 @@ static BOOL NE_InitDLL( TDB* pTask, NE_MODULE *pModule )
|
||||||
TRACE_(dll)("Calling LibMain, cs:ip=%04lx:%04lx ds=%04lx di=%04x cx=%04x\n",
|
TRACE_(dll)("Calling LibMain, cs:ip=%04lx:%04lx ds=%04lx di=%04x cx=%04x\n",
|
||||||
context.SegCs, context.Eip, context.SegDs,
|
context.SegCs, context.Eip, context.SegDs,
|
||||||
LOWORD(context.Edi), LOWORD(context.Ecx) );
|
LOWORD(context.Edi), LOWORD(context.Ecx) );
|
||||||
CallTo16RegisterShort( &context, 0 );
|
wine_call_to_16_regs_short( &context, 0 );
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -712,7 +712,7 @@ static void NE_CallDllEntryPoint( NE_MODULE *pModule, DWORD dwReason )
|
||||||
*(DWORD *)(stack - 14) = 0; /* dwReserved1 */
|
*(DWORD *)(stack - 14) = 0; /* dwReserved1 */
|
||||||
*(WORD *) (stack - 16) = 0; /* wReserved2 */
|
*(WORD *) (stack - 16) = 0; /* wReserved2 */
|
||||||
|
|
||||||
CallTo16RegisterShort( &context, 16 );
|
wine_call_to_16_regs_short( &context, 16 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -136,7 +136,7 @@ static void SYSTEM_CallSystemTimerProc( FARPROC16 proc, WORD timer )
|
||||||
|
|
||||||
AX_reg( &context ) = timer;
|
AX_reg( &context ) = timer;
|
||||||
|
|
||||||
CallTo16RegisterShort( &context, 0 );
|
wine_call_to_16_regs_short( &context, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
WORD WINAPI WIN16_CreateSystemTimer( WORD rate, FARPROC16 proc )
|
WORD WINAPI WIN16_CreateSystemTimer( WORD rate, FARPROC16 proc )
|
||||||
|
|
|
@ -287,7 +287,7 @@ static void DPMI_CallRMCBProc( CONTEXT86 *context, RMCB *rmcb, WORD flag )
|
||||||
ctx.SegEs = rmcb->regs_sel;
|
ctx.SegEs = rmcb->regs_sel;
|
||||||
ctx.Edi = rmcb->regs_ofs;
|
ctx.Edi = rmcb->regs_ofs;
|
||||||
/* FIXME: I'm pretty sure this isn't right - should push flags first */
|
/* FIXME: I'm pretty sure this isn't right - should push flags first */
|
||||||
CallTo16RegisterShort(&ctx, 0);
|
wine_call_to_16_regs_short(&ctx, 0);
|
||||||
es = ctx.SegEs;
|
es = ctx.SegEs;
|
||||||
edi = ctx.Edi;
|
edi = ctx.Edi;
|
||||||
}
|
}
|
||||||
|
@ -615,7 +615,7 @@ static void StartPM( CONTEXT86 *context, LPDOSTASK lpDosTask )
|
||||||
pm_ctx.SegGs = 0;
|
pm_ctx.SegGs = 0;
|
||||||
|
|
||||||
TRACE("DOS program is now entering protected mode\n");
|
TRACE("DOS program is now entering protected mode\n");
|
||||||
CallTo16RegisterShort(&pm_ctx, 0);
|
wine_call_to_16_regs_short(&pm_ctx, 0);
|
||||||
|
|
||||||
/* in the current state of affairs, we won't ever actually return here... */
|
/* in the current state of affairs, we won't ever actually return here... */
|
||||||
/* we should have int21/ah=4c do it someday, though... */
|
/* we should have int21/ah=4c do it someday, though... */
|
||||||
|
|
|
@ -329,7 +329,7 @@ static DWORD CALLBACK THREAD_StartThread16( LPVOID threadArgs )
|
||||||
HeapFree( GetProcessHeap(), 0, threadArgs );
|
HeapFree( GetProcessHeap(), 0, threadArgs );
|
||||||
|
|
||||||
((LPDWORD)CURRENT_STACK16)[-1] = param;
|
((LPDWORD)CURRENT_STACK16)[-1] = param;
|
||||||
return CallTo16Long( start, sizeof(DWORD) );
|
return wine_call_to_16_long( start, sizeof(DWORD) );
|
||||||
}
|
}
|
||||||
HANDLE WINAPI CreateThread16( SECURITY_ATTRIBUTES *sa, DWORD stack,
|
HANDLE WINAPI CreateThread16( SECURITY_ATTRIBUTES *sa, DWORD stack,
|
||||||
FARPROC16 start, SEGPTR param,
|
FARPROC16 start, SEGPTR param,
|
||||||
|
|
|
@ -417,10 +417,10 @@ static void BuildCallFrom16Core( FILE *outfile, int reg_func, int thunk, int sho
|
||||||
*
|
*
|
||||||
* This routine builds the core routines used in 32->16 thunks:
|
* This routine builds the core routines used in 32->16 thunks:
|
||||||
*
|
*
|
||||||
* extern void CALLBACK CallTo16Word( SEGPTR target, int nb_args );
|
* extern void WINAPI wine_call_to_16_word( SEGPTR target, int nb_args );
|
||||||
* extern void CALLBACK CallTo16Long( SEGPTR target, int nb_args );
|
* extern void WINAPI wine_call_to_16_long( SEGPTR target, int nb_args );
|
||||||
* extern void CALLBACK CallTo16RegisterShort( const CONTEXT86 *context, int nb_args );
|
* extern void WINAPI wine_call_to_16_regs_short( const CONTEXT86 *context, int nb_args );
|
||||||
* extern void CALLBACK CallTo16RegisterLong ( const CONTEXT86 *context, int nb_args );
|
* extern void WINAPI wine_call_to_16_regs_long ( const CONTEXT86 *context, int nb_args );
|
||||||
*
|
*
|
||||||
* These routines can be called directly from 32-bit code.
|
* These routines can be called directly from 32-bit code.
|
||||||
*
|
*
|
||||||
|
@ -442,19 +442,19 @@ static void BuildCallFrom16Core( FILE *outfile, int reg_func, int thunk, int sho
|
||||||
|
|
||||||
static void BuildCallTo16Core( FILE *outfile, int short_ret, int reg_func )
|
static void BuildCallTo16Core( FILE *outfile, int short_ret, int reg_func )
|
||||||
{
|
{
|
||||||
char *name = reg_func == 2 ? "RegisterLong" :
|
char *name = reg_func == 2 ? "regs_long" :
|
||||||
reg_func == 1 ? "RegisterShort" :
|
reg_func == 1 ? "regs_short" :
|
||||||
short_ret? "Word" : "Long";
|
short_ret? "word" : "long";
|
||||||
|
|
||||||
/* Function header */
|
/* Function header */
|
||||||
fprintf( outfile, "\n\t.align 4\n" );
|
fprintf( outfile, "\n\t.align 4\n" );
|
||||||
#ifdef USE_STABS
|
#ifdef USE_STABS
|
||||||
fprintf( outfile, ".stabs \"CallTo16%s:F1\",36,0,0," PREFIX "CallTo16%s\n",
|
fprintf( outfile, ".stabs \"wine_call_to_16_%s:F1\",36,0,0," PREFIX "wine_call_to_16_%s\n",
|
||||||
name, name);
|
name, name);
|
||||||
#endif
|
#endif
|
||||||
fprintf( outfile, "\t.type " PREFIX "CallTo16%s,@function\n", name );
|
fprintf( outfile, "\t.type " PREFIX "wine_call_to_16_%s,@function\n", name );
|
||||||
fprintf( outfile, "\t.globl " PREFIX "CallTo16%s\n", name );
|
fprintf( outfile, "\t.globl " PREFIX "wine_call_to_16_%s\n", name );
|
||||||
fprintf( outfile, PREFIX "CallTo16%s:\n", name );
|
fprintf( outfile, PREFIX "wine_call_to_16_%s:\n", name );
|
||||||
|
|
||||||
/* Function entry sequence */
|
/* Function entry sequence */
|
||||||
fprintf( outfile, "\tpushl %%ebp\n" );
|
fprintf( outfile, "\tpushl %%ebp\n" );
|
||||||
|
@ -470,10 +470,10 @@ static void BuildCallTo16Core( FILE *outfile, int short_ret, int reg_func )
|
||||||
if ( UsePIC )
|
if ( UsePIC )
|
||||||
{
|
{
|
||||||
/* Get Global Offset Table into %ebx */
|
/* Get Global Offset Table into %ebx */
|
||||||
fprintf( outfile, "\tcall .LCallTo16%s.getgot1\n", name );
|
fprintf( outfile, "\tcall .Lwine_call_to_16_%s.getgot1\n", name );
|
||||||
fprintf( outfile, ".LCallTo16%s.getgot1:\n", name );
|
fprintf( outfile, ".Lwine_call_to_16_%s.getgot1:\n", name );
|
||||||
fprintf( outfile, "\tpopl %%ebx\n" );
|
fprintf( outfile, "\tpopl %%ebx\n" );
|
||||||
fprintf( outfile, "\taddl $_GLOBAL_OFFSET_TABLE_+[.-.LCallTo16%s.getgot1], %%ebx\n", name );
|
fprintf( outfile, "\taddl $_GLOBAL_OFFSET_TABLE_+[.-.Lwine_call_to_16_%s.getgot1], %%ebx\n", name );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Enter Win16 Mutex */
|
/* Enter Win16 Mutex */
|
||||||
|
@ -509,7 +509,7 @@ static void BuildCallTo16Core( FILE *outfile, int short_ret, int reg_func )
|
||||||
|
|
||||||
/* Call the actual CallTo16 routine (simulate a lcall) */
|
/* Call the actual CallTo16 routine (simulate a lcall) */
|
||||||
fprintf( outfile, "\tpushl %%cs\n" );
|
fprintf( outfile, "\tpushl %%cs\n" );
|
||||||
fprintf( outfile, "\tcall .LCallTo16%s\n", name );
|
fprintf( outfile, "\tcall .Lwine_call_to_16_%s\n", name );
|
||||||
|
|
||||||
if ( !reg_func )
|
if ( !reg_func )
|
||||||
{
|
{
|
||||||
|
@ -553,10 +553,10 @@ static void BuildCallTo16Core( FILE *outfile, int short_ret, int reg_func )
|
||||||
if ( UsePIC )
|
if ( UsePIC )
|
||||||
{
|
{
|
||||||
/* Get Global Offset Table into %ebx (might have been overwritten) */
|
/* Get Global Offset Table into %ebx (might have been overwritten) */
|
||||||
fprintf( outfile, "\tcall .LCallTo16%s.getgot2\n", name );
|
fprintf( outfile, "\tcall .Lwine_call_to_16_%s.getgot2\n", name );
|
||||||
fprintf( outfile, ".LCallTo16%s.getgot2:\n", name );
|
fprintf( outfile, ".Lwine_call_to_16_%s.getgot2:\n", name );
|
||||||
fprintf( outfile, "\tpopl %%ebx\n" );
|
fprintf( outfile, "\tpopl %%ebx\n" );
|
||||||
fprintf( outfile, "\taddl $_GLOBAL_OFFSET_TABLE_+[.-.LCallTo16%s.getgot2], %%ebx\n", name );
|
fprintf( outfile, "\taddl $_GLOBAL_OFFSET_TABLE_+[.-.Lwine_call_to_16_%s.getgot2], %%ebx\n", name );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Print debugging info */
|
/* Print debugging info */
|
||||||
|
@ -595,7 +595,7 @@ static void BuildCallTo16Core( FILE *outfile, int short_ret, int reg_func )
|
||||||
|
|
||||||
/* Start of the actual CallTo16 routine */
|
/* Start of the actual CallTo16 routine */
|
||||||
|
|
||||||
fprintf( outfile, ".LCallTo16%s:\n", name );
|
fprintf( outfile, ".Lwine_call_to_16_%s:\n", name );
|
||||||
|
|
||||||
/* Complete STACK32FRAME */
|
/* Complete STACK32FRAME */
|
||||||
fprintf( outfile, "\t.byte 0x64\n\tpushl (%d)\n", STACKOFFSET );
|
fprintf( outfile, "\t.byte 0x64\n\tpushl (%d)\n", STACKOFFSET );
|
||||||
|
|
|
@ -413,7 +413,7 @@ static void BuildCallFrom16Func( FILE *outfile, char *profile, char *prefix, int
|
||||||
*
|
*
|
||||||
* These routines are provided solely for convenience; they simply
|
* These routines are provided solely for convenience; they simply
|
||||||
* write the arguments onto the 16-bit stack, and call the appropriate
|
* write the arguments onto the 16-bit stack, and call the appropriate
|
||||||
* CallTo16... core routine.
|
* wine_call_to_16... core routine.
|
||||||
*
|
*
|
||||||
* If you have more sophisticated argument conversion requirements than
|
* If you have more sophisticated argument conversion requirements than
|
||||||
* are provided by these routines, you might as well call the core
|
* are provided by these routines, you might as well call the core
|
||||||
|
@ -463,8 +463,8 @@ static void BuildCallTo16Func( FILE *outfile, char *profile, char *prefix )
|
||||||
fprintf( outfile, " *)args = arg%d;\n", i+1 );
|
fprintf( outfile, " *)args = arg%d;\n", i+1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf( outfile, " return CallTo16%s( proc, %d );\n}\n\n",
|
fprintf( outfile, " return wine_call_to_16_%s( proc, %d );\n}\n\n",
|
||||||
short_ret? "Word" : "Long", argsize );
|
short_ret? "word" : "long", argsize );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -802,8 +802,8 @@ void BuildGlue( FILE *outfile, FILE *infile )
|
||||||
fprintf( outfile, "#include \"builtin16.h\"\n" );
|
fprintf( outfile, "#include \"builtin16.h\"\n" );
|
||||||
fprintf( outfile, "#include \"stackframe.h\"\n\n" );
|
fprintf( outfile, "#include \"stackframe.h\"\n\n" );
|
||||||
|
|
||||||
fprintf( outfile, "extern WORD CALLBACK CallTo16Word( FARPROC16 target, INT nArgs );\n" );
|
fprintf( outfile, "extern WORD WINAPI wine_call_to_16_word( FARPROC16 target, INT nArgs );\n" );
|
||||||
fprintf( outfile, "extern LONG CALLBACK CallTo16Long( FARPROC16 target, INT nArgs );\n" );
|
fprintf( outfile, "extern LONG WINAPI wine_call_to_16_long( FARPROC16 target, INT nArgs );\n" );
|
||||||
|
|
||||||
/* Build the callback glue functions */
|
/* Build the callback glue functions */
|
||||||
|
|
||||||
|
|
|
@ -83,7 +83,7 @@ static VOID WINAPI KEYBOARD_CallKeybdEventProc( FARPROC16 proc,
|
||||||
context.Esi = LOWORD( dwExtraInfo );
|
context.Esi = LOWORD( dwExtraInfo );
|
||||||
context.Edi = HIWORD( dwExtraInfo );
|
context.Edi = HIWORD( dwExtraInfo );
|
||||||
|
|
||||||
CallTo16RegisterShort( &context, 0 );
|
wine_call_to_16_regs_short( &context, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID WINAPI WIN16_KEYBOARD_Enable( FARPROC16 proc, LPBYTE lpKeyState )
|
VOID WINAPI WIN16_KEYBOARD_Enable( FARPROC16 proc, LPBYTE lpKeyState )
|
||||||
|
|
|
@ -238,7 +238,7 @@ static LRESULT WINAPI WINPROC_CallWndProc16( WNDPROC16 proc, HWND16 hwnd,
|
||||||
args[3] = msg;
|
args[3] = msg;
|
||||||
args[4] = hwnd;
|
args[4] = hwnd;
|
||||||
|
|
||||||
CallTo16RegisterShort( &context, 5 * sizeof(WORD) );
|
wine_call_to_16_regs_short( &context, 5 * sizeof(WORD) );
|
||||||
ret = MAKELONG( LOWORD(context.Eax), LOWORD(context.Edx) );
|
ret = MAKELONG( LOWORD(context.Eax), LOWORD(context.Edx) );
|
||||||
if (offset) stack16_pop( offset );
|
if (offset) stack16_pop( offset );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue