From cd50649255074f7d76400127ed7613d78c08488b Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 29 Mar 2011 10:21:30 +0000 Subject: * autoload.cc (winmm): Remove time functions. Don't treat unloadable wave functions as fatal. * hires.h (hires_ms::timeGetTime_ns): New private method. (hires_ms::dmsecs): Call timeGetTime_ns here. * ntdll.h (struct _KSYSTEM_TIME): Define. (KUSER_SHARED_DATA): Redefine to allow access to InterruptTime. (SharedUserData): Define here. (NtQueryTimerResolution): Declare. (NtSetTimerResolution): Declare. * path.cc (SharedUserData): Move to ntdll.h. * times.cc (hires_ms::timeGetTime_ns): New private method. Use throughout instead of timeGetTime. Document entire functionality of timeGetTime in case we need it. (hires_ms::resolution): Try a call to NtQueryTimerResolution to fetch current period. Fall back to heuristic if that fails. Cast to DWORD in assignments to minperiod. (clock_setres): Align period to possible values per a call to NtQueryTimerResolution. Explain why. Replace calls to timeBeginPeriod and timeEndPeriod with underlying call to NtSetTimerResolution. Use status code from NtSetTimerResolution to compute errno. Convert period to ULONGLONG and store 100ns value to simplify code. --- winsup/cygwin/autoload.cc | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) (limited to 'winsup/cygwin/autoload.cc') diff --git a/winsup/cygwin/autoload.cc b/winsup/cygwin/autoload.cc index 3cb68bafe..c0ab2ed26 100644 --- a/winsup/cygwin/autoload.cc +++ b/winsup/cygwin/autoload.cc @@ -455,27 +455,23 @@ LoadDLLfunc (SetProcessWindowStation, 4, user32) LoadDLLfunc (SetThreadDesktop, 4, user32) LoadDLLfunc (ShowWindowAsync, 8, user32) -LoadDLLfuncEx3 (timeBeginPeriod, 4, winmm, 0, 0, 1) -LoadDLLfuncEx3 (timeEndPeriod, 4, winmm, 0, 0, 1) -LoadDLLfuncEx3 (timeGetDevCaps, 8, winmm, 0, 0, 1) -LoadDLLfuncEx3 (timeGetTime, 0, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveInAddBuffer, 12, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveInClose, 4, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveInGetNumDevs, 0, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveInOpen, 24, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveInPrepareHeader, 12, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveInReset, 4, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveInStart, 4, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveInUnprepareHeader, 12, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveOutClose, 4, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveOutGetNumDevs, 0, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveOutGetVolume, 8, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveOutOpen, 24, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveOutPrepareHeader, 12, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveOutReset, 4, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveOutSetVolume, 8, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveOutUnprepareHeader, 12, winmm, 0, 0, 1) -LoadDLLfuncEx3 (waveOutWrite, 12, winmm, 0, 0, 1) +LoadDLLfuncEx3 (waveInAddBuffer, 12, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveInClose, 4, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveInGetNumDevs, 0, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveInOpen, 24, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveInPrepareHeader, 12, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveInReset, 4, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveInStart, 4, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveInUnprepareHeader, 12, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveOutClose, 4, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveOutGetNumDevs, 0, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveOutGetVolume, 8, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveOutOpen, 24, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveOutPrepareHeader, 12, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveOutReset, 4, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveOutSetVolume, 8, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveOutUnprepareHeader, 12, winmm, 1, 0, 1) +LoadDLLfuncEx3 (waveOutWrite, 12, winmm, 1, 0, 1) LoadDLLfunc (accept, 12, ws2_32) LoadDLLfunc (bind, 12, ws2_32) -- cgit v1.2.3