Kernel Statistics Library Functions kstat_chain_update(3KSTAT)
NAME
kstat_chain_update - update the kstat header chain
SYNOPSIS
cc [ flag... ] file... -lkstat [ library...]
#include
kid_t kstat_chain_update(kstat_ctl_t *kc);
DESCRIPTION
The kstat_chain_update() function brings the user's kstat
header chain in sync with that of the kernel. The kstatchain is a linked list of kstat headers (kstat_t's) pointed
to by kc->kc_chain, which is initialized by
kstat_open(3KSTAT). This chain constitutes a list of all
kstats currently in the system. During normal operation, the kernel creates new kstats and delete old ones as various device instances are added and removed, thereby causing the user's copy of the kstat chainto become out of date. The kstat_chain_update() function
detects this condition by comparing the kernel's current kstat chain ID (KCID), which is incremented every time thekstat chain changes, to the user's KCID, kc->kc_chain_id. If
the KCIDs match, kstat_chain_update() does nothing. Other-
wise, it deletes any invalid kstat headers from the user'skstat chain, adds any new ones, and sets kc->kc_chain_id to
the new KCID. All other kstat headers in the user's kstat chain are unmodified.RETURN VALUES
Upon successful completion, kstat_chain_update() returns the
new KCID if the kstat chain has changed and 0 if it has notchanged. Otherwise, it returns -1 and sets errno to indicate
the error.ERRORS
The kstat_chain_update() function will fail if:
EAGAIN The kstat was temporarily unavailable for read-
ing or writing. ENOMEM Insufficient storage space is available.ENXIO The given kstat could not be located for read-
ing.SunOS 5.11 Last change: 13 Apr 2010 1
Kernel Statistics Library Functions kstat_chain_update(3KSTAT)
EOVERFLOW The data for the given kstat was too large to be stored in the structure. 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_chain_update() function is MT-Safe with the excep-
tion that only one thread may actively use a kstat_ctl_t *
value at any time. Synchronization is left to the applica-
tion.SEE ALSO
kstat(3KSTAT), kstat_lookup(3KSTAT), kstat_open(3KSTAT),
kstat_read(3KSTAT), attributes(5)
SunOS 5.11 Last change: 13 Apr 2010 2