#include "swap.h" #include "common/FFlist.h" #include "common/mallocHelper.h" #include #include #include #include const char* ffDetectSwap(FFlist* result) { int nswap = swapctl(SWAP_NSWAP, 0, 0); if (nswap < 0) { return "swapctl(SWAP_NSWAP) failed"; } if (nswap == 0) { return NULL; } FF_AUTO_FREE struct swapent* swdev = malloc((uint32_t) nswap * sizeof(*swdev)); if (swapctl(SWAP_STATS, swdev, nswap) < 0) { return "swapctl(SWAP_STATS) failed"; } for (int i = 0; i < nswap; i++) { if (swdev[i].se_flags & SWF_ENABLE) { FFSwapResult* swap = FF_LIST_ADD(FFSwapResult, *result); ffStrbufInitS(&swap->name, swdev[i].se_path); swap->bytesUsed = (uint64_t) swdev[i].se_inuse * DEV_BSIZE; swap->bytesTotal = (uint64_t) swdev[i].se_nblks * DEV_BSIZE; } } return NULL; }