int vm_vmemory_size(AGENT_REQUEST *request, AGENT_RESULT *result)
zbx_uint64_t ullTotalPageFile, ullAvailPageFile;
SET_MSG_RESULT(result, zbx_strdup(NULL, "Too many parameters."));
mode = get_rparam(request, 0);
if (NULL != zbx_get_GlobalMemoryStatusEx())
ms_ex.dwLength = sizeof(MEMORYSTATUSEX);
(*zbx_get_GlobalMemoryStatusEx())(&ms_ex);
ullTotalPageFile = ms_ex.ullTotalPageFile;
ullAvailPageFile = ms_ex.ullAvailPageFile;
ullTotalPageFile = ms.dwTotalPageFile;
ullAvailPageFile = ms.dwAvailPageFile;
if (NULL == mode || '\0' == *mode || 0 == strcmp(mode, "total"))
SET_UI64_RESULT(result, ullTotalPageFile);
else if (0 == strcmp(mode, "used"))
SET_UI64_RESULT(result, ullTotalPageFile - ullAvailPageFile);
else if (0 == strcmp(mode, "available"))
SET_UI64_RESULT(result, ullAvailPageFile);
else if (0 == strcmp(mode, "pavailable"))
SET_DBL_RESULT(result, (ullAvailPageFile / (double)ullTotalPageFile) * 100.0);
else if (0 == strcmp(mode, "pused"))
SET_DBL_RESULT(result, (double)(ullTotalPageFile - ullAvailPageFile) / ullTotalPageFile * 100);
SET_MSG_RESULT(result, zbx_strdup(NULL, "Invalid first parameter."));
int system_swap_size(AGENT_REQUEST *request, AGENT_RESULT *result)
zbx_uint64_t real_swap_total, real_swap_avail;
SET_MSG_RESULT(result, zbx_strdup(NULL, "Too many parameters."));
swapdev = get_rparam(request, 0);
mode = get_rparam(request, 1);
if (NULL != swapdev && '\0' != *swapdev && 0 != strcmp(swapdev, "all"))
SET_MSG_RESULT(result, zbx_strdup(NULL, "Invalid first parameter."));