Ken Thomases : kernel32: Use sysctl(VM_SWAPUSAGE) to get swap sizes on BSDs, if available.
Alexandre Julliard
julliard at winehq.org
Mon Feb 17 13:45:14 CST 2014
Module: wine
Branch: master
Commit: 9b7c94bc55379941dd549c492424e3079b914b55
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9b7c94bc55379941dd549c492424e3079b914b55
Author: Ken Thomases <ken at codeweavers.com>
Date: Sun Feb 16 20:43:42 2014 -0600
kernel32: Use sysctl(VM_SWAPUSAGE) to get swap sizes on BSDs, if available.
---
dlls/kernel32/heap.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/dlls/kernel32/heap.c b/dlls/kernel32/heap.c
index 646890a..fb0b07d 100644
--- a/dlls/kernel32/heap.c
+++ b/dlls/kernel32/heap.c
@@ -1158,6 +1158,9 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
#ifdef HW_MEMSIZE
uint64_t val64;
#endif
+#ifdef VM_SWAPUSAGE
+ struct xsw_usage swap;
+#endif
#elif defined(sun)
unsigned long pagesize,maxpages,freepages,swapspace,swapfree;
struct anoninfo swapinf;
@@ -1253,6 +1256,17 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
lpmemex->ullTotalPageFile = lpmemex->ullAvailPhys;
lpmemex->ullAvailPageFile = lpmemex->ullAvailPhys;
+
+#ifdef VM_SWAPUSAGE
+ mib[0] = CTL_VM;
+ mib[1] = VM_SWAPUSAGE;
+ size_sys = sizeof(swap);
+ if (!sysctl(mib, 2, &swap, &size_sys, NULL, 0) && size_sys == sizeof(swap))
+ {
+ lpmemex->ullTotalPageFile = swap.xsu_total;
+ lpmemex->ullAvailPageFile = swap.xsu_avail;
+ }
+#endif
#elif defined ( sun )
pagesize=sysconf(_SC_PAGESIZE);
maxpages=sysconf(_SC_PHYS_PAGES);
More information about the wine-cvs
mailing list