[PATCH] kernel32: implement GetLargePageMinimum

Marcus Meissner marcus at jet.franken.de
Mon Jun 13 01:40:57 CDT 2016


From: Austin English <austinenglish at gmail.com>

Original implementation by Austin, polished up a bit.

https://bugs.winehq.org/show_bug.cgi?id=18745

Signed-off-by: Marcus Meissner <marcus at jet.franken.de>
Signed-off-by: Austin English <austinenglish at gmail.com>
---
 dlls/kernel32/kernel32.spec |  2 +-
 dlls/kernel32/process.c     | 28 ++++++++++++++++++++++++++++
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index ec7155b6e..0fc4dcb 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 99c5196..6e3b2a7 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -4078,3 +4078,31 @@ 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 ))
+                break;
+        }
+        fclose( f );
+    }
+    return (SIZE_T)hugepagesize*1024;
+#else
+    FIXME("stub: not implemented on your platform.\n");
+    return 0;
+#endif
+}
-- 
2.8.3




More information about the wine-patches mailing list