10be687eaSRobert Mustacchi.\" 2c10c16deSRichard Lowe.\" Copyright (c) 2004, Sun Microsystems, Inc. All Rights Reserved. 30be687eaSRobert Mustacchi.\" Copyright 2021 Oxide Computer Company 40be687eaSRobert Mustacchi.\" 50be687eaSRobert Mustacchi.\" The contents of this file are subject to the terms of the 60be687eaSRobert Mustacchi.\" Common Development and Distribution License (the "License"). 70be687eaSRobert Mustacchi.\" You may not use this file except in compliance with the License. 80be687eaSRobert Mustacchi.\" 90be687eaSRobert Mustacchi.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 100be687eaSRobert Mustacchi.\" or http://www.opensolaris.org/os/licensing. 110be687eaSRobert Mustacchi.\" See the License for the specific language governing permissions 120be687eaSRobert Mustacchi.\" and limitations under the License. 130be687eaSRobert Mustacchi.\" 140be687eaSRobert Mustacchi.\" When distributing Covered Code, include this CDDL HEADER in each 150be687eaSRobert Mustacchi.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE. 160be687eaSRobert Mustacchi.\" If applicable, add the following below this CDDL HEADER, with the 170be687eaSRobert Mustacchi.\" fields enclosed by brackets "[]" replaced with your own identifying 180be687eaSRobert Mustacchi.\" information: Portions Copyright [yyyy] [name of copyright owner] 190be687eaSRobert Mustacchi.\" 200be687eaSRobert Mustacchi.Dd November 29, 2021 210be687eaSRobert Mustacchi.Dt KSTAT_OPEN 3KSTAT 220be687eaSRobert Mustacchi.Os 230be687eaSRobert Mustacchi.Sh NAME 240be687eaSRobert Mustacchi.Nm kstat_open , 250be687eaSRobert Mustacchi.Nm kstat_close 260be687eaSRobert Mustacchi.Nd initialize kernel statistics facility 270be687eaSRobert Mustacchi.Sh LIBRARY 280be687eaSRobert Mustacchi.Lb libkstat 290be687eaSRobert Mustacchi.Sh SYNOPSIS 300be687eaSRobert Mustacchi.In kstat.h 310be687eaSRobert Mustacchi.Ft "kstat_ctl_t *" 320be687eaSRobert Mustacchi.Fo kstat_open 330be687eaSRobert Mustacchi.Fa "void" 340be687eaSRobert Mustacchi.Fc 350be687eaSRobert Mustacchi.Ft int 360be687eaSRobert Mustacchi.Fo kstat_close 370be687eaSRobert Mustacchi.Fa "kstat_ctl_t *kc" 380be687eaSRobert Mustacchi.Fc 390be687eaSRobert Mustacchi.Sh DESCRIPTION 400be687eaSRobert MustacchiThe 410be687eaSRobert Mustacchi.Fn kstat_open 420be687eaSRobert Mustacchifunction initializes a kstat control structure that provides access to the 430be687eaSRobert Mustacchikernel statistics library. 440be687eaSRobert MustacchiIt returns a pointer to this structure, which must be supplied as the 450be687eaSRobert Mustacchi.Fa kc 460be687eaSRobert Mustacchiargument in subsequent 470be687eaSRobert Mustacchi.Sy libkstat 480be687eaSRobert Mustacchifunction calls. 490be687eaSRobert Mustacchi.Pp 500be687eaSRobert MustacchiThe 510be687eaSRobert Mustacchi.Fn kstat_close 520be687eaSRobert Mustacchifunction frees all resources that were associated with 530be687eaSRobert Mustacchi.Fa kc . 540be687eaSRobert MustacchiThis is performed automatically on 550be687eaSRobert Mustacchi.Xr exit 2 560be687eaSRobert Mustacchiand 570be687eaSRobert Mustacchi.Xr execve 2 . 580be687eaSRobert Mustacchi.Sh RETURN VALUES 590be687eaSRobert MustacchiUpon successful completion, 600be687eaSRobert Mustacchi.Fn kstat_open 610be687eaSRobert Mustacchireturns a pointer to a kstat control structure. 620be687eaSRobert MustacchiOtherwise, it returns 630be687eaSRobert Mustacchi.Dv NULL , 640be687eaSRobert Mustacchino resources are allocated, and 650be687eaSRobert Mustacchi.Va errno 660be687eaSRobert Mustacchiis set to indicate the error. 670be687eaSRobert Mustacchi.Pp 680be687eaSRobert MustacchiUpon successful completion, 690be687eaSRobert Mustacchi.Fn kstat_close 700be687eaSRobert Mustacchireturns 710be687eaSRobert Mustacchi.Sy 0 . 720be687eaSRobert MustacchiOtherwise, 730be687eaSRobert Mustacchi.Sy -1 740be687eaSRobert Mustacchiis returned and 750be687eaSRobert Mustacchi.Va errno 760be687eaSRobert Mustacchiis set to indicate the error. 770be687eaSRobert Mustacchi.Sh FILES 780be687eaSRobert Mustacchi.Bl -tag -width Pa 790be687eaSRobert Mustacchi.It Pa /dev/kstat 800be687eaSRobert Mustacchikernel statistics driver character device 810be687eaSRobert Mustacchi.El 820be687eaSRobert Mustacchi.Sh ERRORS 830be687eaSRobert MustacchiThe 840be687eaSRobert Mustacchi.Fn kstat_open 850be687eaSRobert Mustacchifunction will fail if: 860be687eaSRobert Mustacchi.Bl -tag -width Er 870be687eaSRobert Mustacchi.It Er ENOMEM 88c10c16deSRichard LoweInsufficient storage space is available. 890be687eaSRobert Mustacchi.It Er EAGAIN 90c10c16deSRichard LoweThe kstat was temporarily unavailable for reading or writing. 910be687eaSRobert Mustacchi.It Er ENXIO 92c10c16deSRichard LoweThe given kstat could not be located for reading. 930be687eaSRobert Mustacchi.It Er EOVERFLOW 94c10c16deSRichard LoweThe data for the given kstat was too large to be stored in the structure. 950be687eaSRobert Mustacchi.El 960be687eaSRobert Mustacchi.Pp 970be687eaSRobert MustacchiThe 980be687eaSRobert Mustacchi.Fn kstat_open 990be687eaSRobert Mustacchifunction can also return the error values for 1000be687eaSRobert Mustacchi.Xr open 2 . 1010be687eaSRobert Mustacchi.Pp 1020be687eaSRobert MustacchiThe 1030be687eaSRobert Mustacchi.Fn kstat_close 1040be687eaSRobert Mustacchifunction can also return the error values for 1050be687eaSRobert Mustacchi.Xr close 2 . 1060be687eaSRobert Mustacchi.Sh INTERFACE STABILITY 1070be687eaSRobert Mustacchi.Sy Committed 1080be687eaSRobert Mustacchi.Sh MT-LEVEL 1090be687eaSRobert Mustacchi.Sy Unsafe 1100be687eaSRobert Mustacchi.Sh SEE ALSO 1110be687eaSRobert Mustacchi.Xr close 2 , 1120be687eaSRobert Mustacchi.Xr execve 2 , 1130be687eaSRobert Mustacchi.Xr exit 2 , 1140be687eaSRobert Mustacchi.Xr open 2 , 1150be687eaSRobert Mustacchi.Xr kstat 3KSTAT , 1160be687eaSRobert Mustacchi.Xr kstat_chain_update 3KSTAT , 1170be687eaSRobert Mustacchi.Xr kstat_lookup 3KSTAT , 1180be687eaSRobert Mustacchi.Xr kstat_read 3KSTAT , 119*bbf21555SRichard Lowe.Xr attributes 7 120