diff --git a/mingw-w64-crt/lib32/kernel32.def b/mingw-w64-crt/lib32/kernel32.def index 0435d8d69..65a40c57e 100644 --- a/mingw-w64-crt/lib32/kernel32.def +++ b/mingw-w64-crt/lib32/kernel32.def @@ -226,6 +226,7 @@ DeleteFileTransactedA@8 DeleteFileTransactedW@8 DeleteFileW@4 DeleteProcThreadAttributeList@4 +DeleteSynchronizationBarrier@4 DeleteTimerQueue@4 DeleteTimerQueueEx@8 DeleteTimerQueueTimer@12 @@ -248,6 +249,7 @@ EncodeSystemPointer@4 EndUpdateResourceA@8 EndUpdateResourceW@8 EnterCriticalSection@4 +EnterSynchronizationBarrier@8 EnumCalendarInfoA@16 EnumCalendarInfoExA@16 EnumCalendarInfoExEx@24 @@ -762,6 +764,7 @@ InitializeCriticalSectionEx@12 InitializeProcThreadAttributeList@16 InitializeSListHead@4 InitializeSRWLock@4 +InitializeSynchronizationBarrier@12 InterlockedCompareExchange64@20 DATA ; FIXME: this is for Vista+. forwards to NTDLL.RtlInterlockedCompareExchange64@20 InterlockedCompareExchange@12 DATA InterlockedDecrement@4 DATA diff --git a/mingw-w64-crt/lib64/kernel32.def b/mingw-w64-crt/lib64/kernel32.def index ef659056a..0bbfe33f2 100644 --- a/mingw-w64-crt/lib64/kernel32.def +++ b/mingw-w64-crt/lib64/kernel32.def @@ -229,6 +229,7 @@ DeleteFileTransactedA DeleteFileTransactedW DeleteFileW DeleteProcThreadAttributeList +DeleteSynchronizationBarrier DeleteTimerQueue DeleteTimerQueueEx DeleteTimerQueueTimer @@ -256,6 +257,7 @@ EncodeSystemPointer EndUpdateResourceA EndUpdateResourceW EnterCriticalSection +EnterSynchronizationBarrier EnterUmsSchedulingMode EnumCalendarInfoA EnumCalendarInfoExA @@ -777,6 +779,7 @@ InitializeExtendedContext InitializeProcThreadAttributeList InitializeSListHead InitializeSRWLock +InitializeSynchronizationBarrier InterlockedFlushSList InterlockedPopEntrySList InterlockedPushEntrySList diff --git a/mingw-w64-headers/include/synchapi.h b/mingw-w64-headers/include/synchapi.h index d9a94eda0..e8e73e1ba 100755 --- a/mingw-w64-headers/include/synchapi.h +++ b/mingw-w64-headers/include/synchapi.h @@ -121,9 +121,6 @@ extern "C" { WINBASEAPI WINBOOL WINAPI SetWaitableTimer (HANDLE hTimer, const LARGE_INTEGER *lpDueTime, LONG lPeriod, PTIMERAPCROUTINE pfnCompletionRoutine, LPVOID lpArgToCompletionRoutine, WINBOOL fResume); WINBASEAPI WINBOOL WINAPI CancelWaitableTimer (HANDLE hTimer); WINBASEAPI HANDLE WINAPI OpenWaitableTimerW (DWORD dwDesiredAccess, WINBOOL bInheritHandle, LPCWSTR lpTimerName); - WINBOOL WINAPI EnterSynchronizationBarrier (LPSYNCHRONIZATION_BARRIER lpBarrier, DWORD dwFlags); - WINBOOL WINAPI InitializeSynchronizationBarrier (LPSYNCHRONIZATION_BARRIER lpBarrier, LONG lTotalThreads, LONG lSpinCount); - WINBOOL WINAPI DeleteSynchronizationBarrier (LPSYNCHRONIZATION_BARRIER lpBarrier); WINBASEAPI VOID WINAPI Sleep (DWORD dwMilliseconds); WINBASEAPI DWORD WINAPI SignalObjectAndWait (HANDLE hObjectToSignal, HANDLE hObjectToWaitOn, DWORD dwMilliseconds, WINBOOL bAlertable); #if _WIN32_WINNT >= 0x0600 @@ -139,6 +136,12 @@ extern "C" { WINBOOL WINAPI SetWaitableTimerEx (HANDLE hTimer, const LARGE_INTEGER *lpDueTime, LONG lPeriod, PTIMERAPCROUTINE pfnCompletionRoutine, LPVOID lpArgToCompletionRoutine, PREASON_CONTEXT WakeContext, ULONG TolerableDelay); #endif +#if _WIN32_WINNT >= 0x0602 + WINBASEAPI WINBOOL WINAPI EnterSynchronizationBarrier (LPSYNCHRONIZATION_BARRIER lpBarrier, DWORD dwFlags); + WINBASEAPI WINBOOL WINAPI InitializeSynchronizationBarrier (LPSYNCHRONIZATION_BARRIER lpBarrier, LONG lTotalThreads, LONG lSpinCount); + WINBASEAPI WINBOOL WINAPI DeleteSynchronizationBarrier (LPSYNCHRONIZATION_BARRIER lpBarrier); +#endif + #define CreateMutex __MINGW_NAME_AW(CreateMutex) #define CreateEvent __MINGW_NAME_AW(CreateEvent)