Module: wine Branch: stable Commit: ba52b89d8e7895be444ac9f66f5330bc16e6d5dd URL: http://source.winehq.org/git/wine.git/?a=commit;h=ba52b89d8e7895be444ac9f66f...
Author: Austin English austinenglish@gmail.com Date: Wed Jun 15 23:43:46 2016 +0200
kernel32: Implement GetLargePageMinimum.
Signed-off-by: Austin English austinenglish@gmail.com Signed-off-by: Marcus Meissner marcus@jet.franken.de Signed-off-by: Alexandre Julliard julliard@winehq.org (cherry picked from commit 4d313e6475383e5aa1ebd8c0917f1f11f5c81f66) Signed-off-by: Michael Stefaniuc mstefani@winehq.org
---
.../api-ms-win-core-memory-l1-1-1.spec | 2 +- dlls/kernel32/cpu.c | 12 ++++++++++++ dlls/kernel32/kernel32.spec | 2 +- dlls/kernel32/tests/process.c | 16 ++++++++++++++++ 4 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/dlls/api-ms-win-core-memory-l1-1-1/api-ms-win-core-memory-l1-1-1.spec b/dlls/api-ms-win-core-memory-l1-1-1/api-ms-win-core-memory-l1-1-1.spec index 5d3eb13..959e65d 100644 --- a/dlls/api-ms-win-core-memory-l1-1-1/api-ms-win-core-memory-l1-1-1.spec +++ b/dlls/api-ms-win-core-memory-l1-1-1/api-ms-win-core-memory-l1-1-1.spec @@ -3,7 +3,7 @@ @ stdcall CreateFileMappingW(long ptr long long long wstr) kernel32.CreateFileMappingW @ stdcall CreateMemoryResourceNotification(long) kernel32.CreateMemoryResourceNotification @ stdcall FlushViewOfFile(ptr long) kernel32.FlushViewOfFile -@ stub GetLargePageMinimum +@ stdcall GetLargePageMinimum() kernel32.GetLargePageMinimum @ stub GetProcessWorkingSetSizeEx @ stdcall GetSystemFileCacheSize(ptr ptr ptr) kernel32.GetSystemFileCacheSize @ stdcall GetWriteWatch(long ptr long ptr ptr ptr) kernel32.GetWriteWatch diff --git a/dlls/kernel32/cpu.c b/dlls/kernel32/cpu.c index f48fcf0..3a7a5e8 100644 --- a/dlls/kernel32/cpu.c +++ b/dlls/kernel32/cpu.c @@ -291,3 +291,15 @@ err: } return TRUE; } + +/*********************************************************************** + * GetLargePageMinimum (KERNEL32.@) + */ +SIZE_T WINAPI GetLargePageMinimum(void) +{ +#if defined(__i386___) || defined(__x86_64__) + return 2 * 1024 * 1024; +#endif + FIXME("Not implemented on your platform/architecture.\n"); + return 0; +} diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index bc147c5..7936133 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -696,7 +696,7 @@ @ stdcall GetHandleInformation(long ptr) @ stub -i386 GetLSCallbackTarget @ stub -i386 GetLSCallbackTemplate -# @ stub GetLargePageMinimum +@ stdcall GetLargePageMinimum() @ stdcall GetLargestConsoleWindowSize(long) @ stdcall GetLastError() @ stub GetLinguistLangSize diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c index 0c4bded..dfebb34 100644 --- a/dlls/kernel32/tests/process.c +++ b/dlls/kernel32/tests/process.c @@ -88,6 +88,7 @@ static BOOL (WINAPI *pProcess32Next)(HANDLE, PROCESSENTRY32*); static BOOL (WINAPI *pThread32First)(HANDLE, THREADENTRY32*); static BOOL (WINAPI *pThread32Next)(HANDLE, THREADENTRY32*); static BOOL (WINAPI *pGetLogicalProcessorInformationEx)(LOGICAL_PROCESSOR_RELATIONSHIP,SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX*,DWORD*); +static SIZE_T (WINAPI *pGetLargePageMinimum)(void);
/* ############################### */ static char base[MAX_PATH]; @@ -252,6 +253,7 @@ static BOOL init(void) pThread32First = (void *)GetProcAddress(hkernel32, "Thread32First"); pThread32Next = (void *)GetProcAddress(hkernel32, "Thread32Next"); pGetLogicalProcessorInformationEx = (void *)GetProcAddress(hkernel32, "GetLogicalProcessorInformationEx"); + pGetLargePageMinimum = (void *)GetProcAddress(hkernel32, "GetLargePageMinimum");
return TRUE; } @@ -3142,6 +3144,19 @@ static void test_GetLogicalProcessorInformationEx(void) HeapFree(GetProcessHeap(), 0, info); }
+static void test_largepages(void) +{ + SIZE_T size; + + if (!pGetLargePageMinimum) { + skip("No GetLargePageMinimum support.\n"); + return; + } + size = pGetLargePageMinimum(); + + ok((size == 0) || (size == 2*1024*1024) || (size == 4*1024*1024), "GetLargePageMinimum reports %ld size\n", size); +} + START_TEST(process) { HANDLE job; @@ -3214,6 +3229,7 @@ START_TEST(process) test_GetNumaProcessorNode(); test_session_info(); test_GetLogicalProcessorInformationEx(); + test_largepages();
/* things that can be tested: * lookup: check the way program to be executed is searched