From 84bed7664c381637697f30f32f5b34787d9450da Mon Sep 17 00:00:00 2001 From: Piotr Caban <piotr@codeweavers.com> Date: Thu, 17 Nov 2016 09:56:06 -0600 Subject: [PATCH] msvcr110: Add Concurrency::details::_Condition_variable class stub. Based on patch by Yifu Wang. Signed-off-by: Piotr Caban <piotr@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org> --- dlls/concrt140/concrt140.spec | 24 ++++++------ dlls/msvcr110/msvcr110.spec | 36 +++++++++--------- dlls/msvcr120/msvcr120.spec | 36 +++++++++--------- dlls/msvcr120_app/msvcr120_app.spec | 36 +++++++++--------- dlls/msvcrt/lock.c | 58 +++++++++++++++++++++++++++++ 5 files changed, 124 insertions(+), 66 deletions(-) diff --git a/dlls/concrt140/concrt140.spec b/dlls/concrt140/concrt140.spec index b66edee8a5e..8d6549e130f 100644 --- a/dlls/concrt140/concrt140.spec +++ b/dlls/concrt140/concrt140.spec @@ -14,8 +14,8 @@ @ stub -arch=win64 ??0_Concurrent_queue_base_v4@details@Concurrency@@IEAA@_K@Z @ stub -arch=i386 ??0_Concurrent_queue_iterator_base_v4@details@Concurrency@@IAE@ABV_Concurrent_queue_base_v4@12@@Z @ stub -arch=win64 ??0_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@AEBV_Concurrent_queue_base_v4@12@@Z -@ stub -arch=i386 ??0_Condition_variable@details@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0_Condition_variable@details@Concurrency@@QEAA@XZ +@ thiscall -arch=i386 ??0_Condition_variable@details@Concurrency@@QAE@XZ(ptr) msvcr120.??0_Condition_variable@details@Concurrency@@QAE@XZ +@ cdecl -arch=win64 ??0_Condition_variable@details@Concurrency@@QEAA@XZ(ptr) msvcr120.??0_Condition_variable@details@Concurrency@@QEAA@XZ @ stub -arch=i386 ??0_Context@details@Concurrency@@QAE@PAVContext@2@@Z @ stub -arch=win64 ??0_Context@details@Concurrency@@QEAA@PEAVContext@2@@Z @ stub -arch=i386 ??0_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ @@ -166,8 +166,8 @@ @ stub -arch=win64 ??1_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@XZ @ stub -arch=i386 ??1_Concurrent_vector_base_v4@details@Concurrency@@IAE@XZ @ stub -arch=win64 ??1_Concurrent_vector_base_v4@details@Concurrency@@IEAA@XZ -@ stub -arch=i386 ??1_Condition_variable@details@Concurrency@@QAE@XZ -@ stub -arch=win64 ??1_Condition_variable@details@Concurrency@@QEAA@XZ +@ thiscall -arch=i386 ??1_Condition_variable@details@Concurrency@@QAE@XZ(ptr) msvcr120.??1_Condition_variable@details@Concurrency@@QAE@XZ +@ cdecl -arch=win64 ??1_Condition_variable@details@Concurrency@@QEAA@XZ(ptr) msvcr120.??1_Condition_variable@details@Concurrency@@QEAA@XZ @ stub -arch=i386 ??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ @ stub -arch=win64 ??1_NonReentrantBlockingLock@details@Concurrency@@QEAA@XZ @ stub -arch=i386 ??1_ReentrantBlockingLock@details@Concurrency@@QAE@XZ @@ -486,10 +486,10 @@ @ stub -arch=win64 ?lock_read@reader_writer_lock@Concurrency@@QEAAXXZ @ thiscall -arch=i386 ?native_handle@critical_section@Concurrency@@QAEAAV12@XZ(ptr) msvcr120.?native_handle@critical_section@Concurrency@@QAEAAV12@XZ @ cdecl -arch=win64 ?native_handle@critical_section@Concurrency@@QEAAAEAV12@XZ(ptr) msvcr120.?native_handle@critical_section@Concurrency@@QEAAAEAV12@XZ -@ stub -arch=i386 ?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ -@ stub -arch=win64 ?notify_all@_Condition_variable@details@Concurrency@@QEAAXXZ -@ stub -arch=i386 ?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ -@ stub -arch=win64 ?notify_one@_Condition_variable@details@Concurrency@@QEAAXXZ +@ thiscall -arch=i386 ?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ(ptr) msvcr120.?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ +@ cdecl -arch=win64 ?notify_all@_Condition_variable@details@Concurrency@@QEAAXXZ(ptr) msvcr120.?notify_all@_Condition_variable@details@Concurrency@@QEAAXXZ +@ thiscall -arch=i386 ?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ(ptr) msvcr120.?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ +@ cdecl -arch=win64 ?notify_one@_Condition_variable@details@Concurrency@@QEAAXXZ(ptr) msvcr120.?notify_one@_Condition_variable@details@Concurrency@@QEAAXXZ @ stub -arch=i386 ?reset@event@Concurrency@@QAEXXZ @ stub -arch=win64 ?reset@event@Concurrency@@QEAAXXZ @ stub -arch=i386 ?set@event@Concurrency@@QAEXXZ @@ -517,14 +517,14 @@ @ stub -arch=i386 ?unlock@reader_writer_lock@Concurrency@@QAEXXZ @ stub -arch=win64 ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ @ stub -arch=win64 ?wait@Concurrency@@YAXI@Z -@ stub -arch=i386 ?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z -@ stub -arch=win64 ?wait@_Condition_variable@details@Concurrency@@QEAAXAEAVcritical_section@3@@Z +@ thiscall -arch=i386 ?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z(ptr ptr) msvcr120.?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z +@ cdecl -arch=win64 ?wait@_Condition_variable@details@Concurrency@@QEAAXAEAVcritical_section@3@@Z(ptr ptr) msvcr120.?wait@_Condition_variable@details@Concurrency@@QEAAXAEAVcritical_section@3@@Z @ stub -arch=win32 ?wait@agent@Concurrency@@SA?AW4agent_status@2@PAV12@I@Z @ stub -arch=win64 ?wait@agent@Concurrency@@SA?AW4agent_status@2@PEAV12@I@Z @ stub -arch=i386 ?wait@event@Concurrency@@QAEII@Z @ stub -arch=win64 ?wait@event@Concurrency@@QEAA_KI@Z -@ stub -arch=i386 ?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z -@ stub -arch=win64 ?wait_for@_Condition_variable@details@Concurrency@@QEAA_NAEAVcritical_section@3@I@Z +@ thiscall -arch=i386 ?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z(ptr ptr long) msvcr120.?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z +@ cdecl -arch=win64 ?wait_for@_Condition_variable@details@Concurrency@@QEAA_NAEAVcritical_section@3@I@Z(ptr ptr long) msvcr120.?wait_for@_Condition_variable@details@Concurrency@@QEAA_NAEAVcritical_section@3@I@Z @ stub -arch=win32 ?wait_for_all@agent@Concurrency@@SAXIPAPAV12@PAW4agent_status@2@I@Z @ stub -arch=win64 ?wait_for_all@agent@Concurrency@@SAX_KPEAPEAV12@PEAW4agent_status@2@I@Z @ stub -arch=win32 ?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index b4549f580ee..e4ca89d2775 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -20,9 +20,9 @@ @ stub -arch=arm ??0_Cancellation_beacon@details@Concurrency@@QAA@XZ @ stub -arch=i386 ??0_Cancellation_beacon@details@Concurrency@@QAE@XZ @ stub -arch=win64 ??0_Cancellation_beacon@details@Concurrency@@QEAA@XZ -@ stub -arch=arm ??0_Condition_variable@details@Concurrency@@QAA@XZ -@ stub -arch=i386 ??0_Condition_variable@details@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0_Condition_variable@details@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??0_Condition_variable@details@Concurrency@@QAA@XZ(ptr) _Condition_variable_ctor +@ thiscall -arch=i386 ??0_Condition_variable@details@Concurrency@@QAE@XZ(ptr) _Condition_variable_ctor +@ cdecl -arch=win64 ??0_Condition_variable@details@Concurrency@@QEAA@XZ(ptr) _Condition_variable_ctor @ stub -arch=arm ??0_Context@details@Concurrency@@QAA@PAVContext@2@@Z @ stub -arch=i386 ??0_Context@details@Concurrency@@QAE@PAVContext@2@@Z @ stub -arch=win64 ??0_Context@details@Concurrency@@QEAA@PEAVContext@2@@Z @@ -278,9 +278,9 @@ @ stub -arch=arm ??1_Cancellation_beacon@details@Concurrency@@QAA@XZ @ stub -arch=i386 ??1_Cancellation_beacon@details@Concurrency@@QAE@XZ @ stub -arch=win64 ??1_Cancellation_beacon@details@Concurrency@@QEAA@XZ -@ stub -arch=arm ??1_Condition_variable@details@Concurrency@@QAA@XZ -@ stub -arch=i386 ??1_Condition_variable@details@Concurrency@@QAE@XZ -@ stub -arch=win64 ??1_Condition_variable@details@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??1_Condition_variable@details@Concurrency@@QAA@XZ(ptr) _Condition_variable_dtor +@ thiscall -arch=i386 ??1_Condition_variable@details@Concurrency@@QAE@XZ(ptr) _Condition_variable_dtor +@ cdecl -arch=win64 ??1_Condition_variable@details@Concurrency@@QEAA@XZ(ptr) _Condition_variable_dtor @ stub -arch=arm ??1_NonReentrantBlockingLock@details@Concurrency@@QAA@XZ @ stub -arch=i386 ??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ @ stub -arch=win64 ??1_NonReentrantBlockingLock@details@Concurrency@@QEAA@XZ @@ -761,12 +761,12 @@ @ cdecl -arch=arm ?native_handle@critical_section@Concurrency@@QAAAAV12@XZ(ptr) critical_section_native_handle @ thiscall -arch=i386 ?native_handle@critical_section@Concurrency@@QAEAAV12@XZ(ptr) critical_section_native_handle @ cdecl -arch=win64 ?native_handle@critical_section@Concurrency@@QEAAAEAV12@XZ(ptr) critical_section_native_handle -@ stub -arch=arm ?notify_all@_Condition_variable@details@Concurrency@@QAAXXZ -@ stub -arch=i386 ?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ -@ stub -arch=win64 ?notify_all@_Condition_variable@details@Concurrency@@QEAAXXZ -@ stub -arch=arm ?notify_one@_Condition_variable@details@Concurrency@@QAAXXZ -@ stub -arch=i386 ?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ -@ stub -arch=win64 ?notify_one@_Condition_variable@details@Concurrency@@QEAAXXZ +@ cdecl -arch=arm ?notify_all@_Condition_variable@details@Concurrency@@QAAXXZ(ptr) _Condition_variable_notify_all +@ thiscall -arch=i386 ?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ(ptr) _Condition_variable_notify_all +@ cdecl -arch=win64 ?notify_all@_Condition_variable@details@Concurrency@@QEAAXXZ(ptr) _Condition_variable_notify_all +@ cdecl -arch=arm ?notify_one@_Condition_variable@details@Concurrency@@QAAXXZ(ptr) _Condition_variable_notify_one +@ thiscall -arch=i386 ?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ(ptr) _Condition_variable_notify_one +@ cdecl -arch=win64 ?notify_one@_Condition_variable@details@Concurrency@@QEAAXXZ(ptr) _Condition_variable_notify_one @ cdecl -arch=arm ?raw_name@type_info@@QBAPBDXZ(ptr) MSVCRT_type_info_raw_name @ thiscall -arch=i386 ?raw_name@type_info@@QBEPBDXZ(ptr) MSVCRT_type_info_raw_name @ cdecl -arch=win64 ?raw_name@type_info@@QEBAPEBDXZ(ptr) MSVCRT_type_info_raw_name @@ -809,15 +809,15 @@ @ stub -arch=win64 ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ @ cdecl ?vswprintf@@YAHPA_WIPB_WPAD@Z(ptr long wstr ptr) MSVCRT_vsnwprintf @ stub ?wait@Concurrency@@YAXI@Z -@ stub -arch=arm ?wait@_Condition_variable@details@Concurrency@@QAAXAAVcritical_section@3@@Z -@ stub -arch=i386 ?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z -@ stub -arch=win64 ?wait@_Condition_variable@details@Concurrency@@QEAAXAEAVcritical_section@3@@Z +@ cdecl -arch=arm ?wait@_Condition_variable@details@Concurrency@@QAAXAAVcritical_section@3@@Z(ptr ptr) _Condition_variable_wait +@ thiscall -arch=i386 ?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z(ptr ptr) _Condition_variable_wait +@ cdecl -arch=win64 ?wait@_Condition_variable@details@Concurrency@@QEAAXAEAVcritical_section@3@@Z(ptr ptr) _Condition_variable_wait @ stub -arch=arm ?wait@event@Concurrency@@QAAII@Z @ stub -arch=i386 ?wait@event@Concurrency@@QAEII@Z @ stub -arch=win64 ?wait@event@Concurrency@@QEAA_KI@Z -@ stub -arch=arm ?wait_for@_Condition_variable@details@Concurrency@@QAA_NAAVcritical_section@3@I@Z -@ stub -arch=i386 ?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z -@ stub -arch=win64 ?wait_for@_Condition_variable@details@Concurrency@@QEAA_NAEAVcritical_section@3@I@Z +@ cdecl -arch=arm ?wait_for@_Condition_variable@details@Concurrency@@QAA_NAAVcritical_section@3@I@Z(ptr ptr long) _Condition_variable_wait_for +@ thiscall -arch=i386 ?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z(ptr ptr long) _Condition_variable_wait_for +@ cdecl -arch=win64 ?wait_for@_Condition_variable@details@Concurrency@@QEAA_NAEAVcritical_section@3@I@Z(ptr ptr long) _Condition_variable_wait_for @ stub -arch=win32 ?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z @ stub -arch=win64 ?wait_for_multiple@event@Concurrency@@SA_KPEAPEAV12@_K_NI@Z @ cdecl -arch=arm ?what@exception@std@@UBAPBDXZ(ptr) MSVCRT_what_exception diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 683dc6a901e..7ce5dfb3446 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -17,9 +17,9 @@ @ stub -arch=arm ??0_Cancellation_beacon@details@Concurrency@@QAA@XZ @ stub -arch=i386 ??0_Cancellation_beacon@details@Concurrency@@QAE@XZ @ stub -arch=win64 ??0_Cancellation_beacon@details@Concurrency@@QEAA@XZ -@ stub -arch=arm ??0_Condition_variable@details@Concurrency@@QAA@XZ -@ stub -arch=i386 ??0_Condition_variable@details@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0_Condition_variable@details@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??0_Condition_variable@details@Concurrency@@QAA@XZ(ptr) _Condition_variable_ctor +@ thiscall -arch=i386 ??0_Condition_variable@details@Concurrency@@QAE@XZ(ptr) _Condition_variable_ctor +@ cdecl -arch=win64 ??0_Condition_variable@details@Concurrency@@QEAA@XZ(ptr) _Condition_variable_ctor @ stub -arch=arm ??0_Context@details@Concurrency@@QAA@PAVContext@2@@Z @ stub -arch=i386 ??0_Context@details@Concurrency@@QAE@PAVContext@2@@Z @ stub -arch=win64 ??0_Context@details@Concurrency@@QEAA@PEAVContext@2@@Z @@ -272,9 +272,9 @@ @ stub -arch=arm ??1_Cancellation_beacon@details@Concurrency@@QAA@XZ @ stub -arch=i386 ??1_Cancellation_beacon@details@Concurrency@@QAE@XZ @ stub -arch=win64 ??1_Cancellation_beacon@details@Concurrency@@QEAA@XZ -@ stub -arch=arm ??1_Condition_variable@details@Concurrency@@QAA@XZ -@ stub -arch=i386 ??1_Condition_variable@details@Concurrency@@QAE@XZ -@ stub -arch=win64 ??1_Condition_variable@details@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??1_Condition_variable@details@Concurrency@@QAA@XZ(ptr) _Condition_variable_dtor +@ thiscall -arch=i386 ??1_Condition_variable@details@Concurrency@@QAE@XZ(ptr) _Condition_variable_dtor +@ cdecl -arch=win64 ??1_Condition_variable@details@Concurrency@@QEAA@XZ(ptr) _Condition_variable_dtor @ stub -arch=arm ??1_NonReentrantBlockingLock@details@Concurrency@@QAA@XZ @ stub -arch=i386 ??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ @ stub -arch=win64 ??1_NonReentrantBlockingLock@details@Concurrency@@QEAA@XZ @@ -743,12 +743,12 @@ @ cdecl -arch=arm ?native_handle@critical_section@Concurrency@@QAAAAV12@XZ(ptr) critical_section_native_handle @ thiscall -arch=i386 ?native_handle@critical_section@Concurrency@@QAEAAV12@XZ(ptr) critical_section_native_handle @ cdecl -arch=win64 ?native_handle@critical_section@Concurrency@@QEAAAEAV12@XZ(ptr) critical_section_native_handle -@ stub -arch=arm ?notify_all@_Condition_variable@details@Concurrency@@QAAXXZ -@ stub -arch=i386 ?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ -@ stub -arch=win64 ?notify_all@_Condition_variable@details@Concurrency@@QEAAXXZ -@ stub -arch=arm ?notify_one@_Condition_variable@details@Concurrency@@QAAXXZ -@ stub -arch=i386 ?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ -@ stub -arch=win64 ?notify_one@_Condition_variable@details@Concurrency@@QEAAXXZ +@ cdecl -arch=arm ?notify_all@_Condition_variable@details@Concurrency@@QAAXXZ(ptr) _Condition_variable_notify_all +@ thiscall -arch=i386 ?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ(ptr) _Condition_variable_notify_all +@ cdecl -arch=win64 ?notify_all@_Condition_variable@details@Concurrency@@QEAAXXZ(ptr) _Condition_variable_notify_all +@ cdecl -arch=arm ?notify_one@_Condition_variable@details@Concurrency@@QAAXXZ(ptr) _Condition_variable_notify_one +@ thiscall -arch=i386 ?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ(ptr) _Condition_variable_notify_one +@ cdecl -arch=win64 ?notify_one@_Condition_variable@details@Concurrency@@QEAAXXZ(ptr) _Condition_variable_notify_one @ cdecl -arch=arm ?raw_name@type_info@@QBAPBDXZ(ptr) MSVCRT_type_info_raw_name @ thiscall -arch=i386 ?raw_name@type_info@@QBEPBDXZ(ptr) MSVCRT_type_info_raw_name @ cdecl -arch=win64 ?raw_name@type_info@@QEBAPEBDXZ(ptr) MSVCRT_type_info_raw_name @@ -791,15 +791,15 @@ @ stub -arch=win64 ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ @ cdecl ?vswprintf@@YAHPA_WIPB_WPAD@Z(ptr long wstr ptr) MSVCRT_vsnwprintf @ stub ?wait@Concurrency@@YAXI@Z -@ stub -arch=arm ?wait@_Condition_variable@details@Concurrency@@QAAXAAVcritical_section@3@@Z -@ stub -arch=i386 ?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z -@ stub -arch=win64 ?wait@_Condition_variable@details@Concurrency@@QEAAXAEAVcritical_section@3@@Z +@ cdecl -arch=arm ?wait@_Condition_variable@details@Concurrency@@QAAXAAVcritical_section@3@@Z(ptr ptr) _Condition_variable_wait +@ thiscall -arch=i386 ?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z(ptr ptr) _Condition_variable_wait +@ cdecl -arch=win64 ?wait@_Condition_variable@details@Concurrency@@QEAAXAEAVcritical_section@3@@Z(ptr ptr) _Condition_variable_wait @ stub -arch=arm ?wait@event@Concurrency@@QAAII@Z @ stub -arch=i386 ?wait@event@Concurrency@@QAEII@Z @ stub -arch=win64 ?wait@event@Concurrency@@QEAA_KI@Z -@ stub -arch=arm ?wait_for@_Condition_variable@details@Concurrency@@QAA_NAAVcritical_section@3@I@Z -@ stub -arch=i386 ?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z -@ stub -arch=win64 ?wait_for@_Condition_variable@details@Concurrency@@QEAA_NAEAVcritical_section@3@I@Z +@ cdecl -arch=arm ?wait_for@_Condition_variable@details@Concurrency@@QAA_NAAVcritical_section@3@I@Z(ptr ptr long) _Condition_variable_wait_for +@ thiscall -arch=i386 ?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z(ptr ptr long) _Condition_variable_wait_for +@ cdecl -arch=win64 ?wait_for@_Condition_variable@details@Concurrency@@QEAA_NAEAVcritical_section@3@I@Z(ptr ptr long) _Condition_variable_wait_for @ stub -arch=win32 ?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z @ stub -arch=win64 ?wait_for_multiple@event@Concurrency@@SA_KPEAPEAV12@_K_NI@Z @ cdecl -arch=arm ?what@exception@std@@UBAPBDXZ(ptr) MSVCRT_what_exception diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index 0510b1647be..1acaf7c2990 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -15,9 +15,9 @@ @ stub -arch=arm ??0_Cancellation_beacon@details@Concurrency@@QAA@XZ @ stub -arch=i386 ??0_Cancellation_beacon@details@Concurrency@@QAE@XZ @ stub -arch=win64 ??0_Cancellation_beacon@details@Concurrency@@QEAA@XZ -@ stub -arch=arm ??0_Condition_variable@details@Concurrency@@QAA@XZ -@ stub -arch=i386 ??0_Condition_variable@details@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0_Condition_variable@details@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??0_Condition_variable@details@Concurrency@@QAA@XZ(ptr) msvcr120.??0_Condition_variable@details@Concurrency@@QAA@XZ +@ thiscall -arch=i386 ??0_Condition_variable@details@Concurrency@@QAE@XZ(ptr) msvcr120.??0_Condition_variable@details@Concurrency@@QAE@XZ +@ cdecl -arch=win64 ??0_Condition_variable@details@Concurrency@@QEAA@XZ(ptr) msvcr120.??0_Condition_variable@details@Concurrency@@QEAA@XZ @ stub -arch=arm ??0_Context@details@Concurrency@@QAA@PAVContext@2@@Z @ stub -arch=i386 ??0_Context@details@Concurrency@@QAE@PAVContext@2@@Z @ stub -arch=win64 ??0_Context@details@Concurrency@@QEAA@PEAVContext@2@@Z @@ -270,9 +270,9 @@ @ stub -arch=arm ??1_Cancellation_beacon@details@Concurrency@@QAA@XZ @ stub -arch=i386 ??1_Cancellation_beacon@details@Concurrency@@QAE@XZ @ stub -arch=win64 ??1_Cancellation_beacon@details@Concurrency@@QEAA@XZ -@ stub -arch=arm ??1_Condition_variable@details@Concurrency@@QAA@XZ -@ stub -arch=i386 ??1_Condition_variable@details@Concurrency@@QAE@XZ -@ stub -arch=win64 ??1_Condition_variable@details@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??1_Condition_variable@details@Concurrency@@QAA@XZ(ptr) msvcr120.??1_Condition_variable@details@Concurrency@@QAA@XZ +@ thiscall -arch=i386 ??1_Condition_variable@details@Concurrency@@QAE@XZ(ptr) msvcr120.??1_Condition_variable@details@Concurrency@@QAE@XZ +@ cdecl -arch=win64 ??1_Condition_variable@details@Concurrency@@QEAA@XZ(ptr) msvcr120.??1_Condition_variable@details@Concurrency@@QEAA@XZ @ stub -arch=arm ??1_NonReentrantBlockingLock@details@Concurrency@@QAA@XZ @ stub -arch=i386 ??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ @ stub -arch=win64 ??1_NonReentrantBlockingLock@details@Concurrency@@QEAA@XZ @@ -739,12 +739,12 @@ @ cdecl -arch=arm ?native_handle@critical_section@Concurrency@@QAAAAV12@XZ(ptr) msvcr120.?native_handle@critical_section@Concurrency@@QAAAAV12@XZ @ thiscall -arch=i386 ?native_handle@critical_section@Concurrency@@QAEAAV12@XZ(ptr) msvcr120.?native_handle@critical_section@Concurrency@@QAEAAV12@XZ @ cdecl -arch=win64 ?native_handle@critical_section@Concurrency@@QEAAAEAV12@XZ(ptr) msvcr120.?native_handle@critical_section@Concurrency@@QEAAAEAV12@XZ -@ stub -arch=arm ?notify_all@_Condition_variable@details@Concurrency@@QAAXXZ -@ stub -arch=i386 ?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ -@ stub -arch=win64 ?notify_all@_Condition_variable@details@Concurrency@@QEAAXXZ -@ stub -arch=arm ?notify_one@_Condition_variable@details@Concurrency@@QAAXXZ -@ stub -arch=i386 ?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ -@ stub -arch=win64 ?notify_one@_Condition_variable@details@Concurrency@@QEAAXXZ +@ cdecl -arch=arm ?notify_all@_Condition_variable@details@Concurrency@@QAAXXZ(ptr) msvcr120.?notify_all@_Condition_variable@details@Concurrency@@QAAXXZ +@ thiscall -arch=i386 ?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ(ptr) msvcr120.?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ +@ cdecl -arch=win64 ?notify_all@_Condition_variable@details@Concurrency@@QEAAXXZ(ptr) msvcr120.?notify_all@_Condition_variable@details@Concurrency@@QEAAXXZ +@ cdecl -arch=arm ?notify_one@_Condition_variable@details@Concurrency@@QAAXXZ(ptr) msvcr120.?notify_one@_Condition_variable@details@Concurrency@@QAAXXZ +@ thiscall -arch=i386 ?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ(ptr) msvcr120.?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ +@ cdecl -arch=win64 ?notify_one@_Condition_variable@details@Concurrency@@QEAAXXZ(ptr) msvcr120.?notify_one@_Condition_variable@details@Concurrency@@QEAAXXZ @ cdecl -arch=arm ?raw_name@type_info@@QBAPBDXZ(ptr) msvcr120.?raw_name@type_info@@QBAPBDXZ @ thiscall -arch=i386 ?raw_name@type_info@@QBEPBDXZ(ptr) msvcr120.?raw_name@type_info@@QBEPBDXZ @ cdecl -arch=win64 ?raw_name@type_info@@QEBAPEBDXZ(ptr) msvcr120.?raw_name@type_info@@QEBAPEBDXZ @@ -787,15 +787,15 @@ @ stub -arch=win64 ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ @ cdecl ?vswprintf@@YAHPA_WIPB_WPAD@Z(ptr long wstr ptr) msvcr120.?vswprintf@@YAHPA_WIPB_WPAD@Z @ stub ?wait@Concurrency@@YAXI@Z -@ stub -arch=arm ?wait@_Condition_variable@details@Concurrency@@QAAXAAVcritical_section@3@@Z -@ stub -arch=i386 ?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z -@ stub -arch=win64 ?wait@_Condition_variable@details@Concurrency@@QEAAXAEAVcritical_section@3@@Z +@ cdecl -arch=arm ?wait@_Condition_variable@details@Concurrency@@QAAXAAVcritical_section@3@@Z(ptr ptr) msvcr120.?wait@_Condition_variable@details@Concurrency@@QAAXAAVcritical_section@3@@Z +@ thiscall -arch=i386 ?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z(ptr ptr) msvcr120.?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z +@ cdecl -arch=win64 ?wait@_Condition_variable@details@Concurrency@@QEAAXAEAVcritical_section@3@@Z(ptr ptr) msvcr120.?wait@_Condition_variable@details@Concurrency@@QEAAXAEAVcritical_section@3@@Z @ stub -arch=arm ?wait@event@Concurrency@@QAAII@Z @ stub -arch=i386 ?wait@event@Concurrency@@QAEII@Z @ stub -arch=win64 ?wait@event@Concurrency@@QEAA_KI@Z -@ stub -arch=arm ?wait_for@_Condition_variable@details@Concurrency@@QAA_NAAVcritical_section@3@I@Z -@ stub -arch=i386 ?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z -@ stub -arch=win64 ?wait_for@_Condition_variable@details@Concurrency@@QEAA_NAEAVcritical_section@3@I@Z +@ cdecl -arch=arm ?wait_for@_Condition_variable@details@Concurrency@@QAA_NAAVcritical_section@3@I@Z(ptr ptr long) msvcr120.?wait_for@_Condition_variable@details@Concurrency@@QAA_NAAVcritical_section@3@I@Z +@ thiscall -arch=i386 ?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z(ptr ptr long) msvcr120.?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z +@ cdecl -arch=win64 ?wait_for@_Condition_variable@details@Concurrency@@QEAA_NAEAVcritical_section@3@I@Z(ptr ptr long) msvcr120.?wait_for@_Condition_variable@details@Concurrency@@QEAA_NAEAVcritical_section@3@I@Z @ stub -arch=win32 ?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z @ stub -arch=win64 ?wait_for_multiple@event@Concurrency@@SA_KPEAPEAV12@_K_NI@Z @ cdecl -arch=arm ?what@exception@std@@UBAPBDXZ(ptr) msvcr120.?what@exception@std@@UBAPBDXZ diff --git a/dlls/msvcrt/lock.c b/dlls/msvcrt/lock.c index d83425c7d58..008ce374cfb 100644 --- a/dlls/msvcrt/lock.c +++ b/dlls/msvcrt/lock.c @@ -558,6 +558,64 @@ unsigned int __cdecl _GetConcurrency(void) #endif +#if _MSVCR_VER >= 110 +typedef struct { + void *chain; + critical_section lock; +} _Condition_variable; + +/* ??0_Condition_variable@details@Concurrency@@QAE@XZ */ +/* ??0_Condition_variable@details@Concurrency@@QEAA@XZ */ +DEFINE_THISCALL_WRAPPER(_Condition_variable_ctor, 4) +_Condition_variable* __thiscall _Condition_variable_ctor(_Condition_variable *this) +{ + FIXME("(%p)\n", this); + return NULL; +} + +/* ??1_Condition_variable@details@Concurrency@@QAE@XZ */ +/* ??1_Condition_variable@details@Concurrency@@QEAA@XZ */ +DEFINE_THISCALL_WRAPPER(_Condition_variable_dtor, 4) +void __thiscall _Condition_variable_dtor(_Condition_variable *this) +{ + FIXME("(%p)\n", this); +} + +/* ?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z */ +/* ?wait@_Condition_variable@details@Concurrency@@QEAAXAEAVcritical_section@3@@Z */ +DEFINE_THISCALL_WRAPPER(_Condition_variable_wait, 8) +void __thiscall _Condition_variable_wait(_Condition_variable *this, critical_section *cs) +{ + FIXME("(%p, %p)\n", this, cs); +} + +/* ?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z */ +/* ?wait_for@_Condition_variable@details@Concurrency@@QEAA_NAEAVcritical_section@3@I@Z */ +DEFINE_THISCALL_WRAPPER(_Condition_variable_wait_for, 12) +MSVCRT_bool __thiscall _Condition_variable_wait_for(_Condition_variable *this, + critical_section *cs, unsigned int timeout) +{ + FIXME("(%p %p %d)\n", this, cs, timeout); + return FALSE; +} + +/* ?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ */ +/* ?notify_one@_Condition_variable@details@Concurrency@@QEAAXXZ */ +DEFINE_THISCALL_WRAPPER(_Condition_variable_notify_one, 4) +void __thiscall _Condition_variable_notify_one(_Condition_variable *this) +{ + FIXME("(%p)\n", this); +} + +/* ?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ */ +/* ?notify_all@_Condition_variable@details@Concurrency@@QEAAXXZ */ +DEFINE_THISCALL_WRAPPER(_Condition_variable_notify_all, 4) +void __thiscall _Condition_variable_notify_all(_Condition_variable *this) +{ + FIXME("(%p)\n", this); +} +#endif + /********************************************************************** * msvcrt_free_locks (internal) * -- GitLab