usr/src/uts/common/sys/nvpair.h
changeset 13700 2889e2596bd6
parent 12979 ab9ae749152f
child 13973 4972ab336f54
equal deleted inserted replaced
13699:733714f4dc24 13700:2889e2596bd6
    18  *
    18  *
    19  * CDDL HEADER END
    19  * CDDL HEADER END
    20  */
    20  */
    21 /*
    21 /*
    22  * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
    22  * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
       
    23  * Copyright (c) 2012 by Delphix. All rights reserved.
    23  */
    24  */
    24 
    25 
    25 #ifndef	_SYS_NVPAIR_H
    26 #ifndef	_SYS_NVPAIR_H
    26 #define	_SYS_NVPAIR_H
    27 #define	_SYS_NVPAIR_H
    27 
    28 
    28 #include <sys/types.h>
    29 #include <sys/types.h>
       
    30 #include <sys/time.h>
    29 #include <sys/errno.h>
    31 #include <sys/errno.h>
    30 #include <sys/va_list.h>
    32 #include <sys/va_list.h>
    31 
    33 
    32 #if defined(_KERNEL) && !defined(_BOOT)
    34 #if defined(_KERNEL) && !defined(_BOOT)
    33 #include <sys/kmem.h>
    35 #include <sys/kmem.h>
   272 int nvpair_value_hrtime(nvpair_t *, hrtime_t *);
   274 int nvpair_value_hrtime(nvpair_t *, hrtime_t *);
   273 #if !defined(_KERNEL)
   275 #if !defined(_KERNEL)
   274 int nvpair_value_double(nvpair_t *, double *);
   276 int nvpair_value_double(nvpair_t *, double *);
   275 #endif
   277 #endif
   276 
   278 
       
   279 nvlist_t *fnvlist_alloc(void);
       
   280 void fnvlist_free(nvlist_t *);
       
   281 size_t fnvlist_size(nvlist_t *);
       
   282 char *fnvlist_pack(nvlist_t *, size_t *);
       
   283 void fnvlist_pack_free(char *, size_t);
       
   284 nvlist_t *fnvlist_unpack(char *, size_t);
       
   285 nvlist_t *fnvlist_dup(nvlist_t *);
       
   286 void fnvlist_merge(nvlist_t *, nvlist_t *);
       
   287 
       
   288 void fnvlist_add_boolean(nvlist_t *, const char *);
       
   289 void fnvlist_add_boolean_value(nvlist_t *, const char *, boolean_t);
       
   290 void fnvlist_add_byte(nvlist_t *, const char *, uchar_t);
       
   291 void fnvlist_add_int8(nvlist_t *, const char *, int8_t);
       
   292 void fnvlist_add_uint8(nvlist_t *, const char *, uint8_t);
       
   293 void fnvlist_add_int16(nvlist_t *, const char *, int16_t);
       
   294 void fnvlist_add_uint16(nvlist_t *, const char *, uint16_t);
       
   295 void fnvlist_add_int32(nvlist_t *, const char *, int32_t);
       
   296 void fnvlist_add_uint32(nvlist_t *, const char *, uint32_t);
       
   297 void fnvlist_add_int64(nvlist_t *, const char *, int64_t);
       
   298 void fnvlist_add_uint64(nvlist_t *, const char *, uint64_t);
       
   299 void fnvlist_add_string(nvlist_t *, const char *, const char *);
       
   300 void fnvlist_add_nvlist(nvlist_t *, const char *, nvlist_t *);
       
   301 void fnvlist_add_nvpair(nvlist_t *, nvpair_t *);
       
   302 void fnvlist_add_boolean_array(nvlist_t *, const char *, boolean_t *, uint_t);
       
   303 void fnvlist_add_byte_array(nvlist_t *, const char *, uchar_t *, uint_t);
       
   304 void fnvlist_add_int8_array(nvlist_t *, const char *, int8_t *, uint_t);
       
   305 void fnvlist_add_uint8_array(nvlist_t *, const char *, uint8_t *, uint_t);
       
   306 void fnvlist_add_int16_array(nvlist_t *, const char *, int16_t *, uint_t);
       
   307 void fnvlist_add_uint16_array(nvlist_t *, const char *, uint16_t *, uint_t);
       
   308 void fnvlist_add_int32_array(nvlist_t *, const char *, int32_t *, uint_t);
       
   309 void fnvlist_add_uint32_array(nvlist_t *, const char *, uint32_t *, uint_t);
       
   310 void fnvlist_add_int64_array(nvlist_t *, const char *, int64_t *, uint_t);
       
   311 void fnvlist_add_uint64_array(nvlist_t *, const char *, uint64_t *, uint_t);
       
   312 void fnvlist_add_string_array(nvlist_t *, const char *, char * const *, uint_t);
       
   313 void fnvlist_add_nvlist_array(nvlist_t *, const char *, nvlist_t **, uint_t);
       
   314 
       
   315 void fnvlist_remove(nvlist_t *, const char *);
       
   316 void fnvlist_remove_nvpair(nvlist_t *, nvpair_t *);
       
   317 
       
   318 nvpair_t *fnvlist_lookup_nvpair(nvlist_t *nvl, const char *name);
       
   319 boolean_t fnvlist_lookup_boolean(nvlist_t *nvl, const char *name);
       
   320 boolean_t fnvlist_lookup_boolean_value(nvlist_t *nvl, const char *name);
       
   321 uchar_t fnvlist_lookup_byte(nvlist_t *nvl, const char *name);
       
   322 int8_t fnvlist_lookup_int8(nvlist_t *nvl, const char *name);
       
   323 int16_t fnvlist_lookup_int16(nvlist_t *nvl, const char *name);
       
   324 int32_t fnvlist_lookup_int32(nvlist_t *nvl, const char *name);
       
   325 int64_t fnvlist_lookup_int64(nvlist_t *nvl, const char *name);
       
   326 uint8_t fnvlist_lookup_uint8_t(nvlist_t *nvl, const char *name);
       
   327 uint16_t fnvlist_lookup_uint16(nvlist_t *nvl, const char *name);
       
   328 uint32_t fnvlist_lookup_uint32(nvlist_t *nvl, const char *name);
       
   329 uint64_t fnvlist_lookup_uint64(nvlist_t *nvl, const char *name);
       
   330 char *fnvlist_lookup_string(nvlist_t *nvl, const char *name);
       
   331 nvlist_t *fnvlist_lookup_nvlist(nvlist_t *nvl, const char *name);
       
   332 
       
   333 boolean_t fnvpair_value_boolean_value(nvpair_t *nvp);
       
   334 uchar_t fnvpair_value_byte(nvpair_t *nvp);
       
   335 int8_t fnvpair_value_int8(nvpair_t *nvp);
       
   336 int16_t fnvpair_value_int16(nvpair_t *nvp);
       
   337 int32_t fnvpair_value_int32(nvpair_t *nvp);
       
   338 int64_t fnvpair_value_int64(nvpair_t *nvp);
       
   339 uint8_t fnvpair_value_uint8_t(nvpair_t *nvp);
       
   340 uint16_t fnvpair_value_uint16(nvpair_t *nvp);
       
   341 uint32_t fnvpair_value_uint32(nvpair_t *nvp);
       
   342 uint64_t fnvpair_value_uint64(nvpair_t *nvp);
       
   343 char *fnvpair_value_string(nvpair_t *nvp);
       
   344 nvlist_t *fnvpair_value_nvlist(nvpair_t *nvp);
       
   345 
   277 #ifdef	__cplusplus
   346 #ifdef	__cplusplus
   278 }
   347 }
   279 #endif
   348 #endif
   280 
   349 
   281 #endif	/* _SYS_NVPAIR_H */
   350 #endif	/* _SYS_NVPAIR_H */