msvcr110: Add Concurrency::details::_GetConcurrency.

This commit is contained in:
Daniel Lehman 2015-07-24 00:13:19 -07:00 committed by Alexandre Julliard
parent 22f0611cf9
commit a7c7bc9180
5 changed files with 34 additions and 3 deletions

View File

@ -533,7 +533,7 @@
@ 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
@ stub ?_GetConcurrency@details@Concurrency@@YAIXZ
@ cdecl ?_GetConcurrency@details@Concurrency@@YAIXZ() _GetConcurrency
@ stub -arch=win32 ?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAAIXZ
@ stub -arch=win64 ?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAEA_KXZ
@ stub ?_GetNumberOfVirtualProcessors@_CurrentScheduler@details@Concurrency@@SAIXZ

View File

@ -524,7 +524,7 @@
@ 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
@ stub ?_GetConcurrency@details@Concurrency@@YAIXZ
@ cdecl ?_GetConcurrency@details@Concurrency@@YAIXZ() _GetConcurrency
@ stub -arch=win32 ?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAAIXZ
@ stub -arch=win64 ?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAEA_KXZ
@ stub ?_GetNumberOfVirtualProcessors@_CurrentScheduler@details@Concurrency@@SAIXZ

View File

@ -64,6 +64,7 @@ static size_t (CDECL *p_wcstombs_s)(size_t *ret, char* dest, size_t sz, const wc
static int (CDECL *p__dsign)(double);
static int (CDECL *p__fdsign)(float);
static wchar_t** (CDECL *p____lc_locale_name_func)(void);
static unsigned int (CDECL *p__GetConcurrency)(void);
static BOOL init(void)
{
@ -82,6 +83,7 @@ static BOOL init(void)
p__dsign = (void*)GetProcAddress(module, "_dsign");
p__fdsign = (void*)GetProcAddress(module, "_fdsign");
p____lc_locale_name_func = (void*)GetProcAddress(module, "___lc_locale_name_func");
p__GetConcurrency = (void*)GetProcAddress(module,"?_GetConcurrency@details@Concurrency@@YAIXZ");
return TRUE;
}
@ -221,10 +223,21 @@ static void test____lc_locale_name_func(void)
ok(!lc_names[1], "___lc_locale_name_func()[1] = %s\n", wine_dbgstr_w(lc_names[1]));
}
static void test__GetConcurrency(void)
{
SYSTEM_INFO si;
unsigned int c;
GetSystemInfo(&si);
c = (*p__GetConcurrency)();
ok(c == si.dwNumberOfProcessors, "expected %u, got %u\n", si.dwNumberOfProcessors, c);
}
START_TEST(msvcr120)
{
if (!init()) return;
test_lconv();
test__dsign();
test____lc_locale_name_func();
test__GetConcurrency();
}

View File

@ -522,7 +522,7 @@
@ 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
@ stub ?_GetConcurrency@details@Concurrency@@YAIXZ
@ cdecl ?_GetConcurrency@details@Concurrency@@YAIXZ() msvcr120.?_GetConcurrency@details@Concurrency@@YAIXZ
@ stub -arch=win32 ?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAAIXZ
@ stub -arch=win64 ?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAEA_KXZ
@ stub ?_GetNumberOfVirtualProcessors@_CurrentScheduler@details@Concurrency@@SAIXZ

View File

@ -537,6 +537,24 @@ void __thiscall critical_section_scoped_lock_dtor(critical_section_scoped_lock *
TRACE("(%p)\n", this);
critical_section_unlock(this->cs);
}
/* ?_GetConcurrency@details@Concurrency@@YAIXZ */
unsigned int __cdecl _GetConcurrency(void)
{
static unsigned int val = -1;
TRACE("()\n");
if(val == -1) {
SYSTEM_INFO si;
GetSystemInfo(&si);
val = si.dwNumberOfProcessors;
}
return val;
}
#endif
/**********************************************************************