mirror of
https://github.com/reactos/wine.git
synced 2025-03-01 01:05:54 +00:00
msvcr100: Add _SpinWait implementation.
This commit is contained in:
parent
889cce442e
commit
cda83f9c33
@ -1,9 +1,9 @@
|
||||
# MS VC++2010 runtime library
|
||||
|
||||
@ stub -arch=win32 ??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z
|
||||
@ stub -arch=win64 ??0?$_SpinWait@$00@details@Concurrency@@QEAA@P6AXXZ@Z
|
||||
@ stub -arch=win32 ??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z
|
||||
@ stub -arch=win64 ??0?$_SpinWait@$0A@@details@Concurrency@@QEAA@P6AXXZ@Z
|
||||
@ thiscall -arch=win32 ??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z(ptr ptr) SpinWait_ctor_yield
|
||||
@ cdecl -arch=win64 ??0?$_SpinWait@$00@details@Concurrency@@QEAA@P6AXXZ@Z(ptr ptr) SpinWait_ctor_yield
|
||||
@ thiscall -arch=win32 ??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z(ptr ptr) SpinWait_ctor
|
||||
@ cdecl -arch=win64 ??0?$_SpinWait@$0A@@details@Concurrency@@QEAA@P6AXXZ@Z(ptr ptr) SpinWait_ctor
|
||||
@ stub -arch=win32 ??0SchedulerPolicy@Concurrency@@QAA@IZZ
|
||||
@ stub -arch=win64 ??0SchedulerPolicy@Concurrency@@QEAA@_KZZ
|
||||
@ stub -arch=win32 ??0SchedulerPolicy@Concurrency@@QAE@ABV01@@Z
|
||||
@ -228,10 +228,10 @@
|
||||
@ extern ??_7bad_typeid@std@@6B@ MSVCRT_bad_typeid_vtable
|
||||
@ extern ??_7exception@@6B@ MSVCRT_exception_old_vtable
|
||||
@ extern ??_7exception@std@@6B@ MSVCRT_exception_vtable
|
||||
@ stub -arch=win32 ??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ
|
||||
@ stub -arch=win64 ??_F?$_SpinWait@$00@details@Concurrency@@QEAAXXZ
|
||||
@ stub -arch=win32 ??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ
|
||||
@ stub -arch=win64 ??_F?$_SpinWait@$0A@@details@Concurrency@@QEAAXXZ
|
||||
@ thiscall -arch=win32 ??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ(ptr) SpinWait_dtor
|
||||
@ cdecl -arch=win64 ??_F?$_SpinWait@$00@details@Concurrency@@QEAAXXZ(ptr) SpinWait_dtor
|
||||
@ thiscall -arch=win32 ??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ(ptr) SpinWait_dtor
|
||||
@ cdecl -arch=win64 ??_F?$_SpinWait@$0A@@details@Concurrency@@QEAAXXZ(ptr) SpinWait_dtor
|
||||
@ thiscall -arch=i386 ??_Fbad_cast@std@@QAEXXZ(ptr) MSVCRT_bad_cast_default_ctor
|
||||
@ cdecl -arch=win64 ??_Fbad_cast@std@@QEAAXXZ(ptr) MSVCRT_bad_cast_default_ctor
|
||||
@ thiscall -arch=i386 ??_Fbad_typeid@std@@QAEXXZ(ptr) MSVCRT_bad_typeid_default_ctor
|
||||
@ -325,10 +325,10 @@
|
||||
@ stub -arch=win64 ?_ConcRT_Trace@details@Concurrency@@YAXHPEB_WZZ
|
||||
@ stub -arch=win32 ?_Copy_str@exception@std@@AAEXPBD@Z
|
||||
@ stub -arch=win64 ?_Copy_str@exception@std@@AEAAXPEBD@Z
|
||||
@ stub -arch=win32 ?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ
|
||||
@ stub -arch=win64 ?_DoYield@?$_SpinWait@$00@details@Concurrency@@IEAAXXZ
|
||||
@ stub -arch=win32 ?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ
|
||||
@ stub -arch=win64 ?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IEAAXXZ
|
||||
@ thiscall -arch=win32 ?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ(ptr) SpinWait__DoYield
|
||||
@ cdecl -arch=win64 ?_DoYield@?$_SpinWait@$00@details@Concurrency@@IEAAXXZ(ptr) SpinWait__DoYield
|
||||
@ thiscall -arch=win32 ?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ(ptr) SpinWait__DoYield
|
||||
@ cdecl -arch=win64 ?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IEAAXXZ(ptr) SpinWait__DoYield
|
||||
@ stub -arch=win32 ?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QAE_NXZ
|
||||
@ stub -arch=win64 ?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QEAA_NXZ
|
||||
@ stub -arch=win32 ?_IsCanceling@_TaskCollection@details@Concurrency@@QAE_NXZ
|
||||
@ -337,10 +337,10 @@
|
||||
@ stub -arch=win64 ?_Name_base@type_info@@CAPEBDPEBV1@PEAU__type_info_node@@@Z
|
||||
@ stub -arch=win32 ?_Name_base_internal@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z
|
||||
@ stub -arch=win64 ?_Name_base_internal@type_info@@CAPEBDPEBV1@PEAU__type_info_node@@@Z
|
||||
@ stub -arch=win32 ?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ
|
||||
@ stub -arch=win64 ?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IEAAKXZ
|
||||
@ stub -arch=win32 ?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ
|
||||
@ stub -arch=win64 ?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IEAAKXZ
|
||||
@ thiscall -arch=win32 ?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ(ptr) SpinWait__NumberOfSpins
|
||||
@ cdecl -arch=win64 ?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IEAAKXZ(ptr) SpinWait__NumberOfSpins
|
||||
@ thiscall -arch=win32 ?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ(ptr) SpinWait__NumberOfSpins
|
||||
@ cdecl -arch=win64 ?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IEAAKXZ(ptr) SpinWait__NumberOfSpins
|
||||
@ stub -arch=win32 ?_Release@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ
|
||||
@ stub -arch=win64 ?_Release@_NonReentrantBlockingLock@details@Concurrency@@QEAAXXZ
|
||||
@ stub -arch=win32 ?_Release@_NonReentrantPPLLock@details@Concurrency@@QAEXXZ
|
||||
@ -355,10 +355,10 @@
|
||||
@ stub -arch=win64 ?_ReleaseRead@_ReaderWriterLock@details@Concurrency@@QEAAXXZ
|
||||
@ stub -arch=win32 ?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ
|
||||
@ stub -arch=win64 ?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QEAAXXZ
|
||||
@ stub -arch=win32 ?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ
|
||||
@ stub -arch=win64 ?_Reset@?$_SpinWait@$00@details@Concurrency@@IEAAXXZ
|
||||
@ stub -arch=win32 ?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ
|
||||
@ stub -arch=win64 ?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IEAAXXZ
|
||||
@ thiscall -arch=win32 ?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ(ptr) SpinWait__Reset
|
||||
@ cdecl -arch=win64 ?_Reset@?$_SpinWait@$00@details@Concurrency@@IEAAXXZ(ptr) SpinWait__Reset
|
||||
@ thiscall -arch=win32 ?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ(ptr) SpinWait__Reset
|
||||
@ cdecl -arch=win64 ?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IEAAXXZ(ptr) SpinWait__Reset
|
||||
@ stub -arch=win32 ?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z
|
||||
@ stub -arch=win64 ?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QEAA?AW4_TaskCollectionStatus@23@PEAV_UnrealizedChore@23@@Z
|
||||
@ stub -arch=win32 ?_RunAndWait@_TaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z
|
||||
@ -367,18 +367,18 @@
|
||||
@ stub -arch=win64 ?_Schedule@_StructuredTaskCollection@details@Concurrency@@QEAAXPEAV_UnrealizedChore@23@@Z
|
||||
@ stub -arch=win32 ?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z
|
||||
@ stub -arch=win64 ?_Schedule@_TaskCollection@details@Concurrency@@QEAAXPEAV_UnrealizedChore@23@@Z
|
||||
@ stub -arch=win32 ?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z
|
||||
@ stub -arch=win64 ?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QEAAXI@Z
|
||||
@ stub -arch=win32 ?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z
|
||||
@ stub -arch=win64 ?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QEAAXI@Z
|
||||
@ stub -arch=win32 ?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ
|
||||
@ stub -arch=win64 ?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IEAA_NXZ
|
||||
@ stub -arch=win32 ?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ
|
||||
@ stub -arch=win64 ?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IEAA_NXZ
|
||||
@ stub -arch=win32 ?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ
|
||||
@ stub -arch=win64 ?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QEAA_NXZ
|
||||
@ stub -arch=win32 ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ
|
||||
@ stub -arch=win64 ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QEAA_NXZ
|
||||
@ thiscall -arch=win32 ?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z(ptr long) SpinWait__SetSpinCount
|
||||
@ cdecl -arch=win64 ?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QEAAXI@Z(ptr long) SpinWait__SetSpinCount
|
||||
@ thiscall -arch=win32 ?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z(ptr long) SpinWait__SetSpinCount
|
||||
@ cdecl -arch=win64 ?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QEAAXI@Z(ptr long) SpinWait__SetSpinCount
|
||||
@ thiscall -arch=win32 ?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ(ptr) SpinWait__ShouldSpinAgain
|
||||
@ cdecl -arch=win64 ?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IEAA_NXZ(ptr) SpinWait__ShouldSpinAgain
|
||||
@ thiscall -arch=win32 ?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ(ptr) SpinWait__ShouldSpinAgain
|
||||
@ cdecl -arch=win64 ?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IEAA_NXZ(ptr) SpinWait__ShouldSpinAgain
|
||||
@ thiscall -arch=win32 ?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ(ptr) SpinWait__SpinOnce
|
||||
@ cdecl -arch=win64 ?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QEAA_NXZ(ptr) SpinWait__SpinOnce
|
||||
@ thiscall -arch=win32 ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ(ptr) SpinWait__SpinOnce
|
||||
@ cdecl -arch=win64 ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QEAA_NXZ(ptr) SpinWait__SpinOnce
|
||||
@ stub ?_SpinYield@Context@Concurrency@@SAXXZ
|
||||
@ stub -arch=win32 ?_Start@_Timer@details@Concurrency@@IAEXXZ
|
||||
@ stub -arch=win64 ?_Start@_Timer@details@Concurrency@@IEAAXXZ
|
||||
@ -407,7 +407,7 @@
|
||||
@ stub -arch=win64 ?_ValidateRead@@YAHPEBXI@Z
|
||||
@ stub -arch=win32 ?_ValidateWrite@@YAHPAXI@Z
|
||||
@ stub -arch=win64 ?_ValidateWrite@@YAHPEAXI@Z
|
||||
@ stub ?_Value@_SpinCount@details@Concurrency@@SAIXZ
|
||||
@ cdecl ?_Value@_SpinCount@details@Concurrency@@SAIXZ() SpinCount__Value
|
||||
@ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX@Z
|
||||
@ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX@Z
|
||||
@ stub -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0@Z
|
||||
|
@ -1,11 +1,11 @@
|
||||
# MS VC++2012 runtime library
|
||||
|
||||
@ stub -arch=arm ??0?$_SpinWait@$00@details@Concurrency@@QAA@P6AXXZ@Z
|
||||
@ stub -arch=i386 ??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z
|
||||
@ stub -arch=win64 ??0?$_SpinWait@$00@details@Concurrency@@QEAA@P6AXXZ@Z
|
||||
@ stub -arch=arm ??0?$_SpinWait@$0A@@details@Concurrency@@QAA@P6AXXZ@Z
|
||||
@ stub -arch=i386 ??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z
|
||||
@ stub -arch=win64 ??0?$_SpinWait@$0A@@details@Concurrency@@QEAA@P6AXXZ@Z
|
||||
@ cdecl -arch=arm ??0?$_SpinWait@$00@details@Concurrency@@QAA@P6AXXZ@Z(ptr ptr) SpinWait_ctor_yield
|
||||
@ thiscall -arch=i386 ??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z(ptr ptr) SpinWait_ctor_yield
|
||||
@ cdecl -arch=win64 ??0?$_SpinWait@$00@details@Concurrency@@QEAA@P6AXXZ@Z(ptr ptr) SpinWait_ctor_yield
|
||||
@ cdecl -arch=arm ??0?$_SpinWait@$0A@@details@Concurrency@@QAA@P6AXXZ@Z(ptr ptr) SpinWait_ctor
|
||||
@ thiscall -arch=i386 ??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z(ptr ptr) SpinWait_ctor
|
||||
@ cdecl -arch=win64 ??0?$_SpinWait@$0A@@details@Concurrency@@QEAA@P6AXXZ@Z(ptr ptr) SpinWait_ctor
|
||||
@ stub -arch=win32 ??0SchedulerPolicy@Concurrency@@QAA@IZZ
|
||||
@ stub -arch=win64 ??0SchedulerPolicy@Concurrency@@QEAA@_KZZ
|
||||
@ stub -arch=arm ??0SchedulerPolicy@Concurrency@@QAA@ABV01@@Z
|
||||
@ -374,12 +374,12 @@
|
||||
@ extern ??_7bad_cast@std@@6B@ MSVCRT_bad_cast_vtable
|
||||
@ extern ??_7bad_typeid@std@@6B@ MSVCRT_bad_typeid_vtable
|
||||
@ extern ??_7exception@std@@6B@ MSVCRT_exception_vtable
|
||||
@ stub -arch=arm ??_F?$_SpinWait@$00@details@Concurrency@@QAAXXZ
|
||||
@ stub -arch=i386 ??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ
|
||||
@ stub -arch=win64 ??_F?$_SpinWait@$00@details@Concurrency@@QEAAXXZ
|
||||
@ stub -arch=arm ??_F?$_SpinWait@$0A@@details@Concurrency@@QAAXXZ
|
||||
@ stub -arch=i386 ??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ
|
||||
@ stub -arch=win64 ??_F?$_SpinWait@$0A@@details@Concurrency@@QEAAXXZ
|
||||
@ cdecl -arch=arm ??_F?$_SpinWait@$00@details@Concurrency@@QAAXXZ(ptr) SpinWait_dtor
|
||||
@ thiscall -arch=i386 ??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ(ptr) SpinWait_dtor
|
||||
@ cdecl -arch=win64 ??_F?$_SpinWait@$00@details@Concurrency@@QEAAXXZ(ptr) SpinWait_dtor
|
||||
@ cdecl -arch=arm ??_F?$_SpinWait@$0A@@details@Concurrency@@QAAXXZ(ptr) SpinWait_dtor
|
||||
@ thiscall -arch=i386 ??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ(ptr) SpinWait_dtor
|
||||
@ cdecl -arch=win64 ??_F?$_SpinWait@$0A@@details@Concurrency@@QEAAXXZ(ptr) SpinWait_dtor
|
||||
@ stub -arch=arm ??_F_Context@details@Concurrency@@QAAXXZ
|
||||
@ stub -arch=i386 ??_F_Context@details@Concurrency@@QAEXXZ
|
||||
@ stub -arch=win64 ??_F_Context@details@Concurrency@@QEAAXXZ
|
||||
@ -524,12 +524,12 @@
|
||||
@ stub -arch=arm ?_Destroy@_CancellationTokenState@details@Concurrency@@EAAXXZ
|
||||
@ stub -arch=i386 ?_Destroy@_CancellationTokenState@details@Concurrency@@EAEXXZ
|
||||
@ stub -arch=win64 ?_Destroy@_CancellationTokenState@details@Concurrency@@EEAAXXZ
|
||||
@ stub -arch=arm ?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAAXXZ
|
||||
@ stub -arch=i386 ?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ
|
||||
@ stub -arch=win64 ?_DoYield@?$_SpinWait@$00@details@Concurrency@@IEAAXXZ
|
||||
@ stub -arch=arm ?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAAXXZ
|
||||
@ stub -arch=i386 ?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ
|
||||
@ stub -arch=win64 ?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IEAAXXZ
|
||||
@ cdecl -arch=arm ?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAAXXZ(ptr) SpinWait__DoYield
|
||||
@ thiscall -arch=i386 ?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ(ptr) SpinWait__DoYield
|
||||
@ cdecl -arch=win64 ?_DoYield@?$_SpinWait@$00@details@Concurrency@@IEAAXXZ(ptr) SpinWait__DoYield
|
||||
@ cdecl -arch=arm ?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAAXXZ(ptr) SpinWait__DoYield
|
||||
@ thiscall -arch=i386 ?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ(ptr) SpinWait__DoYield
|
||||
@ cdecl -arch=win64 ?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IEAAXXZ(ptr) SpinWait__DoYield
|
||||
@ stub ?_Get@_CurrentScheduler@details@Concurrency@@SA?AV_Scheduler@23@XZ
|
||||
@ stub -arch=win32 ?_GetConcRTTraceInfo@Concurrency@@YAPBU_CONCRT_TRACE_INFO@details@1@XZ
|
||||
@ stub -arch=win64 ?_GetConcRTTraceInfo@Concurrency@@YAPEBU_CONCRT_TRACE_INFO@details@1@XZ
|
||||
@ -561,12 +561,12 @@
|
||||
@ stub -arch=win64 ?_NewCollection@_AsyncTaskCollection@details@Concurrency@@SAPEAV123@PEAV_CancellationTokenState@23@@Z
|
||||
@ stub -arch=win32 ?_NewTokenState@_CancellationTokenState@details@Concurrency@@SAPAV123@XZ
|
||||
@ stub -arch=win64 ?_NewTokenState@_CancellationTokenState@details@Concurrency@@SAPEAV123@XZ
|
||||
@ stub -arch=arm ?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAAKXZ
|
||||
@ stub -arch=i386 ?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ
|
||||
@ stub -arch=win64 ?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IEAAKXZ
|
||||
@ stub -arch=arm ?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAAKXZ
|
||||
@ stub -arch=i386 ?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ
|
||||
@ stub -arch=win64 ?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IEAAKXZ
|
||||
@ cdecl -arch=arm ?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAAKXZ(ptr) SpinWait__NumberOfSpins
|
||||
@ thiscall -arch=i386 ?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ(ptr) SpinWait__NumberOfSpins
|
||||
@ cdecl -arch=win64 ?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IEAAKXZ(ptr) SpinWait__NumberOfSpins
|
||||
@ cdecl -arch=arm ?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAAKXZ(ptr) SpinWait__NumberOfSpins
|
||||
@ thiscall -arch=i386 ?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ(ptr) SpinWait__NumberOfSpins
|
||||
@ cdecl -arch=win64 ?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IEAAKXZ(ptr) SpinWait__NumberOfSpins
|
||||
@ stub ?_Oversubscribe@_Context@details@Concurrency@@SAX_N@Z
|
||||
@ stub -arch=arm ?_Reference@_Scheduler@details@Concurrency@@QAAIXZ
|
||||
@ stub -arch=i386 ?_Reference@_Scheduler@details@Concurrency@@QAEIXZ
|
||||
@ -602,12 +602,12 @@
|
||||
@ stub -arch=i386 ?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ
|
||||
@ stub -arch=win64 ?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QEAAXXZ
|
||||
@ stub ?_ReportUnobservedException@details@Concurrency@@YAXXZ
|
||||
@ stub -arch=arm ?_Reset@?$_SpinWait@$00@details@Concurrency@@IAAXXZ
|
||||
@ stub -arch=i386 ?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ
|
||||
@ stub -arch=win64 ?_Reset@?$_SpinWait@$00@details@Concurrency@@IEAAXXZ
|
||||
@ stub -arch=arm ?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAAXXZ
|
||||
@ stub -arch=i386 ?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ
|
||||
@ stub -arch=win64 ?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IEAAXXZ
|
||||
@ cdecl -arch=arm ?_Reset@?$_SpinWait@$00@details@Concurrency@@IAAXXZ(ptr) SpinWait__Reset
|
||||
@ thiscall -arch=i386 ?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ(ptr) SpinWait__Reset
|
||||
@ cdecl -arch=win64 ?_Reset@?$_SpinWait@$00@details@Concurrency@@IEAAXXZ(ptr) SpinWait__Reset
|
||||
@ cdecl -arch=arm ?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAAXXZ(ptr) SpinWait__Reset
|
||||
@ thiscall -arch=i386 ?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ(ptr) SpinWait__Reset
|
||||
@ cdecl -arch=win64 ?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IEAAXXZ(ptr) SpinWait__Reset
|
||||
@ stub -arch=arm ?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAA?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z
|
||||
@ stub -arch=i386 ?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z
|
||||
@ stub -arch=win64 ?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QEAA?AW4_TaskCollectionStatus@23@PEAV_UnrealizedChore@23@@Z
|
||||
@ -628,25 +628,25 @@
|
||||
@ stub -arch=win64 ?_Schedule@_TaskCollection@details@Concurrency@@QEAAXPEAV_UnrealizedChore@23@PEAVlocation@3@@Z
|
||||
@ stub -arch=win32 ?_ScheduleTask@_CurrentScheduler@details@Concurrency@@SAXP6AXPAX@Z0@Z
|
||||
@ stub -arch=win64 ?_ScheduleTask@_CurrentScheduler@details@Concurrency@@SAXP6AXPEAX@Z0@Z
|
||||
@ stub -arch=arm ?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAAXI@Z
|
||||
@ stub -arch=i386 ?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z
|
||||
@ stub -arch=win64 ?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QEAAXI@Z
|
||||
@ stub -arch=arm ?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAAXI@Z
|
||||
@ stub -arch=i386 ?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z
|
||||
@ stub -arch=win64 ?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QEAAXI@Z
|
||||
@ cdecl -arch=arm ?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAAXI@Z(ptr long) SpinWait__SetSpinCount
|
||||
@ thiscall -arch=i386 ?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z(ptr long) SpinWait__SetSpinCount
|
||||
@ cdecl -arch=win64 ?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QEAAXI@Z(ptr long) SpinWait__SetSpinCount
|
||||
@ cdecl -arch=arm ?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAAXI@Z(ptr long) SpinWait__SetSpinCount
|
||||
@ thiscall -arch=i386 ?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z(ptr long) SpinWait__SetSpinCount
|
||||
@ cdecl -arch=win64 ?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QEAAXI@Z(ptr long) SpinWait__SetSpinCount
|
||||
@ stub ?_SetUnobservedExceptionHandler@details@Concurrency@@YAXP6AXXZ@Z
|
||||
@ stub -arch=arm ?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAA_NXZ
|
||||
@ stub -arch=i386 ?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ
|
||||
@ stub -arch=win64 ?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IEAA_NXZ
|
||||
@ stub -arch=arm ?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAA_NXZ
|
||||
@ stub -arch=i386 ?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ
|
||||
@ stub -arch=win64 ?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IEAA_NXZ
|
||||
@ stub -arch=arm ?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAA_NXZ
|
||||
@ stub -arch=i386 ?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ
|
||||
@ stub -arch=win64 ?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QEAA_NXZ
|
||||
@ stub -arch=arm ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAA_NXZ
|
||||
@ stub -arch=i386 ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ
|
||||
@ stub -arch=win64 ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QEAA_NXZ
|
||||
@ cdecl -arch=arm ?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAA_NXZ(ptr) SpinWait__ShouldSpinAgain
|
||||
@ thiscall -arch=i386 ?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ(ptr) SpinWait__ShouldSpinAgain
|
||||
@ cdecl -arch=win64 ?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IEAA_NXZ(ptr) SpinWait__ShouldSpinAgain
|
||||
@ cdecl -arch=arm ?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAA_NXZ(ptr) SpinWait__ShouldSpinAgain
|
||||
@ thiscall -arch=i386 ?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ(ptr) SpinWait__ShouldSpinAgain
|
||||
@ cdecl -arch=win64 ?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IEAA_NXZ(ptr) SpinWait__ShouldSpinAgain
|
||||
@ cdecl -arch=arm ?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAA_NXZ(ptr) SpinWait__SpinOnce
|
||||
@ thiscall -arch=i386 ?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ(ptr) SpinWait__SpinOnce
|
||||
@ cdecl -arch=win64 ?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QEAA_NXZ(ptr) SpinWait__SpinOnce
|
||||
@ cdecl -arch=arm ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAA_NXZ(ptr) SpinWait__SpinOnce
|
||||
@ thiscall -arch=i386 ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ(ptr) SpinWait__SpinOnce
|
||||
@ cdecl -arch=win64 ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QEAA_NXZ(ptr) SpinWait__SpinOnce
|
||||
@ stub ?_SpinYield@Context@Concurrency@@SAXXZ
|
||||
@ stub -arch=arm ?_Start@_Timer@details@Concurrency@@IAAXXZ
|
||||
@ stub -arch=i386 ?_Start@_Timer@details@Concurrency@@IAEXXZ
|
||||
@ -684,7 +684,7 @@
|
||||
@ stub -arch=win64 ?_ValidateRead@@YAHPEBXI@Z
|
||||
@ stub -arch=win32 ?_ValidateWrite@@YAHPAXI@Z
|
||||
@ stub -arch=win64 ?_ValidateWrite@@YAHPEAXI@Z
|
||||
@ stub ?_Value@_SpinCount@details@Concurrency@@SAIXZ
|
||||
@ cdecl ?_Value@_SpinCount@details@Concurrency@@SAIXZ() SpinCount__Value
|
||||
@ stub ?_Yield@_Context@details@Concurrency@@SAXXZ
|
||||
@ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX@Z
|
||||
@ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX@Z
|
||||
|
@ -16,12 +16,19 @@
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "wine/port.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "wine/debug.h"
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winternl.h"
|
||||
#include "msvcrt.h"
|
||||
#include "cppexcept.h"
|
||||
#include "mtdll.h"
|
||||
#include "cxx.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(msvcrt);
|
||||
|
||||
@ -137,3 +144,168 @@ void CDECL _unlock( int locknum )
|
||||
|
||||
LeaveCriticalSection( &(lock_table[ locknum ].crit) );
|
||||
}
|
||||
|
||||
#if _MSVCR_VER >= 100
|
||||
typedef enum
|
||||
{
|
||||
SPINWAIT_INIT,
|
||||
SPINWAIT_SPIN,
|
||||
SPINWAIT_YIELD,
|
||||
SPINWAIT_DONE
|
||||
} SpinWait_state;
|
||||
|
||||
typedef void (__cdecl *yield_func)(void);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
ULONG spin;
|
||||
ULONG unknown;
|
||||
SpinWait_state state;
|
||||
yield_func yield_func;
|
||||
} SpinWait;
|
||||
|
||||
/* ?_Value@_SpinCount@details@Concurrency@@SAIXZ */
|
||||
unsigned int __cdecl SpinCount__Value(void)
|
||||
{
|
||||
static unsigned int val = -1;
|
||||
|
||||
TRACE("()\n");
|
||||
|
||||
if(val == -1) {
|
||||
SYSTEM_INFO si;
|
||||
|
||||
GetSystemInfo(&si);
|
||||
val = si.dwNumberOfProcessors>1 ? 4000 : 0;
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
/* ??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z */
|
||||
/* ??0?$_SpinWait@$00@details@Concurrency@@QEAA@P6AXXZ@Z */
|
||||
DEFINE_THISCALL_WRAPPER(SpinWait_ctor_yield, 8)
|
||||
SpinWait* __thiscall SpinWait_ctor_yield(SpinWait *this, yield_func yf)
|
||||
{
|
||||
TRACE("(%p %p)\n", this, yf);
|
||||
|
||||
this->state = SPINWAIT_INIT;
|
||||
this->unknown = 1;
|
||||
this->yield_func = yf;
|
||||
return this;
|
||||
}
|
||||
|
||||
/* ??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z */
|
||||
/* ??0?$_SpinWait@$0A@@details@Concurrency@@QEAA@P6AXXZ@Z */
|
||||
DEFINE_THISCALL_WRAPPER(SpinWait_ctor, 8)
|
||||
SpinWait* __thiscall SpinWait_ctor(SpinWait *this, yield_func yf)
|
||||
{
|
||||
TRACE("(%p %p)\n", this, yf);
|
||||
|
||||
this->state = SPINWAIT_INIT;
|
||||
this->unknown = 0;
|
||||
this->yield_func = yf;
|
||||
return this;
|
||||
}
|
||||
|
||||
/* ??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ */
|
||||
/* ??_F?$_SpinWait@$00@details@Concurrency@@QEAAXXZ */
|
||||
/* ??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ */
|
||||
/* ??_F?$_SpinWait@$0A@@details@Concurrency@@QEAAXXZ */
|
||||
DEFINE_THISCALL_WRAPPER(SpinWait_dtor, 4)
|
||||
void __thiscall SpinWait_dtor(SpinWait *this)
|
||||
{
|
||||
TRACE("(%p)\n", this);
|
||||
}
|
||||
|
||||
/* ?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ */
|
||||
/* ?_DoYield@?$_SpinWait@$00@details@Concurrency@@IEAAXXZ */
|
||||
/* ?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ */
|
||||
/* ?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IEAAXXZ */
|
||||
DEFINE_THISCALL_WRAPPER(SpinWait__DoYield, 4)
|
||||
void __thiscall SpinWait__DoYield(SpinWait *this)
|
||||
{
|
||||
TRACE("(%p)\n", this);
|
||||
|
||||
if(this->unknown)
|
||||
this->yield_func();
|
||||
}
|
||||
|
||||
/* ?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ */
|
||||
/* ?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IEAAKXZ */
|
||||
/* ?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ */
|
||||
/* ?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IEAAKXZ */
|
||||
DEFINE_THISCALL_WRAPPER(SpinWait__NumberOfSpins, 4)
|
||||
ULONG __thiscall SpinWait__NumberOfSpins(SpinWait *this)
|
||||
{
|
||||
TRACE("(%p)\n", this);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z */
|
||||
/* ?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QEAAXI@Z */
|
||||
/* ?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z */
|
||||
/* ?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QEAAXI@Z */
|
||||
DEFINE_THISCALL_WRAPPER(SpinWait__SetSpinCount, 8)
|
||||
void __thiscall SpinWait__SetSpinCount(SpinWait *this, unsigned int spin)
|
||||
{
|
||||
TRACE("(%p %d)\n", this, spin);
|
||||
|
||||
this->spin = spin;
|
||||
this->state = spin ? SPINWAIT_SPIN : SPINWAIT_YIELD;
|
||||
}
|
||||
|
||||
/* ?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ */
|
||||
/* ?_Reset@?$_SpinWait@$00@details@Concurrency@@IEAAXXZ */
|
||||
/* ?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ */
|
||||
/* ?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IEAAXXZ */
|
||||
DEFINE_THISCALL_WRAPPER(SpinWait__Reset, 4)
|
||||
void __thiscall SpinWait__Reset(SpinWait *this)
|
||||
{
|
||||
SpinWait__SetSpinCount(this, SpinCount__Value());
|
||||
}
|
||||
|
||||
/* ?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ */
|
||||
/* ?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IEAA_NXZ */
|
||||
/* ?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ */
|
||||
/* ?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IEAA_NXZ */
|
||||
DEFINE_THISCALL_WRAPPER(SpinWait__ShouldSpinAgain, 4)
|
||||
MSVCRT_bool __thiscall SpinWait__ShouldSpinAgain(SpinWait *this)
|
||||
{
|
||||
TRACE("(%p)\n", this);
|
||||
|
||||
this->spin--;
|
||||
return this->spin > 0;
|
||||
}
|
||||
|
||||
/* ?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ */
|
||||
/* ?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QEAA_NXZ */
|
||||
/* ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ */
|
||||
/* ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QEAA_NXZ */
|
||||
DEFINE_THISCALL_WRAPPER(SpinWait__SpinOnce, 4)
|
||||
MSVCRT_bool __thiscall SpinWait__SpinOnce(SpinWait *this)
|
||||
{
|
||||
switch(this->state) {
|
||||
case SPINWAIT_INIT:
|
||||
SpinWait__Reset(this);
|
||||
/* fall through */
|
||||
case SPINWAIT_SPIN:
|
||||
#ifdef __i386__
|
||||
__asm__ __volatile__( "rep;nop" : : : "memory" );
|
||||
#else
|
||||
__asm__ __volatile__( "" : : : "memory" );
|
||||
#endif
|
||||
|
||||
this->spin--;
|
||||
if(!this->spin)
|
||||
this->state = this->unknown ? SPINWAIT_YIELD : SPINWAIT_DONE;
|
||||
return TRUE;
|
||||
case SPINWAIT_YIELD:
|
||||
this->state = SPINWAIT_DONE;
|
||||
this->yield_func();
|
||||
return TRUE;
|
||||
default:
|
||||
SpinWait__Reset(this);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -59,6 +59,7 @@
|
||||
#define MSVCRT__MAX_FNAME 256
|
||||
#define MSVCRT__MAX_EXT 256
|
||||
|
||||
typedef unsigned char MSVCRT_bool;
|
||||
typedef unsigned short MSVCRT_wchar_t;
|
||||
typedef unsigned short MSVCRT_wint_t;
|
||||
typedef unsigned short MSVCRT_wctype_t;
|
||||
|
Loading…
x
Reference in New Issue
Block a user