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