/* * MEMORY.C - internal command. * * * History: * * 01-Sep-1999 (Eric Kohl) * Started. */ #include "config.h" #ifdef INCLUDE_CMD_MEMORY #include #include #include #include #include "cmd.h" /* * convert * * insert commas into a number */ static INT ConvertDWord (DWORD num, LPTSTR des, INT len, BOOL bSeparator) { TCHAR temp[32]; INT c = 0; INT n = 0; if (num == 0) { des[0] = _T('0'); des[1] = _T('\0'); n = 1; } else { temp[31] = 0; while (num > 0) { if (bSeparator && (((c + 1) % (nNumberGroups + 1)) == 0)) temp[30 - c++] = cThousandSeparator; temp[30 - c++] = (TCHAR)(num % 10) + _T('0'); num /= 10; } for (n = 0; n <= c; n++) des[n] = temp[31 - c + n]; } return n; } INT CommandMemory (LPTSTR cmd, LPTSTR param) { MEMORYSTATUS ms; TCHAR szMemoryLoad[20]; TCHAR szTotalPhys[20]; TCHAR szAvailPhys[20]; TCHAR szTotalPageFile[20]; TCHAR szAvailPageFile[20]; TCHAR szTotalVirtual[20]; TCHAR szAvailVirtual[20]; if (!_tcsncmp (param, _T("/?"), 2)) { ConOutPuts (_T("Displays the amount of system memory.\n" "\n" "MEMORY")); return 0; } ms.dwLength = sizeof(MEMORYSTATUS); GlobalMemoryStatus (&ms); ConvertDWord (ms.dwMemoryLoad, szMemoryLoad, 20, FALSE); ConvertDWord (ms.dwTotalPhys, szTotalPhys, 20, TRUE); ConvertDWord (ms.dwAvailPhys, szAvailPhys, 20, TRUE); ConvertDWord (ms.dwTotalPageFile, szTotalPageFile, 20, TRUE); ConvertDWord (ms.dwAvailPageFile, szAvailPageFile, 20, TRUE); ConvertDWord (ms.dwTotalVirtual, szTotalVirtual, 20, TRUE); ConvertDWord (ms.dwAvailVirtual, szAvailVirtual, 20, TRUE); ConOutPrintf (_T("\n" " %12s%% memory load.\n" "\n" " %13s bytes total physical RAM.\n" " %13s bytes available physical RAM.\n" "\n" " %13s bytes total page file.\n" " %13s bytes available page file.\n" "\n" " %13s bytes total virtual memory.\n" " %13s bytes available virtual memory.\n"), szMemoryLoad, szTotalPhys, szAvailPhys, szTotalPageFile, szAvailPageFile, szTotalVirtual, szAvailVirtual); return 0; } #endif /* INCLUDE_CMD_MEMORY */ /* EOF */