KSTAT_READ(3KSTAT) Kernel Statistics Library Functions KSTAT_READ(3KSTAT)
NAME
kstat_read,
kstat_write - read or write kstat data
LIBRARY
Kernel Statistics Library (libkstat, -lkstat)
SYNOPSIS
#include <kstat.h> kid_t kstat_read(
kstat_ctl_t *kc,
kstat_t *ksp,
void *buf);
kid_t kstat_write(
kstat_ctl_t *kc,
kstat_t *ksp,
void *buf);
DESCRIPTION
The
kstat_read() function gets data from the kernel for the kstat
pointed to by
ksp. The `ksp->ks_data' field is automatically allocated
(or reallocated) to be large enough to hold all of the data. The
`ksp->ks_ndata' field is set to the number of data fields,
`ksp->ks_data_size' is set to the total size of the data, and
`ksp->ks_snaptime' is set to the high-resolution time at which the data
snapshot was taken. If
buf is non-null, the data is copied from
`ksp->ks_data' to
buf.
The
kstat_write() function writes data from
buf, or from `ksp->ks_data'
if
buf is NULL to the corresponding kstat in the kernel. Only a
privileged user can use
kstat_write().
RETURN VALUES
Upon successful completion,
kstat_read() and
kstat_write() return the
current kstat chain ID (KCID). Otherwise, they return
-1 and set
errno to indicate the error.
FILES
/dev/kstat kernel statistics driver character
device
ERRORS
The
kstat_read() and
kstat_write() functions will fail if:
EACCES An attempt was made to write to a non-writable
kstat.
EAGAIN The kstat was temporarily unavailable for reading or
writing.
EINVAL An attempt was made to write data to a kstat, but
the number of elements or the data size does not
match.
ENOMEM Insufficient storage space is available.
ENXIO The given kstat could not be located for reading or
writing.
EOVERFLOW
EPERM An attempt was made to write to a kstat, but
{PRIV_SYS_CONFIG} was not asserted in the effective
privilege set.
INTERFACE STABILITY
CommittedMT-LEVEL UnsafeSEE ALSO
kstat(3KSTAT),
kstat_chain_update(3KSTAT),
kstat_lookup(3KSTAT),
kstat_open(3KSTAT),
attributes(7),
privileges(7)illumos November 29, 2021 illumos