xref: /dflybsd-src/lib/libkinfo/kinfo.3 (revision 80c39d1041b9b03606366c9a1cafdd77162c2ff0)
1c2de3bdfSSascha Wildner.\"
2c2de3bdfSSascha Wildner.\" Copyright (c) 2015
3c2de3bdfSSascha Wildner.\"	The DragonFly Project.  All rights reserved.
4c2de3bdfSSascha Wildner.\"
5c2de3bdfSSascha Wildner.\" Redistribution and use in source and binary forms, with or without
6c2de3bdfSSascha Wildner.\" modification, are permitted provided that the following conditions
7c2de3bdfSSascha Wildner.\" are met:
8c2de3bdfSSascha Wildner.\"
9c2de3bdfSSascha Wildner.\" 1. Redistributions of source code must retain the above copyright
10c2de3bdfSSascha Wildner.\"    notice, this list of conditions and the following disclaimer.
11c2de3bdfSSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright
12c2de3bdfSSascha Wildner.\"    notice, this list of conditions and the following disclaimer in
13c2de3bdfSSascha Wildner.\"    the documentation and/or other materials provided with the
14c2de3bdfSSascha Wildner.\"    distribution.
15c2de3bdfSSascha Wildner.\" 3. Neither the name of The DragonFly Project nor the names of its
16c2de3bdfSSascha Wildner.\"    contributors may be used to endorse or promote products derived
17c2de3bdfSSascha Wildner.\"    from this software without specific, prior written permission.
18c2de3bdfSSascha Wildner.\"
19c2de3bdfSSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20c2de3bdfSSascha Wildner.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21c2de3bdfSSascha Wildner.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22c2de3bdfSSascha Wildner.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
23c2de3bdfSSascha Wildner.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24c2de3bdfSSascha Wildner.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
25c2de3bdfSSascha Wildner.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26c2de3bdfSSascha Wildner.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27c2de3bdfSSascha Wildner.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28c2de3bdfSSascha Wildner.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
29c2de3bdfSSascha Wildner.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30c2de3bdfSSascha Wildner.\" SUCH DAMAGE.
31c2de3bdfSSascha Wildner.\"
32*80c39d10SSascha Wildner.Dd February 5, 2021
33c2de3bdfSSascha Wildner.Dt KINFO 3
34c2de3bdfSSascha Wildner.Os
35c2de3bdfSSascha Wildner.Sh NAME
36*80c39d10SSascha Wildner.Nm cputime_pcpu_statistics ,
37c2de3bdfSSascha Wildner.Nm kinfo_get_cpus ,
38c2de3bdfSSascha Wildner.Nm kinfo_get_files ,
39c2de3bdfSSascha Wildner.Nm kinfo_get_maxfiles ,
40c2de3bdfSSascha Wildner.Nm kinfo_get_net_rtstatistics ,
41c2de3bdfSSascha Wildner.Nm kinfo_get_openfiles ,
42c2de3bdfSSascha Wildner.Nm kinfo_get_sched_cputime ,
43c2de3bdfSSascha Wildner.Nm kinfo_get_sched_hz ,
44c2de3bdfSSascha Wildner.Nm kinfo_get_sched_profhz ,
45c2de3bdfSSascha Wildner.Nm kinfo_get_sched_stathz ,
46c2de3bdfSSascha Wildner.Nm kinfo_get_tty_tk_nin ,
47c2de3bdfSSascha Wildner.Nm kinfo_get_tty_tk_nout ,
48*80c39d10SSascha Wildner.Nm kinfo_get_vfs_bufspace ,
49*80c39d10SSascha Wildner.Nm route_pcpu_statistics
50c2de3bdfSSascha Wildner.Nd information about the running kernel
51c2de3bdfSSascha Wildner.Sh LIBRARY
52c2de3bdfSSascha Wildner.Lb libkinfo
53c2de3bdfSSascha Wildner.Sh SYNOPSIS
54c2de3bdfSSascha Wildner.In kinfo.h
55c2de3bdfSSascha Wildner.Ft int
56c2de3bdfSSascha Wildner.Fn kinfo_get_files "struct kinfo_file **file_buf" "size_t *len"
57c2de3bdfSSascha Wildner.Ft int
58c2de3bdfSSascha Wildner.Fn kinfo_get_maxfiles "int *maxfiles"
59c2de3bdfSSascha Wildner.Ft int
60c2de3bdfSSascha Wildner.Fn kinfo_get_openfiles "int *openfiles"
61c2de3bdfSSascha Wildner.Ft int
62c2de3bdfSSascha Wildner.Fn kinfo_get_net_rtstatistics "struct rtstatistics *rts"
63c2de3bdfSSascha Wildner.Ft int
64c2de3bdfSSascha Wildner.Fn kinfo_get_cpus "int *ncpus"
65c2de3bdfSSascha Wildner.Ft int
66c2de3bdfSSascha Wildner.Fn kinfo_get_sched_cputime "struct kinfo_cputime *cputime"
67c2de3bdfSSascha Wildner.Ft int
68c2de3bdfSSascha Wildner.Fn kinfo_get_sched_hz "int *hz"
69c2de3bdfSSascha Wildner.Ft int
70c2de3bdfSSascha Wildner.Fn kinfo_get_sched_profhz "int *profhz"
71c2de3bdfSSascha Wildner.Ft int
72c2de3bdfSSascha Wildner.Fn kinfo_get_sched_stathz "int *stathz"
73c2de3bdfSSascha Wildner.Ft int
74c2de3bdfSSascha Wildner.Fn kinfo_get_tty_tk_nin "uint64_t *tk_nin"
75c2de3bdfSSascha Wildner.Ft int
76c2de3bdfSSascha Wildner.Fn kinfo_get_tty_tk_nout "uint64_t *tk_nout"
77c2de3bdfSSascha Wildner.Ft int
78e8333298SSascha Wildner.Fn kinfo_get_vfs_bufspace "long *bufspace"
79*80c39d10SSascha Wildner.Ft void
80*80c39d10SSascha Wildner.Fn cputime_pcpu_statistics "struct kinfo_cputime *percpu" "struct kinfo_cputime *total" "int ncpu"
81*80c39d10SSascha Wildner.Ft void
82*80c39d10SSascha Wildner.Fn route_pcpu_statistics "struct rtstatistics *percpu" "struct rtstatistics *total" "int ncpu"
83c2de3bdfSSascha Wildner.Sh DESCRIPTION
84c2de3bdfSSascha Wildner.Ss File Information
85c2de3bdfSSascha WildnerThe
86c2de3bdfSSascha Wildner.Fn kinfo_get_files
87c2de3bdfSSascha Wildnerfunction returns the kernel's file table as a pointer to an array of
88c2de3bdfSSascha Wildner.Vt kinfo_file
89c2de3bdfSSascha Wildnerstructures in the
90c2de3bdfSSascha Wildner.Fa file_buf
91c2de3bdfSSascha Wildnerargument.
92c2de3bdfSSascha WildnerThe number of elements in the array is returned in
93c2de3bdfSSascha Wildner.Fa len .
94c2de3bdfSSascha WildnerIt is the caller's responsibility to
95c2de3bdfSSascha Wildner.Fn free
96c2de3bdfSSascha Wildnerthe array.
97c2de3bdfSSascha Wildner.Pp
98c2de3bdfSSascha WildnerThe
99c2de3bdfSSascha Wildner.Fn kinfo_get_maxfiles
100c2de3bdfSSascha Wildnerand
101c2de3bdfSSascha Wildner.Fn kinfo_get_openfiles
102c2de3bdfSSascha Wildnerfunctions return the maximum number of files and the number of open files in the
103c2de3bdfSSascha Wildner.Fa maxfiles
104c2de3bdfSSascha Wildnerand
105c2de3bdfSSascha Wildner.Fa openfiles
106c2de3bdfSSascha Wildnerarguments, respectively.
107c2de3bdfSSascha Wildner.Ss Networking Information
108c2de3bdfSSascha WildnerThe
109c2de3bdfSSascha Wildner.Fn kinfo_get_net_rtstatistics
110c2de3bdfSSascha Wildnerfunction retrieves routing statistics from the kernel and fills out a
111c2de3bdfSSascha Wildner.Vt struct rtstatistics ,
112c2de3bdfSSascha Wildnera pointer to which has to be specified by the caller in
113c2de3bdfSSascha Wildner.Fa rts .
114c2de3bdfSSascha Wildner.Ss Scheduling/Time Information
115c2de3bdfSSascha WildnerThe
116c2de3bdfSSascha Wildner.Fn kinfo_get_cpus
117c2de3bdfSSascha Wildnerfunction returns the number of active CPUs in the
118c2de3bdfSSascha Wildner.Fa ncpus
119c2de3bdfSSascha Wildnerargument.
120c2de3bdfSSascha Wildner.Pp
121c2de3bdfSSascha WildnerThe
122c2de3bdfSSascha Wildner.Fn kinfo_get_sched_cputime
123c2de3bdfSSascha Wildnerfunction retrieves CPU time statistics from the kernel and fills out a
124c2de3bdfSSascha Wildner.Vt struct kinfo_cputime ,
125c2de3bdfSSascha Wildnera pointer to which has to be specified by the caller in
126c2de3bdfSSascha Wildner.Fa cputime .
127c2de3bdfSSascha Wildner.Pp
128c2de3bdfSSascha WildnerThe
129c2de3bdfSSascha Wildner.Fn kinfo_get_sched_hz ,
130c2de3bdfSSascha Wildner.Fn kinfo_get_sched_profhz ,
131c2de3bdfSSascha Wildnerand
132c2de3bdfSSascha Wildner.Fn kinfo_get_sched_stathz
133c2de3bdfSSascha Wildnerfunctions retrieve system clock information from the kernel and return the
134c2de3bdfSSascha Wildner.Fa ci_hz ,
135c2de3bdfSSascha Wildner.Fa ci_profhz ,
136c2de3bdfSSascha Wildnerand
137c2de3bdfSSascha Wildner.Fa ci_stathz
138c2de3bdfSSascha Wildnerfields of
139c2de3bdfSSascha Wildner.Vt struct kinfo_clockinfo
140c2de3bdfSSascha Wildnerin the
141c2de3bdfSSascha Wildner.Fa hz ,
142c2de3bdfSSascha Wildner.Fa profhz ,
143c2de3bdfSSascha Wildnerand
144c2de3bdfSSascha Wildner.Fa stathz
145c2de3bdfSSascha Wildnerarguments, respectively.
146c2de3bdfSSascha Wildner.Ss TTY Information
147c2de3bdfSSascha WildnerThe
148c2de3bdfSSascha Wildner.Fn kinfo_get_tty_tk_nin
149c2de3bdfSSascha Wildnerand
150c2de3bdfSSascha Wildner.Fn kinfo_get_tty_tk_nout
151c2de3bdfSSascha Wildnerfunctions return the total number of characters which were input and output
152c2de3bdfSSascha Wildneron the system's TTYs in the
153c2de3bdfSSascha Wildner.Fa tk_nin
154c2de3bdfSSascha Wildnerand
155c2de3bdfSSascha Wildner.Fa tk_nout
156c2de3bdfSSascha Wildnerarguments, respectively.
157c2de3bdfSSascha Wildner.Ss VFS Information
158c2de3bdfSSascha WildnerThe
159c2de3bdfSSascha Wildner.Fn kinfo_get_vfs_bufspace
160c2de3bdfSSascha Wildnerfunction returns the maximum amount of memory available for VFS buffers in the
161c2de3bdfSSascha Wildner.Fa bufspace
162c2de3bdfSSascha Wildnerargument.
163*80c39d10SSascha Wildner.Ss Per CPU Accumulators
164*80c39d10SSascha WildnerThe
165*80c39d10SSascha Wildner.Fn cputime_pcpu_statistics
166*80c39d10SSascha Wildnerand
167*80c39d10SSascha Wildner.Fn route_pcpu_statistics
168*80c39d10SSascha Wildnerfunctions provide per-CPU routing and CPU time statistics.
169*80c39d10SSascha WildnerEach take two pointers, one for the per-CPU statistics and another for
170*80c39d10SSascha Wildnerthe total.
171c2de3bdfSSascha Wildner.Sh RETURN VALUES
172c2de3bdfSSascha Wildner.Rv -std
173c2de3bdfSSascha Wildner.Sh ERRORS
174c2de3bdfSSascha WildnerThe
175c2de3bdfSSascha Wildner.Fn kinfo_get_cpus ,
176c2de3bdfSSascha Wildner.Fn kinfo_get_maxfiles ,
177c2de3bdfSSascha Wildner.Fn kinfo_get_openfiles ,
178c2de3bdfSSascha Wildner.Fn kinfo_get_sched_hz ,
179c2de3bdfSSascha Wildner.Fn kinfo_get_sched_profhz ,
180c2de3bdfSSascha Wildner.Fn kinfo_get_sched_stathz ,
181c2de3bdfSSascha Wildner.Fn kinfo_get_tty_tk_nin ,
182c2de3bdfSSascha Wildner.Fn kinfo_get_tty_tk_nout ,
183c2de3bdfSSascha Wildnerand
184c2de3bdfSSascha Wildner.Fn kinfo_get_vfs_bufspace
185c2de3bdfSSascha Wildnerfunctions can fail with the errors documented in
186c2de3bdfSSascha Wildner.Xr sysctlbyname 3 .
187c2de3bdfSSascha Wildner.Pp
188c2de3bdfSSascha WildnerThe
189c2de3bdfSSascha Wildner.Fn kinfo_get_files ,
190c2de3bdfSSascha Wildner.Fn kinfo_get_net_rtstatistics ,
191c2de3bdfSSascha Wildnerand
192c2de3bdfSSascha Wildner.Fn kinfo_get_sched_cputime
193c2de3bdfSSascha Wildnerfunctions will fail if:
194c2de3bdfSSascha Wildner.Bl -tag -width Er
195c2de3bdfSSascha Wildner.It Bq Er ENOMEM
196c2de3bdfSSascha WildnerInsufficient memory was available.
197c2de3bdfSSascha Wildner.El
198c2de3bdfSSascha Wildner.Sh SEE ALSO
199c2de3bdfSSascha Wildner.\".Xr kcore 3 ,
200c2de3bdfSSascha Wildner.Xr kvm 3
201c2de3bdfSSascha Wildner.Sh HISTORY
202c2de3bdfSSascha WildnerThe
203c2de3bdfSSascha Wildner.Nm kinfo
204c2de3bdfSSascha Wildnerlibrary first appeared in
205c2de3bdfSSascha Wildner.Dx 1.2 .
206c2de3bdfSSascha Wildner.Sh AUTHORS
207c2de3bdfSSascha Wildner.An "Joerg Sonnenberger"
208