Commit fd7acb03 authored by Alex Henrie's avatar Alex Henrie Committed by Alexandre Julliard

kernel32: Simplify Linux implementation of GlobalMemoryStatusEx.

parent a83b5cdb
...@@ -1200,38 +1200,24 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex ) ...@@ -1200,38 +1200,24 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
if (f) if (f)
{ {
char buffer[256]; char buffer[256];
unsigned long total, used, free, shared, buffers, cached; unsigned long value;
lpmemex->ullTotalPhys = lpmemex->ullAvailPhys = 0; lpmemex->ullTotalPhys = lpmemex->ullAvailPhys = 0;
lpmemex->ullTotalPageFile = lpmemex->ullAvailPageFile = 0; lpmemex->ullTotalPageFile = lpmemex->ullAvailPageFile = 0;
while (fgets( buffer, sizeof(buffer), f )) while (fgets( buffer, sizeof(buffer), f ))
{ {
/* old style /proc/meminfo ... */ if (sscanf(buffer, "MemTotal: %lu", &value))
if (sscanf( buffer, "Mem: %lu %lu %lu %lu %lu %lu", lpmemex->ullTotalPhys = (ULONG64)value*1024;
&total, &used, &free, &shared, &buffers, &cached )) else if (sscanf(buffer, "MemFree: %lu", &value))
{ lpmemex->ullAvailPhys = (ULONG64)value*1024;
lpmemex->ullTotalPhys += total; else if (sscanf(buffer, "SwapTotal: %lu", &value))
lpmemex->ullAvailPhys += free + buffers + cached; lpmemex->ullTotalPageFile = (ULONG64)value*1024;
} else if (sscanf(buffer, "SwapFree: %lu", &value))
if (sscanf( buffer, "Swap: %lu %lu %lu", &total, &used, &free )) lpmemex->ullAvailPageFile = (ULONG64)value*1024;
{ else if (sscanf(buffer, "Buffers: %lu", &value))
lpmemex->ullTotalPageFile += total; lpmemex->ullAvailPhys += (ULONG64)value*1024;
lpmemex->ullAvailPageFile += free; else if (sscanf(buffer, "Cached: %lu", &value))
} lpmemex->ullAvailPhys += (ULONG64)value*1024;
/* new style /proc/meminfo ... */
if (sscanf(buffer, "MemTotal: %lu", &total))
lpmemex->ullTotalPhys = (ULONG64)total*1024;
if (sscanf(buffer, "MemFree: %lu", &free))
lpmemex->ullAvailPhys = (ULONG64)free*1024;
if (sscanf(buffer, "SwapTotal: %lu", &total))
lpmemex->ullTotalPageFile = (ULONG64)total*1024;
if (sscanf(buffer, "SwapFree: %lu", &free))
lpmemex->ullAvailPageFile = (ULONG64)free*1024;
if (sscanf(buffer, "Buffers: %lu", &buffers))
lpmemex->ullAvailPhys += (ULONG64)buffers*1024;
if (sscanf(buffer, "Cached: %lu", &cached))
lpmemex->ullAvailPhys += (ULONG64)cached*1024;
} }
fclose( f ); fclose( f );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment