diff options
| author | Eli Zaretskii | 2014-07-10 22:09:26 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2014-07-10 22:09:26 +0300 |
| commit | 644656aa562a78edf384abd6f4ce80bc930d5547 (patch) | |
| tree | a79082623aa01754bf31555c72031ad6bb24feb4 /src/w32.c | |
| parent | 64c333303ce41c4d014d676ff4cbeeb887506c9e (diff) | |
| download | emacs-644656aa562a78edf384abd6f4ce80bc930d5547.tar.gz emacs-644656aa562a78edf384abd6f4ce80bc930d5547.zip | |
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.
Diffstat (limited to 'src/w32.c')
| -rw-r--r-- | src/w32.c | 29 |
1 files changed, 29 insertions, 0 deletions
| @@ -6955,6 +6955,35 @@ system_process_attributes (Lisp_Object pid) | |||
| 6955 | return attrs; | 6955 | return attrs; |
| 6956 | } | 6956 | } |
| 6957 | 6957 | ||
| 6958 | int | ||
| 6959 | w32_memory_info (unsigned long long *totalram, unsigned long long *freeram, | ||
| 6960 | unsigned long long *totalswap, unsigned long long *freeswap) | ||
| 6961 | { | ||
| 6962 | MEMORYSTATUS memst; | ||
| 6963 | MEMORY_STATUS_EX memstex; | ||
| 6964 | |||
| 6965 | /* Use GlobalMemoryStatusEx if available, as it can report more than | ||
| 6966 | 2GB of memory. */ | ||
| 6967 | if (global_memory_status_ex (&memstex)) | ||
| 6968 | { | ||
| 6969 | *totalram = memstex.ullTotalPhys; | ||
| 6970 | *freeram = memstex.ullAvailPhys; | ||
| 6971 | *totalswap = memstex.ullTotalPageFile; | ||
| 6972 | *freeswap = memstex.ullAvailPageFile; | ||
| 6973 | return 0; | ||
| 6974 | } | ||
| 6975 | else if (global_memory_status (&memst)) | ||
| 6976 | { | ||
| 6977 | *totalram = memst.dwTotalPhys; | ||
| 6978 | *freeram = memst.dwAvailPhys; | ||
| 6979 | *totalswap = memst.dwTotalPageFile; | ||
| 6980 | *freeswap = memst.dwAvailPageFile; | ||
| 6981 | return 0; | ||
| 6982 | } | ||
| 6983 | else | ||
| 6984 | return -1; | ||
| 6985 | } | ||
| 6986 | |||
| 6958 | 6987 | ||
| 6959 | /* Wrappers for winsock functions to map between our file descriptors | 6988 | /* Wrappers for winsock functions to map between our file descriptors |
| 6960 | and winsock's handles; also set h_errno for convenience. | 6989 | and winsock's handles; also set h_errno for convenience. |