Kernel Statistics Library Functions kstat_read(3KSTAT)
NAME
kstat_read, kstat_write - read or write kstat data
SYNOPSIS
cc [ flag... ] file... -lkstat [ library... ]
#include
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 automati-
cally allocated (or reallocated) to be large enough to holdall 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 bufis 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 the superuser can use kstat_write().
RETURN VALUES
Upon successful completion, kstat_read() and kstat_write()
return the current kstat chain ID (KCID). Otherwise, theyreturn -1 and set errno to indicate the error.
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 read-
ing 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.SunOS 5.11 Last change: 13 Apr 2010 1
Kernel Statistics Library Functions kstat_read(3KSTAT)
ENXIO The given kstat could not be located for read-
ing or writing. EOVERFLOW The data for the given kstat was too large to be stored in the structure. EPERM An attempt was made to write to a kstat, but{PRIV_SYS_CONFIG} was not asserted in the
effective privilege set. FILES /dev/kstat kernel statistics driverATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | MT-Safe with exceptions |
|_____________________________|_____________________________|
The kstat_read() function is MT-Safe with the exception that
only one thread may actively use a kstat_ctl_t * value at
any time. Synchronization is left to the application.SEE ALSO
kstat(3KSTAT), kstat_chain_update(3KSTAT),
kstat_lookup(3KSTAT), kstat_open(3KSTAT), attributes(5),
privileges(5)SunOS 5.11 Last change: 13 Apr 2010 2