Move usage of 16 bit specific functions (MapSL) in 16 bit code only.

This commit is contained in:
Eric Pouech 2003-12-02 03:36:20 +00:00 committed by Alexandre Julliard
parent 036dcf167e
commit ce2d3ef77d
3 changed files with 11 additions and 4 deletions

View File

@ -53,6 +53,12 @@ static LRESULT DRIVER_CloseDriver16(HDRVR16, LPARAM, LPARAM);
static LRESULT DRIVER_SendMessage16(HDRVR16, UINT, LPARAM, LPARAM); static LRESULT DRIVER_SendMessage16(HDRVR16, UINT, LPARAM, LPARAM);
static LRESULT MMIO_Callback16(SEGPTR, LPMMIOINFO, UINT, LPARAM, LPARAM); static LRESULT MMIO_Callback16(SEGPTR, LPMMIOINFO, UINT, LPARAM, LPARAM);
static void MMSYSTEM_Yield(void)
{
DWORD count;
ReleaseThunkLock(&count);
RestoreThunkLock(count);
}
/* ################################################### /* ###################################################
* # LIBRARY # * # LIBRARY #
@ -87,6 +93,7 @@ BOOL WINAPI MMSYSTEM_LibMain(DWORD fdwReason, HINSTANCE hinstDLL, WORD ds,
pFnCloseDriver16 = DRIVER_CloseDriver16; pFnCloseDriver16 = DRIVER_CloseDriver16;
pFnSendMessage16 = DRIVER_SendMessage16; pFnSendMessage16 = DRIVER_SendMessage16;
pFnMmioCallback16 = MMIO_Callback16; pFnMmioCallback16 = MMIO_Callback16;
pFnYield16 = MMSYSTEM_Yield;
MMDRV_Init16(); MMDRV_Init16();
break; break;
case DLL_PROCESS_DETACH: case DLL_PROCESS_DETACH:

View File

@ -348,6 +348,8 @@ MMRESULT WINAPI timeEndPeriod(UINT wPeriod)
return 0; return 0;
} }
void (*pFnYield16)(void) /* = NULL */;
/************************************************************************** /**************************************************************************
* timeGetTime [MMSYSTEM.607] * timeGetTime [MMSYSTEM.607]
* timeGetTime [WINMM.@] * timeGetTime [WINMM.@]
@ -357,9 +359,7 @@ DWORD WINAPI timeGetTime(void)
/* FIXME: releasing the win16 lock here is a temporary hack (I hope) /* FIXME: releasing the win16 lock here is a temporary hack (I hope)
* that lets mciavi.drv run correctly * that lets mciavi.drv run correctly
*/ */
DWORD count; if (pFnYield16) pFnYield16();
ReleaseThunkLock(&count);
RestoreThunkLock(count);
TIME_MMTimeStart(); TIME_MMTimeStart();
return WINMM_IData->mmSysTimeMS; return WINMM_IData->mmSysTimeMS;
} }

View File

@ -305,7 +305,7 @@ extern WINMM_MapType (*pFnMciUnMapMsg32ATo16)(WORD,WORD,DWORD,DWORD);
extern LRESULT (*pFnCallMMDrvFunc16)(DWORD /* in fact FARPROC16 */,WORD,WORD,LONG,LONG,LONG); extern LRESULT (*pFnCallMMDrvFunc16)(DWORD /* in fact FARPROC16 */,WORD,WORD,LONG,LONG,LONG);
extern unsigned (*pFnLoadMMDrvFunc16)(LPCSTR,LPWINE_DRIVER, LPWINE_MM_DRIVER); extern unsigned (*pFnLoadMMDrvFunc16)(LPCSTR,LPWINE_DRIVER, LPWINE_MM_DRIVER);
extern LRESULT (*pFnMmioCallback16)(DWORD,LPMMIOINFO,UINT,LPARAM,LPARAM); extern LRESULT (*pFnMmioCallback16)(DWORD,LPMMIOINFO,UINT,LPARAM,LPARAM);
extern void (*pFnYield16)(void);
/* GetDriverFlags() returned bits is not documented (nor the call itself) /* GetDriverFlags() returned bits is not documented (nor the call itself)
* Here are Wine only definitions of the bits * Here are Wine only definitions of the bits
*/ */