From: Austin English Subject: kernel32: implement GetLargePageMinimum Message-Id: Date: Wed, 14 Oct 2015 12:03:54 -0500 For https://bugs.winehq.org/show_bug.cgi?id=18745 -- -Austin From eac5e093c4055a9295f3cfa71d6df7a8e4286c15 Mon Sep 17 00:00:00 2001 From: Austin English Date: Wed, 14 Oct 2015 11:39:13 -0500 Subject: [PATCH] kernel32: implement GetLargePageMinimum Signed-off-by: Austin English --- dlls/kernel32/kernel32.spec | 2 +- dlls/kernel32/process.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index dfc305b..d6a298a 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/process.c b/dlls/kernel32/process.c index 5e6ab10..ded8ae9 100644 --- a/dlls/kernel32/process.c +++ b/dlls/kernel32/process.c @@ -4041,3 +4041,32 @@ UINT WINAPI GetSystemFirmwareTable(DWORD provider, DWORD id, PVOID buffer, DWORD SetLastError(ERROR_CALL_NOT_IMPLEMENTED); return 0; } + +/*********************************************************************** + * GetLargePageMinimum (KERNEL32.@) + */ +SIZE_T WINAPI GetLargePageMinimum(void) +{ +#ifdef linux + FILE *f; + unsigned long hugepagesize = 0; + + f = fopen( "/proc/meminfo", "r" ); + if (f) + { + char buffer[256]; + + while (fgets( buffer, sizeof(buffer), f )) + { + if (sscanf(buffer, "Hugepagesize: %lu", &hugepagesize)) + hugepagesize = (ULONG64)hugepagesize*1024; + } + fclose( f ); + } + FIXME("returning %lu\n", hugepagesize); + return hugepagesize; +#else + FIXME("not implemented for your platform\n"); + return 0; +#endif +} -- 2.6.1