[svn:parrot] r49601 - trunk/config/gen/platform/win32

bacek at svn.parrot.org bacek at svn.parrot.org
Wed Oct 20 08:50:57 UTC 2010


Author: bacek
Date: Wed Oct 20 08:50:56 2010
New Revision: 49601
URL: https://trac.parrot.org/parrot/changeset/49601

Log:
Implement Win32 version of Parrot_sysmem_amount based on MSDN example.

Modified:
   trunk/config/gen/platform/win32/sysmem.c

Modified: trunk/config/gen/platform/win32/sysmem.c
==============================================================================
--- trunk/config/gen/platform/win32/sysmem.c	Wed Oct 20 08:50:44 2010	(r49600)
+++ trunk/config/gen/platform/win32/sysmem.c	Wed Oct 20 08:50:56 2010	(r49601)
@@ -21,6 +21,9 @@
 
 */
 
+#include <windows.h>
+#include <stdio.h>
+
 /*
 
 =item C<PMC * Parrot_sysmem_amount(PARROT_INTERP)>
@@ -34,8 +37,15 @@
 size_t
 Parrot_sysmem_amount(PARROT_INTERP)
 {
-    /* FIXME: Stub only. Returns 1 GB */
-    return 1 * 1024 * 1024;
+    /* Copy-pasted from example at */
+    /* http://msdn.microsoft.com/en-us/library/aa366589(v=VS.85).aspx */
+    MEMORYSTATUSEX statex;
+    bool status;
+
+    statex.dwLength = sizeof(MEMORYSTATUSEX);
+    status = GlobalMemoryStatusEx(&statex);
+    /* TODO Check status and bail out */
+    return statex.ullAvailPhys;
 }
 
 /*


More information about the parrot-commits mailing list