cc [ flag… ] file… –lkstat [ library…] #include <kstat.h> kstat_t *kstat_lookup(kstat_ctl_t *kc, char *ks_module, int ks_instance, char *ks_name);
void *kstat_data_lookup(kstat_t *ksp, char *name);
The kstat_lookup() function traverses the kstat chain, kc->kc_chain, searching for a kstat with the same ks_module, ks_instance, and ks_name fields; this triplet uniquely identifies a kstat. If ks_module is NULL, ks_instance is -1, or ks_name is NULL, those fields will be ignored in the search. For example, kstat_lookup(kc, NULL, -1, "foo") will find the first kstat with name “foo”.
The kstat_data_lookup() function searches the kstat's data section for the record with the specified name. This operation is valid only for those kstat types that have named data records: KSTAT_TYPE_NAMED and KSTAT_TYPE_TIMER .
The kstat_lookup() function returns a pointer to the requested kstat if it is found. Otherwise it returns NULL and sets errno to indicate the error.
The kstat_data_lookup() function returns a pointer to the requested data record if it is found. Otherwise it returns NULL and sets errno to indicate the error .
The kstat_lookup() and kstat_data_lookup() functions will fail if:
An attempt was made to look up data for a kstat that was not of type KSTAT_TYPE_NAMED or KSTAT_TYPE_TIMER.
The requested kstat could not be found.
kernel statistics driver
See attributes(5) for descriptions of the following attributes:
The kstat_lookup() 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.