[1/3] kernel32: GlobalMemoryStatusEx: memory usage reported only
reflects physical memory
Fabian Bieler
der.fabe at gmx.net
Wed Mar 14 18:40:51 CDT 2007
This patch also fixes memory usage on sun and BSD (memory usage should be
reported in percent, not absolutely)
-------------- next part --------------
From b25af4166f0417da316b0b196447949f3b0c31fc Mon Sep 17 00:00:00 2001
From: Fabian Bieler <der.fabe at gmx.net>
Date: Thu, 15 Mar 2007 00:20:37 +0100
Subject: [PATCH] kernel32: GlobalMemoryStatusEx: memory usage reported only reflects physical memory
---
dlls/kernel32/heap.c | 16 ++++++----------
1 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/dlls/kernel32/heap.c b/dlls/kernel32/heap.c
index 4fb4929..d311d1f 100644
--- a/dlls/kernel32/heap.c
+++ b/dlls/kernel32/heap.c
@@ -1262,14 +1262,6 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
lpmemex->ullAvailPhys += cached*1024;
}
fclose( f );
-
- if (lpmemex->ullTotalPhys)
- {
- DWORDLONG TotalPhysical = lpmemex->ullTotalPhys+lpmemex->ullTotalPageFile;
- DWORDLONG AvailPhysical = lpmemex->ullAvailPhys+lpmemex->ullAvailPageFile;
- lpmemex->dwMemoryLoad = (TotalPhysical-AvailPhysical)
- / (TotalPhysical / 100);
- }
}
#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__APPLE__)
mib[0] = CTL_HW;
@@ -1284,7 +1276,6 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
lpmemex->ullAvailPhys = val;
lpmemex->ullTotalPageFile = val;
lpmemex->ullAvailPageFile = val;
- lpmemex->dwMemoryLoad = lpmemex->ullTotalPhys - lpmemex->ullAvailPhys;
#elif defined ( sun )
pagesize=sysconf(_SC_PAGESIZE);
maxpages=sysconf(_SC_PHYS_PAGES);
@@ -1305,9 +1296,14 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
lpmemex->ullAvailPhys = pagesize*freepages;
lpmemex->ullTotalPageFile = swapspace;
lpmemex->ullAvailPageFile = swapfree;
- lpmemex->dwMemoryLoad = lpmemex->ullTotalPhys - lpmemex->ullAvailPhys;
#endif
+ if (lpmemex->ullTotalPhys)
+ {
+ lpmemex->dwMemoryLoad = (lpmemex->ullTotalPhys-lpmemex->ullAvailPhys)
+ / (lpmemex->ullTotalPhys / 100);
+ }
+
/* Project2k refuses to start if it sees less than 1Mb of free swap */
if (lpmemex->ullTotalPageFile < lpmemex->ullTotalPhys)
lpmemex->ullTotalPageFile = lpmemex->ullTotalPhys;
--
1.4.4.1
More information about the wine-patches
mailing list