KSTAT_KV_INIT(9)

NAME
kstat_kv_init, kstat_kv_unit_init, KSTAT_KV_INITIALIZER, KSTAT_KV_UNIT_INITIALIZER - kernel statistic key/value data API

SYNOPSIS
#include <sys/kstat.h>
void
kstat_kv_init(struct kstat_kv *kv, const char *key, enum kstat_kv_type type);
void
kstat_kv_unit_init(struct kstat_kv *kv, const char *key, enum kstat_kv_type type, enum kstat_kv_unit unit);
KSTAT_KV_INITIALIZER(const char *name, enum kstat_kv_type type);
KSTAT_KV_UNIT_INITIALIZER(const char *name, enum kstat_kv_type type, enum kstat_kv_unit unit);

DESCRIPTION
The kstat key/value data API supports the creation and maintenance of kstat_kv structures that can be exported to userland using the kstat API.

A kstat key/value data payload for a kstat structure ( created using kstat_create(9) with KSTAT_T_KV as the type argument) is a series of kstat_kv structures in memory. kstat_kv values are typed, and the memory used to store values of different types is either inline as part of the structure, or is extra bytes following a structure of a specified length.

kstat_kv_init() initialises kv with a name specified as key. The type of the value is specified as type.

kstat_kv_unit_init() initialises kv with a name specified as key. The integer or counter type of the value is specified as type, and specifies the units for the values in unit.

A kstat_kv structure can be initialised at compile time with the KSTAT_KV_INITIALIZER() macro. The kstat_kv structure will be declared with the name key with the type of the values as type.

A kstat_kv structure can be initialised at compile time with the KSTAT_KV_UNIT_INITIALIZER() macro. The kstat_kv structure will be declared with the name key with the integer or counter type of the values as type, and specifies the units for the values in unit.

SEE ALSO
kstat_create(9)

HISTORY
These functions first appeared in OpenBSD 6.8.

AUTHORS
David Gwynne <dlg@openbsd.org>