kstat2_map_meta, kstat2_nv_meta - retrieve kstat2 metadata
cc [ flag... ] file... -lkstat2 [ library...] #include <kstat2.h>
kstat2_status_t kstat2_map_meta(kstat2_map_t map, kstat2_map_meta_t *meta);
const char* kstat2_map_metatype_string(uint16_t type);
kstat2_status_t kstat2_nv_meta(kstat2_map_t map, const char *name, kstat2_nv_meta_t *meta);
const char* kstat2_nv_metatype_string(uint16_t type);
The kstat2_map_meta() function retrieves the metadata for a given kstat2 map and returns it in the meta parameter. The returned reference is managed by the library and must not be passed to free(). For more information about the description of the returned structure, see kstat2(3KSTAT2).
The kstat2_nv_meta() function retrieves the metadata for a given kstat2 name/value in a map and returns it in the meta parameter. The returned reference is managed by the library and must not be passed to free(). For more information about the description of the returned structure, see kstat2(3KSTAT2).
The kstat2_map_metatype_string() function returns a string describing the type of map for the supplied map metadata type. For more information on the list of available map metadata types, see kstat2(3KSTAT2).
The kstat2_nv_metatype_string() function returns a string describing the type of name/value for the supplied metadata type. For more information on the list of available name/value metadata types, see kstat2(3KSTAT2).
Upon successful completion, the kstat2_map_meta() and kstat2_nv_meta() functions will return KSTAT2_S_OK with the meta parameter set to the relevant metadata. If no metadata exists for the map or nv, KSTAT2_S_NOT_FOUND will be returned with the meta parameter set to NULL. If there is any other error performing the requested operation, an error code will be returned and the meta parameter will be NULL.
The kstat2_map_metatype_string() and kstat2_nv_metatype_string() functions will return a descriptive string for the supplied metadata type.
The above functions will fail if:
the map, name, or meta parameters are invalid
memory could not be allocated for the data
an underlying syscall failed, see errno
no metadata was found for the map or nv
kernel statistics driver
header
See the kstat2(3KSTAT2) manpage.
See attributes(7) for descriptions of the following attributes:
|
kstat2_close(3KSTAT2), kstat2_close(3KSTAT2), kstat2_map_get(3KSTAT2), kstat2_map_get_userdata(3KSTAT2), kstat2_map_parent(3KSTAT2), kstat2_map_put_integer(3KSTAT2), kstat2_map_put_integers(3KSTAT2), kstat2_map_put_string(3KSTAT2), kstat2_map_put_strings(3KSTAT2), kstat2_map_remove(3KSTAT2), kstat2_map_set_data_cb(3KSTAT2), kstat2_map_set_destroy_cb(3KSTAT2), kstat2_map_set_tree_cb(3KSTAT2), kstat2_map_set_userdata(3KSTAT2), kstat2_map_size(3KSTAT2), kstat2_map_to_array(3KSTAT2), kstat2_map_uri(3KSTAT2), kstat2_mapiter_end(3KSTAT2), kstat2_mapiter_hasnext(3KSTAT2), kstat2_mapiter_next(3KSTAT2), kstat2_mapiter_remove(3KSTAT2), kstat2_mapiter_start(3KSTAT2), kstat2_mapref_alloc(3KSTAT2), kstat2_mapref_deref(3KSTAT2), kstat2_mapref_free(3KSTAT2), kstat2_open(3KSTAT2), kstat2_status_string(3KSTAT2), kstat2_update(3KSTAT2), kstat2_uri_decode(3KSTAT2), kstat2_uri_encode(3KSTAT2), libkstat2(3LIB)
The kstat2 functions are MT-Safe with the exception that only one thread may actively use a kstat2_handle_t, or any object obtained through it, at any one time. Synchronization is required if multiple threads intend to share a kstat2_handle_t or any object obtained through it. Synchronization is left to the application.