From: Piotr Caban Subject: [PATCH 1/7 v2] msvcrt: Add Context class static functions stubs Message-Id: <55aca8a9-6d99-f088-8fb2-548b90dc9e2d@codeweavers.com> Date: Thu, 23 Mar 2017 11:40:58 +0100 v2: - fixed test failure Signed-off-by: Piotr Caban --- dlls/concrt140/concrt140.spec | 20 ++++---- dlls/msvcr100/Makefile.in | 1 + dlls/msvcr100/msvcr100.spec | 20 ++++---- dlls/msvcr110/Makefile.in | 1 + dlls/msvcr110/msvcr110.spec | 20 ++++---- dlls/msvcr120/Makefile.in | 1 + dlls/msvcr120/msvcr120.spec | 20 ++++---- dlls/msvcr120_app/msvcr120_app.spec | 20 ++++---- dlls/msvcrt/scheduler.c | 94 +++++++++++++++++++++++++++++++++++++ 9 files changed, 147 insertions(+), 50 deletions(-) create mode 100644 dlls/msvcrt/scheduler.c diff --git a/dlls/concrt140/concrt140.spec b/dlls/concrt140/concrt140.spec index 9aa59be..191f1e7 100644 --- a/dlls/concrt140/concrt140.spec +++ b/dlls/concrt140/concrt140.spec @@ -219,7 +219,7 @@ # extern ?AgentEventGuid@Concurrency@@3U_GUID@@B @ cdecl -arch=win32 ?Alloc@Concurrency@@YAPAXI@Z(long) msvcr120.?Alloc@Concurrency@@YAPAXI@Z @ cdecl -arch=win64 ?Alloc@Concurrency@@YAPEAX_K@Z(long) msvcr120.?Alloc@Concurrency@@YAPEAX_K@Z -@ stub ?Block@Context@Concurrency@@SAXXZ +@ cdecl ?Block@Context@Concurrency@@SAXXZ() msvcr120.?Block@Context@Concurrency@@SAXXZ # extern ?ChoreEventGuid@Concurrency@@3U_GUID@@B # extern ?ConcRTEventGuid@Concurrency@@3U_GUID@@B # extern ?ConcRT_ProviderGuid@Concurrency@@3U_GUID@@B @@ -234,8 +234,8 @@ @ stub -arch=win64 ?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPEAVScheduleGroup@2@AEAVlocation@2@@Z @ stub -arch=win32 ?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@XZ @ stub -arch=win64 ?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPEAVScheduleGroup@2@XZ -@ stub -arch=win32 ?CurrentContext@Context@Concurrency@@SAPAV12@XZ -@ stub -arch=win64 ?CurrentContext@Context@Concurrency@@SAPEAV12@XZ +@ cdecl -arch=win32 ?CurrentContext@Context@Concurrency@@SAPAV12@XZ() msvcr120.?CurrentContext@Context@Concurrency@@SAPAV12@XZ +@ cdecl -arch=win64 ?CurrentContext@Context@Concurrency@@SAPEAV12@XZ() msvcr120.?CurrentContext@Context@Concurrency@@SAPEAV12@XZ @ stub ?Detach@CurrentScheduler@Concurrency@@SAXXZ @ stub ?DisableTracing@Concurrency@@YAJXZ @ stub ?EnableTracing@Concurrency@@YAJXZ @@ -254,11 +254,11 @@ @ stub ?GetSchedulerId@Concurrency@@YAIXZ @ stub -arch=win32 ?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ @ stub -arch=win64 ?GetSharedTimerQueue@details@Concurrency@@YAPEAXXZ -@ stub ?Id@Context@Concurrency@@SAIXZ +@ cdecl ?Id@Context@Concurrency@@SAIXZ() msvcr120.?Id@Context@Concurrency@@SAIXZ @ stub ?Id@CurrentScheduler@Concurrency@@SAIXZ @ stub -arch=win32 ?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NABVlocation@2@@Z @ stub -arch=win64 ?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NAEBVlocation@2@@Z -@ stub ?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ +@ cdecl ?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ() msvcr120.?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ # extern ?LockEventGuid@Concurrency@@3U_GUID@@B @ stub -arch=win32 ?Log2@details@Concurrency@@YAKI@Z @ stub -arch=win64 ?Log2@details@Concurrency@@YAK_K@Z @@ -268,7 +268,7 @@ @ stub -arch=win64 ?NFS_Free@details@Concurrency@@YAXPEAX@Z @ stub -arch=win32 ?NFS_GetLineSize@details@Concurrency@@YAIXZ @ stub -arch=win64 ?NFS_GetLineSize@details@Concurrency@@YA_KXZ -@ stub ?Oversubscribe@Context@Concurrency@@SAX_N@Z +@ cdecl ?Oversubscribe@Context@Concurrency@@SAX_N@Z(long) msvcr120.?Oversubscribe@Context@Concurrency@@SAX_N@Z # extern ?PPLParallelForEventGuid@Concurrency@@3U_GUID@@B # extern ?PPLParallelForeachEventGuid@Concurrency@@3U_GUID@@B # extern ?PPLParallelInvokeEventGuid@Concurrency@@3U_GUID@@B @@ -277,7 +277,7 @@ @ stub ?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ # extern ?ResourceManagerEventGuid@Concurrency@@3U_GUID@@B # extern ?ScheduleGroupEventGuid@Concurrency@@3U_GUID@@B -@ stub ?ScheduleGroupId@Context@Concurrency@@SAIXZ +@ cdecl ?ScheduleGroupId@Context@Concurrency@@SAIXZ() msvcr120.?ScheduleGroupId@Context@Concurrency@@SAIXZ @ stub -arch=win32 ?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z @ stub -arch=win64 ?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPEAX@Z0@Z @ stub -arch=win32 ?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0AAVlocation@2@@Z @@ -290,8 +290,8 @@ @ stub -arch=i386 ?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@2@I@Z @ stub -arch=win64 ?SetPolicyValue@SchedulerPolicy@Concurrency@@QEAAIW4PolicyElementKey@2@I@Z # extern ?VirtualProcessorEventGuid@Concurrency@@3U_GUID@@B -@ stub ?VirtualProcessorId@Context@Concurrency@@SAIXZ -@ stub ?Yield@Context@Concurrency@@SAXXZ +@ cdecl ?VirtualProcessorId@Context@Concurrency@@SAIXZ() msvcr120.?VirtualProcessorId@Context@Concurrency@@SAIXZ +@ cdecl ?Yield@Context@Concurrency@@SAXXZ() msvcr120.?Yield@Context@Concurrency@@SAXXZ @ stub -arch=i386 ?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ @ stub -arch=win64 ?_Abort@_StructuredTaskCollection@details@Concurrency@@AEAAXXZ @ thiscall -arch=i386 ?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ(ptr) msvcr120.?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ @@ -450,7 +450,7 @@ @ cdecl -arch=win64 ?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QEAA_NXZ(ptr) msvcr120.?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QEAA_NXZ @ thiscall -arch=i386 ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ(ptr) msvcr120.?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ @ cdecl -arch=win64 ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QEAA_NXZ(ptr) msvcr120.?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QEAA_NXZ -@ stub ?_SpinYield@Context@Concurrency@@SAXXZ +@ cdecl ?_SpinYield@Context@Concurrency@@SAXXZ() msvcr120.?_SpinYield@Context@Concurrency@@SAXXZ @ stub -arch=i386 ?_Start@_Timer@details@Concurrency@@IAEXXZ @ stub -arch=win64 ?_Start@_Timer@details@Concurrency@@IEAAXXZ @ stub -arch=i386 ?_Stop@_Timer@details@Concurrency@@IAEXXZ diff --git a/dlls/msvcr100/Makefile.in b/dlls/msvcr100/Makefile.in index ac9acf4..e8ab3e8 100644 --- a/dlls/msvcr100/Makefile.in +++ b/dlls/msvcr100/Makefile.in @@ -27,6 +27,7 @@ C_SRCS = \ misc.c \ process.c \ scanf.c \ + scheduler.c \ string.c \ thread.c \ time.c \ diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 303e1b7..d0c110a 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -244,7 +244,7 @@ @ cdecl -arch=win64 ??_V@YAXPEAX@Z(ptr) MSVCRT_operator_delete @ cdecl -arch=win32 ?Alloc@Concurrency@@YAPAXI@Z(long) Concurrency_Alloc @ cdecl -arch=win64 ?Alloc@Concurrency@@YAPEAX_K@Z(long) Concurrency_Alloc -@ stub ?Block@Context@Concurrency@@SAXXZ +@ cdecl ?Block@Context@Concurrency@@SAXXZ() Context_Block @ stub -arch=win32 ?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z @ stub -arch=win64 ?Create@CurrentScheduler@Concurrency@@SAXAEBVSchedulerPolicy@2@@Z @ stub -arch=win32 ?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z @@ -253,8 +253,8 @@ @ stub -arch=win64 ?CreateResourceManager@Concurrency@@YAPEAUIResourceManager@1@XZ @ stub -arch=win32 ?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@XZ @ stub -arch=win64 ?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPEAVScheduleGroup@2@XZ -@ stub -arch=win32 ?CurrentContext@Context@Concurrency@@SAPAV12@XZ -@ stub -arch=win64 ?CurrentContext@Context@Concurrency@@SAPEAV12@XZ +@ cdecl -arch=win32 ?CurrentContext@Context@Concurrency@@SAPAV12@XZ() Context_CurrentContext +@ cdecl -arch=win64 ?CurrentContext@Context@Concurrency@@SAPEAV12@XZ() Context_CurrentContext @ stub ?Detach@CurrentScheduler@Concurrency@@SAXXZ @ stub ?DisableTracing@Concurrency@@YAJXZ @ stub ?EnableTracing@Concurrency@@YAJXZ @@ -273,16 +273,16 @@ @ stub ?GetSchedulerId@Concurrency@@YAIXZ @ stub -arch=win32 ?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ @ stub -arch=win64 ?GetSharedTimerQueue@details@Concurrency@@YAPEAXXZ -@ stub ?Id@Context@Concurrency@@SAIXZ +@ cdecl ?Id@Context@Concurrency@@SAIXZ() Context_Id @ stub ?Id@CurrentScheduler@Concurrency@@SAIXZ -@ stub ?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ +@ cdecl ?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ() Context_IsCurrentTaskCollectionCanceling @ stub -arch=win32 ?Log2@details@Concurrency@@YAKI@Z @ stub -arch=win64 ?Log2@details@Concurrency@@YAK_K@Z -@ stub ?Oversubscribe@Context@Concurrency@@SAX_N@Z +@ cdecl ?Oversubscribe@Context@Concurrency@@SAX_N@Z(long) Context_Oversubscribe @ stub -arch=win32 ?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z @ stub -arch=win64 ?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPEAX@Z @ stub ?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ -@ stub ?ScheduleGroupId@Context@Concurrency@@SAIXZ +@ cdecl ?ScheduleGroupId@Context@Concurrency@@SAIXZ() Context_ScheduleGroupId @ stub -arch=win32 ?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z @ stub -arch=win64 ?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPEAX@Z0@Z @ stub -arch=win32 ?SetConcurrencyLimits@SchedulerPolicy@Concurrency@@QAEXII@Z @@ -291,8 +291,8 @@ @ stub -arch=win64 ?SetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXAEBVSchedulerPolicy@2@@Z @ stub -arch=win32 ?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@2@I@Z @ stub -arch=win64 ?SetPolicyValue@SchedulerPolicy@Concurrency@@QEAAIW4PolicyElementKey@2@I@Z -@ stub ?VirtualProcessorId@Context@Concurrency@@SAIXZ -@ stub ?Yield@Context@Concurrency@@SAXXZ +@ cdecl ?VirtualProcessorId@Context@Concurrency@@SAIXZ() Context_VirtualProcessorId +@ cdecl ?Yield@Context@Concurrency@@SAXXZ() Context_Yield @ stub -arch=win32 ?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ @ stub -arch=win64 ?_Abort@_StructuredTaskCollection@details@Concurrency@@AEAAXXZ @ thiscall -arch=win32 ?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ(ptr) _ReentrantBlockingLock__Acquire @@ -379,7 +379,7 @@ @ 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 +@ cdecl ?_SpinYield@Context@Concurrency@@SAXXZ() Context__SpinYield @ stub -arch=win32 ?_Start@_Timer@details@Concurrency@@IAEXXZ @ stub -arch=win64 ?_Start@_Timer@details@Concurrency@@IEAAXXZ @ stub -arch=win32 ?_Stop@_Timer@details@Concurrency@@IAEXXZ diff --git a/dlls/msvcr110/Makefile.in b/dlls/msvcr110/Makefile.in index ac73a02..2e9b51c 100644 --- a/dlls/msvcr110/Makefile.in +++ b/dlls/msvcr110/Makefile.in @@ -27,6 +27,7 @@ C_SRCS = \ misc.c \ process.c \ scanf.c \ + scheduler.c \ string.c \ thread.c \ time.c \ diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 8aa390e..741f93d 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -402,7 +402,7 @@ @ stub -arch=win64 ??_V@YAXPEAXHPEBDH@Z @ cdecl -arch=win32 ?Alloc@Concurrency@@YAPAXI@Z(long) Concurrency_Alloc @ cdecl -arch=win64 ?Alloc@Concurrency@@YAPEAX_K@Z(long) Concurrency_Alloc -@ stub ?Block@Context@Concurrency@@SAXXZ +@ cdecl ?Block@Context@Concurrency@@SAXXZ() Context_Block @ stub -arch=win32 ?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z @ stub -arch=win64 ?Create@CurrentScheduler@Concurrency@@SAXAEBVSchedulerPolicy@2@@Z @ stub -arch=win32 ?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z @@ -413,8 +413,8 @@ @ stub -arch=win64 ?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPEAVScheduleGroup@2@AEAVlocation@2@@Z @ stub -arch=win32 ?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@XZ @ stub -arch=win64 ?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPEAVScheduleGroup@2@XZ -@ stub -arch=win32 ?CurrentContext@Context@Concurrency@@SAPAV12@XZ -@ stub -arch=win64 ?CurrentContext@Context@Concurrency@@SAPEAV12@XZ +@ cdecl -arch=win32 ?CurrentContext@Context@Concurrency@@SAPAV12@XZ() Context_CurrentContext +@ cdecl -arch=win64 ?CurrentContext@Context@Concurrency@@SAPEAV12@XZ() Context_CurrentContext @ stub ?Detach@CurrentScheduler@Concurrency@@SAXXZ @ stub ?DisableTracing@Concurrency@@YAJXZ @ stub ?EnableTracing@Concurrency@@YAJXZ @@ -434,18 +434,18 @@ @ stub ?GetSchedulerId@Concurrency@@YAIXZ @ stub -arch=win32 ?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ @ stub -arch=win64 ?GetSharedTimerQueue@details@Concurrency@@YAPEAXXZ -@ stub ?Id@Context@Concurrency@@SAIXZ +@ cdecl ?Id@Context@Concurrency@@SAIXZ() Context_Id @ stub ?Id@CurrentScheduler@Concurrency@@SAIXZ @ stub -arch=win32 ?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NABVlocation@2@@Z @ stub -arch=win64 ?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NAEBVlocation@2@@Z -@ stub ?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ +@ cdecl ?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ() Context_IsCurrentTaskCollectionCanceling @ stub -arch=win32 ?Log2@details@Concurrency@@YAKI@Z @ stub -arch=win64 ?Log2@details@Concurrency@@YAK_K@Z -@ stub ?Oversubscribe@Context@Concurrency@@SAX_N@Z +@ cdecl ?Oversubscribe@Context@Concurrency@@SAX_N@Z(long) Context_Oversubscribe @ stub -arch=win32 ?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z @ stub -arch=win64 ?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPEAX@Z @ stub ?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ -@ stub ?ScheduleGroupId@Context@Concurrency@@SAIXZ +@ cdecl ?ScheduleGroupId@Context@Concurrency@@SAIXZ() Context_ScheduleGroupId @ stub -arch=win32 ?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z @ stub -arch=win64 ?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPEAX@Z0@Z @ stub -arch=win32 ?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0AAVlocation@2@@Z @@ -458,8 +458,8 @@ @ stub -arch=arm ?SetPolicyValue@SchedulerPolicy@Concurrency@@QAAIW4PolicyElementKey@2@I@Z @ stub -arch=i386 ?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@2@I@Z @ stub -arch=win64 ?SetPolicyValue@SchedulerPolicy@Concurrency@@QEAAIW4PolicyElementKey@2@I@Z -@ stub ?VirtualProcessorId@Context@Concurrency@@SAIXZ -@ stub ?Yield@Context@Concurrency@@SAXXZ +@ cdecl ?VirtualProcessorId@Context@Concurrency@@SAIXZ() Context_VirtualProcessorId +@ cdecl ?Yield@Context@Concurrency@@SAXXZ() Context_Yield @ stub -arch=arm ?_Abort@_StructuredTaskCollection@details@Concurrency@@AAAXXZ @ stub -arch=i386 ?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ @ stub -arch=win64 ?_Abort@_StructuredTaskCollection@details@Concurrency@@AEAAXXZ @@ -647,7 +647,7 @@ @ 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 +@ cdecl ?_SpinYield@Context@Concurrency@@SAXXZ() Context__SpinYield @ stub -arch=arm ?_Start@_Timer@details@Concurrency@@IAAXXZ @ stub -arch=i386 ?_Start@_Timer@details@Concurrency@@IAEXXZ @ stub -arch=win64 ?_Start@_Timer@details@Concurrency@@IEAAXXZ diff --git a/dlls/msvcr120/Makefile.in b/dlls/msvcr120/Makefile.in index 5e4a166..bcfb226 100644 --- a/dlls/msvcr120/Makefile.in +++ b/dlls/msvcr120/Makefile.in @@ -27,6 +27,7 @@ C_SRCS = \ misc.c \ process.c \ scanf.c \ + scheduler.c \ string.c \ thread.c \ time.c \ diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 7a3a831..ff7eb4e 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -398,7 +398,7 @@ @ stub -arch=win64 ??_V@YAXPEAXHPEBDH@Z @ cdecl -arch=win32 ?Alloc@Concurrency@@YAPAXI@Z(long) Concurrency_Alloc @ cdecl -arch=win64 ?Alloc@Concurrency@@YAPEAX_K@Z(long) Concurrency_Alloc -@ stub ?Block@Context@Concurrency@@SAXXZ +@ cdecl ?Block@Context@Concurrency@@SAXXZ() Context_Block @ stub -arch=win32 ?CaptureCallstack@platform@details@Concurrency@@YAIPAPAXII@Z @ stub -arch=win64 ?CaptureCallstack@platform@details@Concurrency@@YA_KPEAPEAX_K1@Z @ stub -arch=win32 ?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z @@ -411,8 +411,8 @@ @ stub -arch=win64 ?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPEAVScheduleGroup@2@AEAVlocation@2@@Z @ stub -arch=win32 ?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@XZ @ stub -arch=win64 ?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPEAVScheduleGroup@2@XZ -@ stub -arch=win32 ?CurrentContext@Context@Concurrency@@SAPAV12@XZ -@ stub -arch=win64 ?CurrentContext@Context@Concurrency@@SAPEAV12@XZ +@ cdecl -arch=win32 ?CurrentContext@Context@Concurrency@@SAPAV12@XZ() Context_CurrentContext +@ cdecl -arch=win64 ?CurrentContext@Context@Concurrency@@SAPEAV12@XZ() Context_CurrentContext @ stub ?Detach@CurrentScheduler@Concurrency@@SAXXZ @ stub ?DisableTracing@Concurrency@@YAJXZ @ stub ?EnableTracing@Concurrency@@YAJXZ @@ -433,18 +433,18 @@ @ stub ?GetSchedulerId@Concurrency@@YAIXZ @ stub -arch=win32 ?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ @ stub -arch=win64 ?GetSharedTimerQueue@details@Concurrency@@YAPEAXXZ -@ stub ?Id@Context@Concurrency@@SAIXZ +@ cdecl ?Id@Context@Concurrency@@SAIXZ() Context_Id @ stub ?Id@CurrentScheduler@Concurrency@@SAIXZ @ stub -arch=win32 ?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NABVlocation@2@@Z @ stub -arch=win64 ?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NAEBVlocation@2@@Z -@ stub ?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ +@ cdecl ?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ() Context_IsCurrentTaskCollectionCanceling @ stub -arch=win32 ?Log2@details@Concurrency@@YAKI@Z @ stub -arch=win64 ?Log2@details@Concurrency@@YAK_K@Z -@ stub ?Oversubscribe@Context@Concurrency@@SAX_N@Z +@ cdecl ?Oversubscribe@Context@Concurrency@@SAX_N@Z(long) Context_Oversubscribe @ stub -arch=win32 ?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z @ stub -arch=win64 ?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPEAX@Z @ stub ?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ -@ stub ?ScheduleGroupId@Context@Concurrency@@SAIXZ +@ cdecl ?ScheduleGroupId@Context@Concurrency@@SAIXZ() Context_ScheduleGroupId @ stub -arch=win32 ?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z @ stub -arch=win64 ?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPEAX@Z0@Z @ stub -arch=win32 ?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0AAVlocation@2@@Z @@ -457,8 +457,8 @@ @ stub -arch=arm ?SetPolicyValue@SchedulerPolicy@Concurrency@@QAAIW4PolicyElementKey@2@I@Z @ stub -arch=i386 ?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@2@I@Z @ stub -arch=win64 ?SetPolicyValue@SchedulerPolicy@Concurrency@@QEAAIW4PolicyElementKey@2@I@Z -@ stub ?VirtualProcessorId@Context@Concurrency@@SAIXZ -@ stub ?Yield@Context@Concurrency@@SAXXZ +@ cdecl ?VirtualProcessorId@Context@Concurrency@@SAIXZ() Context_VirtualProcessorId +@ cdecl ?Yield@Context@Concurrency@@SAXXZ() Context_Yield @ stub -arch=arm ?_Abort@_StructuredTaskCollection@details@Concurrency@@AAAXXZ @ stub -arch=i386 ?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ @ stub -arch=win64 ?_Abort@_StructuredTaskCollection@details@Concurrency@@AEAAXXZ @@ -629,7 +629,7 @@ @ 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 +@ cdecl ?_SpinYield@Context@Concurrency@@SAXXZ() Context__SpinYield @ stub -arch=arm ?_Start@_Timer@details@Concurrency@@IAAXXZ @ stub -arch=i386 ?_Start@_Timer@details@Concurrency@@IAEXXZ @ stub -arch=win64 ?_Start@_Timer@details@Concurrency@@IEAAXXZ diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index 62926d4..86f3fe7 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -395,7 +395,7 @@ @ stub -arch=win64 ??_V@YAXPEAXHPEBDH@Z @ cdecl -arch=win32 ?Alloc@Concurrency@@YAPAXI@Z(long) msvcr120.?Alloc@Concurrency@@YAPAXI@Z @ cdecl -arch=win64 ?Alloc@Concurrency@@YAPEAX_K@Z(long) msvcr120.?Alloc@Concurrency@@YAPEAX_K@Z -@ stub ?Block@Context@Concurrency@@SAXXZ +@ cdecl ?Block@Context@Concurrency@@SAXXZ() msvcr120.?Block@Context@Concurrency@@SAXXZ @ stub ?CaptureCallstack@platform@details@Concurrency@@YAIPAPAXII@Z @ stub -arch=win32 ?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z @ stub -arch=win64 ?Create@CurrentScheduler@Concurrency@@SAXAEBVSchedulerPolicy@2@@Z @@ -407,8 +407,8 @@ @ stub -arch=win64 ?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPEAVScheduleGroup@2@AEAVlocation@2@@Z @ stub -arch=win32 ?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@XZ @ stub -arch=win64 ?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPEAVScheduleGroup@2@XZ -@ stub -arch=win32 ?CurrentContext@Context@Concurrency@@SAPAV12@XZ -@ stub -arch=win64 ?CurrentContext@Context@Concurrency@@SAPEAV12@XZ +@ cdecl -arch=win32 ?CurrentContext@Context@Concurrency@@SAPAV12@XZ() msvcr120.?CurrentContext@Context@Concurrency@@SAPAV12@XZ +@ cdecl -arch=win64 ?CurrentContext@Context@Concurrency@@SAPEAV12@XZ() msvcr120.?CurrentContext@Context@Concurrency@@SAPEAV12@XZ @ stub ?Detach@CurrentScheduler@Concurrency@@SAXXZ @ stub ?DisableTracing@Concurrency@@YAJXZ @ stub ?EnableTracing@Concurrency@@YAJXZ @@ -429,18 +429,18 @@ @ stub ?GetSchedulerId@Concurrency@@YAIXZ @ stub -arch=win32 ?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ @ stub -arch=win64 ?GetSharedTimerQueue@details@Concurrency@@YAPEAXXZ -@ stub ?Id@Context@Concurrency@@SAIXZ +@ cdecl ?Id@Context@Concurrency@@SAIXZ() msvcr120.?Id@Context@Concurrency@@SAIXZ @ stub ?Id@CurrentScheduler@Concurrency@@SAIXZ @ stub -arch=win32 ?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NABVlocation@2@@Z @ stub -arch=win64 ?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NAEBVlocation@2@@Z -@ stub ?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ +@ cdecl ?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ() msvcr120.?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ @ stub -arch=win32 ?Log2@details@Concurrency@@YAKI@Z @ stub -arch=win64 ?Log2@details@Concurrency@@YAK_K@Z -@ stub ?Oversubscribe@Context@Concurrency@@SAX_N@Z +@ cdecl ?Oversubscribe@Context@Concurrency@@SAX_N@Z(long) msvcr120.?Oversubscribe@Context@Concurrency@@SAX_N@Z @ stub -arch=win32 ?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z @ stub -arch=win64 ?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPEAX@Z @ stub ?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ -@ stub ?ScheduleGroupId@Context@Concurrency@@SAIXZ +@ cdecl ?ScheduleGroupId@Context@Concurrency@@SAIXZ() msvcr120.?ScheduleGroupId@Context@Concurrency@@SAIXZ @ stub -arch=win32 ?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z @ stub -arch=win64 ?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPEAX@Z0@Z @ stub -arch=win32 ?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0AAVlocation@2@@Z @@ -453,8 +453,8 @@ @ stub -arch=arm ?SetPolicyValue@SchedulerPolicy@Concurrency@@QAAIW4PolicyElementKey@2@I@Z @ stub -arch=i386 ?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@2@I@Z @ stub -arch=win64 ?SetPolicyValue@SchedulerPolicy@Concurrency@@QEAAIW4PolicyElementKey@2@I@Z -@ stub ?VirtualProcessorId@Context@Concurrency@@SAIXZ -@ stub ?Yield@Context@Concurrency@@SAXXZ +@ cdecl ?VirtualProcessorId@Context@Concurrency@@SAIXZ() msvcr120.?VirtualProcessorId@Context@Concurrency@@SAIXZ +@ cdecl ?Yield@Context@Concurrency@@SAXXZ() msvcr120.?Yield@Context@Concurrency@@SAXXZ @ stub -arch=arm ?_Abort@_StructuredTaskCollection@details@Concurrency@@AAAXXZ @ stub -arch=i386 ?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ @ stub -arch=win64 ?_Abort@_StructuredTaskCollection@details@Concurrency@@AEAAXXZ @@ -625,7 +625,7 @@ @ cdecl -arch=arm ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAA_NXZ(ptr) msvcr120.?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAA_NXZ @ thiscall -arch=i386 ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ(ptr) msvcr120.?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ @ cdecl -arch=win64 ?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QEAA_NXZ(ptr) msvcr120.?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QEAA_NXZ -@ stub ?_SpinYield@Context@Concurrency@@SAXXZ +@ cdecl ?_SpinYield@Context@Concurrency@@SAXXZ() msvcr120.?_SpinYield@Context@Concurrency@@SAXXZ @ stub -arch=arm ?_Start@_Timer@details@Concurrency@@IAAXXZ @ stub -arch=i386 ?_Start@_Timer@details@Concurrency@@IAEXXZ @ stub -arch=win64 ?_Start@_Timer@details@Concurrency@@IEAAXXZ diff --git a/dlls/msvcrt/scheduler.c b/dlls/msvcrt/scheduler.c new file mode 100644 index 0000000..f7fd859 --- /dev/null +++ b/dlls/msvcrt/scheduler.c @@ -0,0 +1,94 @@ +/* + * msvcrt.dll C++ objects + * + * Copyright 2017 Piotr Caban + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include + +#include "windef.h" +#include "winternl.h" +#include "wine/debug.h" +#include "msvcrt.h" +#include "cppexcept.h" +#include "cxx.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msvcrt); + +typedef struct { + const vtable_ptr *vtable; +} Context; + +/* ?CurrentContext@Context@Concurrency@@SAPAV12@XZ */ +/* ?CurrentContext@Context@Concurrency@@SAPEAV12@XZ */ +Context* __cdecl Context_CurrentContext(void) +{ + FIXME("()\n"); + return NULL; +} + +/* ?Id@Context@Concurrency@@SAIXZ */ +unsigned int __cdecl Context_Id(void) +{ + FIXME("()\n"); + return -1; +} + +/* ?Block@Context@Concurrency@@SAXXZ */ +void __cdecl Context_Block(void) +{ + FIXME("()\n"); +} + +/* ?Yield@Context@Concurrency@@SAXXZ */ +void __cdecl Context_Yield(void) +{ + FIXME("()\n"); +} + +/* ?_SpinYield@Context@Concurrency@@SAXXZ */ +void __cdecl Context__SpinYield(void) +{ + FIXME("()\n"); +} + +/* ?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ */ +MSVCRT_bool __cdecl Context_IsCurrentTaskCollectionCanceling(void) +{ + FIXME("()\n"); + return FALSE; +} + +/* ?Oversubscribe@Context@Concurrency@@SAX_N@Z */ +void __cdecl Context_Oversubscribe(MSVCRT_bool begin) +{ + FIXME("(%x)\n", begin); +} + +/* ?ScheduleGroupId@Context@Concurrency@@SAIXZ */ +unsigned int __cdecl Context_ScheduleGroupId(void) +{ + FIXME("()\n"); + return -1; +} + +/* ?VirtualProcessorId@Context@Concurrency@@SAIXZ */ +unsigned int __cdecl Context_VirtualProcessorId(void) +{ + FIXME("()\n"); + return -1; +}