|KSTAT_CHAIN_UPDATE(3KSTAT)||Kernel Statistics Library Functions||KSTAT_CHAIN_UPDATE(3KSTAT)|
kstat_chain_update() function brings the user's kstat header chain in sync with that of the kernel. The kstat chain 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 deletes
old ones as various device instances are added and removed, thereby causing
the user's copy of the kstat chain to 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 the kstat chain changes, to the user's KCID,
kc->kc_chain_id’. If the KCIDs
kstat_chain_update() does nothing. Otherwise,
it deletes any invalid kstat headers from the user's kstat 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.
Because of the deletion process, any kstat_t
structures retrieved by the
function or data pointers obtained through the
function are invalidated by a call to
kstat_chain_update(). New lookup calls must be made
to obtain fresh structures after each chain update.
kstat_chain_update() returns the new KCID if the kstat chain has changed and 0 if it has not changed. Otherwise, it returns -1 and sets errno to indicate the error.
kstat_chain_update() function will fail if:
|November 29, 2021||OmniOS|