Go to main content

man pages section 9: DDI and DKI Kernel Functions

Exit Print View

Updated: Thursday, June 13, 2019

kstat2_nv_init (9F)


kstat2_nv_init - initialize a kstat2 name-value pair


#include <sys/types.h>
#include <sys/kstat2.h>

void kstat2_nv_init(kstat2_named_t *knp,
             const char *name, uchar_t type, uint16_t flags)

Interface Level

Solaris DDI specific (Solaris DDI)



Pointer to storage for a kstat2 name-value pair.


Null-terminated character string which is the name of an nv pair. Must not be NULL or an empty string.


Type of the data in the nv pair (see DESCRIPTION)


Initial flags to be set on the name-value pair.


kstat2_nv_init() function is used to initialize a single kstats v2 name-value pair structure.

The kstat2_named(9S) structure is initialized from the values passed in as parameters and the value field appropriate to the type is cleared.


Should point to a static null-terminated string which cannot be NULL or zero length. The length of a name is limited to 2^16-1 characters. In practice, the more concise the name, the better.


It defines one of the values from the enumerated type:

typedef struct kstat2_nv_type {
    KSTAT2_NVVT_INT     /* 64-bit unsigned integer */
    KSTAT2_NVVT_INTS    /* Array of 64-bit unsigned
                                   integers */
    KSTAT2_NVVT_STR     /* Null-terminated C string */
    KSTAT2_NVVT_STRS    /* Array of null-terminated C
                                   strings */
} kstat2_nv_type_t;

It defines one of the values from the enumerated type:

typedef enum kstat2_nv_flag {
    KSTAT2_NVF_NONE         /* No flags present */
    KSTAT2_NVF_INVAL        /* Value is invalid */
} kstat2_nv_flag_t;

typically this will be KSTAT2_NVF_NONE as KSTAT2_NVF_INVAL is used to indicate that the value in the nv pair is invalid. If KSTAT2_NVF_INVAL is used, then it should be cleared once a valid value is set in the nv pair so that clients know that the data is valid.

Return Values



The kstat2_nv_init() function can be called from user or kernel context.

See Also

kstat2_create(9F), kstat2_create_with_template(9F), kstat2_nv_setints(9F), kstat2_nv_setstr(9F), kstat2_nv_setstrs(9F), kstat2(9S), kstat2_named(9S)