Move usage of 16 bit specific functions (MapSL) in 16 bit code only.
This commit is contained in:
parent
036dcf167e
commit
ce2d3ef77d
|
@ -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:
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue