Copyright (c) 2006, Sun Microsystems, Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
#include <sys/nvpair.h> nvpair_t *nvlist_next_nvpair(nvlist_t *nvl, nvpair_t *nvpair);
char *nvpair_name(nvpair_t *nvpair);
data_type_t nvpair_type(nvpair_t *nvpair);
Solaris DDI specific (Solaris DDI)
The list of name-value pairs (nvlist_t) to be processed.
Handle to a name-value pair.
The nvlist_next_nvpair() function returns a handle to the next name-value pair (nvpair) in the list following nvpair. If nvpair is NULL, the first pair is returned. If nvpair is the last pair in the nvlist_t, NULL is returned.
The nvpair_name() function returns a string containing the name of nvpair.
The nvpair_type() function retrieves the value of the nvpair in the form of enumerated type data_type_t. This is used to determine the appropriate nvpair_*() function to call for retrieving the value.
For nvpair_name(): a string containing the name.
For nvpair_type(): an enumerated data type data_type_t. Possible values for data_type_t are:
DATA_TYPE_BOOLEAN DATA_TYPE_BOOLEAN_VALUE DATA_TYPE_BYTE DATA_TYPE_INT8 DATA_TYPE_UINT8 DATA_TYPE_INT16 DATA_TYPE_UINT16 DATA_TYPE_INT32 DATA_TYPE_UINT32 DATA_TYPE_INT64 DATA_TYPE_UINT64 DATA_TYPE_STRING DATA_TYPE_NVLIST DATA_TYPE_BOOLEAN_ARRAY DATA_TYPE_BYTE_ARRAY DATA_TYPE_INT8_ARRAY DATA_TYPE_UINT8_ARRAY DATA_TYPE_INT16_ARRAY DATA_TYPE_UINT16_ARRAY DATA_TYPE_INT32_ARRAY DATA_TYPE_UINT32_ARRAY DATA_TYPE_INT64_ARRAY DATA_TYPE_UINT64_ARRAY DATA_TYPE_STRING_ARRAY DATA_TYPE_NVLIST_ARRAY
After nvpairs is removed from or replaced in an nvlist, it cannot be manipulated. This includes nvlist_next_nvpair(), nvpair_name() and nvpair_type(). Replacement can happen during pair addition on nvlists created with NV_UNIQUE_NAME_TYPE and NV_UNIQUE_NAME. See nvlist_alloc(9F) for more details.
These functions can be called from user, interrupt, or kernel context.