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