From 76424950e373d3b04ac3dd13019151bfba3e8423 Mon Sep 17 00:00:00 2001 From: sumuel Date: Mon, 17 Aug 2026 20:44:55 +0000 Subject: Add the files --- src/detection/swap/swap_obsd.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/detection/swap/swap_obsd.c (limited to 'src/detection/swap/swap_obsd.c') diff --git a/src/detection/swap/swap_obsd.c b/src/detection/swap/swap_obsd.c new file mode 100644 index 0000000..1296aeb --- /dev/null +++ b/src/detection/swap/swap_obsd.c @@ -0,0 +1,35 @@ +#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; +} -- cgit v1.2.3