NAME
kvm_getswapinfo
—
return swap summary statistics for the
system
LIBRARY
library “libkvm”
SYNOPSIS
#include
<sys/types.h>
#include <kvm.h>
int
kvm_getswapinfo
(kvm_t
*kd, struct kvm_swap
*, int maxswap,
int flags);
DESCRIPTION
The
kvm_getswapinfo
()
function fills an array of kvm_swap structures with
swap summary information for each swap device, for up to
maxswap - 1 devices. The number of devices, up to
maxswap - 1, is returned. A grand total of all swap
devices (including any devices that go beyond maxswap
- 1) is returned in one additional array entry. This entry is not counted in
the return value. Thus, if you specify a maxswap value
of 1, the function will typically return the value 0 and the single
kvm_swap structure will be filled with the grand total
over all swap devices. The grand total is calculated from all available swap
devices whether or not you made room for them all in the array. The grand
total is returned.
The flags argument is currently unused and must be passed as 0.
If an error occurs, -1 is returned.
Each swap partition and the grand total is summarized in the kvm_swap structure. This structure contains the following fields:
- char ksw_devname[];
- u_int ksw_total;
- u_int ksw_used;
- int ksw_flags;
Values are in PAGE_SIZE
'd chunks (see
getpagesize(3)). ksw_flags contains a
copy of the swap device flags.
WARNING
At the current juncture this structure can only represent up to 16TB of swap per device, and the totalizer field will overflow at 16TB (4TB per device). The fields need to be converted to long's.
CACHING
This function caches the nlist values for various kernel variables
which it reuses in successive calls. You may call the function with
kd == NULL
to clear the
cache.
DIAGNOSTICS
If the load average was unobtainable, -1 is returned; otherwise, the number of swap devices actually retrieved is returned.
If the name of the swap device does not fit in the static char buffer in the structure, it is truncated. The buffer is always zero terminated.