From 644656aa562a78edf384abd6f4ce80bc930d5547 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 10 Jul 2014 22:09:26 +0300 Subject: Implement memory-info for MS-Windows. src/w32.c (w32_memory_info): New function. src/w32.h (w32_memory_info): Prototype it. src/alloc.c (Fmemory_info) [WINDOWSNT]: Call it. --- src/alloc.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/alloc.c') diff --git a/src/alloc.c b/src/alloc.c index c535e836397..4a912703c39 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -6875,7 +6875,7 @@ All values are in Kbytes. If there is no swap space, last two values are zero. If the system is not supported, return nil. */) (void) { -#ifdef HAVE_LINUX_SYSINFO +#if defined HAVE_LINUX_SYSINFO struct sysinfo si; uintmax_t units; @@ -6885,12 +6885,22 @@ values are zero. If the system is not supported, return nil. */) units = si.mem_unit; #else units = 1; -#endif +#endif return list4i ((uintmax_t) si.totalram * units / 1024, (uintmax_t) si.freeram * units / 1024, (uintmax_t) si.totalswap * units / 1024, (uintmax_t) si.freeswap * units / 1024); -#else /* not HAVE_LINUX_SYSINFO */ +#elif defined WINDOWSNT + unsigned long long totalram, freeram, totalswap, freeswap; + + if (w32_memory_info (&totalram, &freeram, &totalswap, &freeswap) == 0) + return list4i ((uintmax_t) totalram / 1024, + (uintmax_t) freeram / 1024, + (uintmax_t) totalswap / 1024, + (uintmax_t) freeswap / 1024); + else + return Qnil; +#else /* not HAVE_LINUX_SYSINFO, not WINDOWSNT */ /* FIXME: add more systems. */ return Qnil; #endif /* HAVE_LINUX_SYSINFO */ -- cgit v1.2.1