xref: /dragonfly/lib/libkvm/kvm_getswapinfo.3 (revision d9d67b59)
1.\" Copyright (c) 1999 Matthew Dillon.  All rights reserved.
2.\"
3.\" Redistribution and use in source and binary forms, with or without
4.\" modification, are permitted provided under the terms of the BSD
5.\" Copyright as found in /usr/src/COPYRIGHT in the FreeBSD source tree.
6.\"
7.\" $FreeBSD: src/lib/libkvm/kvm_getswapinfo.3,v 1.5.2.6 2001/12/17 10:08:30 ru Exp $
8.\" $DragonFly: src/lib/libkvm/kvm_getswapinfo.3,v 1.3 2004/06/28 02:57:10 drhodus Exp $
9.\"
10.Dd January 22, 1999
11.Dt KVM_SWAPINFO 3
12.Os
13.Sh NAME
14.Nm kvm_getswapinfo
15.Nd return swap summary statistics for the system
16.Sh LIBRARY
17.Lb libkvm
18.Sh SYNOPSIS
19.In sys/types.h
20.In kvm.h
21.Ft int
22.Fn kvm_getswapinfo "kvm_t *kd" "struct kvm_swap *" "int maxswap" "int flags"
23.Sh DESCRIPTION
24The
25.Fn kvm_getswapinfo
26function fills an array of
27.Vt kvm_swap
28structures with swap summary
29information for each swap device, for up to
30.Fa maxswap
31\- 1 devices.
32The number of devices, up to
33.Fa maxswap
34\- 1, is returned.  A grand
35total of all swap devices (including any devices that go beyond
36.Fa maxswap
37\- 1) is returned in one additional array entry.  This
38entry is not counted in the return value.
39Thus, if you specify a
40.Fa maxswap
41value of 1, the function will typically return the
42value 0 and the single
43.Vt kvm_swap
44structure will be filled with
45the grand total over all swap devices.  The grand total is calculated
46from all available swap devices whether or not you made room
47for them all in the array.
48The grand total is returned.
49.Pp
50The flags argument is currently unused and must be passed as 0.
51.Pp
52If an error occurs, -1 is returned.
53.Pp
54Each swap partition and the grand total is summarized in the
55.Vt kvm_swap
56structure.  This structure contains the following fields:
57.Pp
58.Bl -item -offset indent -compact
59.It
60.Va char ksw_devname[] ;
61.It
62.Va u_int ksw_total ;
63.It
64.Va u_int ksw_used ;
65.It
66.Va int ksw_flags ;
67.El
68.Pp
69Values are in
70.Dv PAGE_SIZE Ns 'd
71chunks (see
72.Xr getpagesize 3 ) .
73.Va ksw_flags
74contains
75a copy of the swap device flags.
76.Sh WARNING
77At the current juncture this structure can only represent up to 16TB of
78swap per device, and the totalizer field will overflow at 16TB (4TB per
79device).  The fields need to be converted to long's.
80.Sh CACHING
81This function caches the nlist values for various kernel variables which
82it reuses in successive calls.
83You may call the function with
84.Fa kd
85==
86.Dv NULL
87to clear the cache.
88.Sh DIAGNOSTICS
89If the load average was unobtainable, \-1 is returned; otherwise,
90the number of swap devices actually retrieved is returned.
91.Pp
92If the name of the swap device does not fit in the static char buffer
93in the structure, it is truncated.  The buffer is always zero terminated.
94.Sh SEE ALSO
95.Xr kvm 3
96