mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Update core ZFS code from build 121 to build 141.
This commit is contained in:
@@ -19,15 +19,13 @@
|
||||
* CDDL HEADER END
|
||||
*/
|
||||
/*
|
||||
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
|
||||
* Use is subject to license terms.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_NVPAIR_H
|
||||
#define _SYS_NVPAIR_H
|
||||
|
||||
#pragma ident "%Z%%M% %I% %E% SMI"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/errno.h>
|
||||
#include <sys/va_list.h>
|
||||
@@ -199,6 +197,7 @@ int nvlist_add_double(nvlist_t *, const char *, double);
|
||||
|
||||
int nvlist_remove(nvlist_t *, const char *, data_type_t);
|
||||
int nvlist_remove_all(nvlist_t *, const char *);
|
||||
int nvlist_remove_nvpair(nvlist_t *, nvpair_t *);
|
||||
|
||||
int nvlist_lookup_boolean(nvlist_t *, const char *);
|
||||
int nvlist_lookup_boolean_value(nvlist_t *, const char *, boolean_t *);
|
||||
@@ -237,9 +236,11 @@ int nvlist_lookup_nvpair(nvlist_t *, const char *, nvpair_t **);
|
||||
int nvlist_lookup_nvpair_embedded_index(nvlist_t *, const char *, nvpair_t **,
|
||||
int *, char **);
|
||||
boolean_t nvlist_exists(nvlist_t *, const char *);
|
||||
boolean_t nvlist_empty(nvlist_t *);
|
||||
|
||||
/* processing nvpair */
|
||||
nvpair_t *nvlist_next_nvpair(nvlist_t *, nvpair_t *);
|
||||
nvpair_t *nvlist_prev_nvpair(nvlist_t *, nvpair_t *);
|
||||
char *nvpair_name(nvpair_t *);
|
||||
data_type_t nvpair_type(nvpair_t *);
|
||||
int nvpair_type_is_array(nvpair_t *);
|
||||
|
||||
+49
-3
@@ -20,12 +20,10 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
|
||||
* Use is subject to license terms.
|
||||
*/
|
||||
|
||||
#pragma ident "%Z%%M% %I% %E% SMI"
|
||||
|
||||
#include <sys/stropts.h>
|
||||
#include <sys/debug.h>
|
||||
#include <sys/isa_defs.h>
|
||||
@@ -692,6 +690,18 @@ nvlist_remove(nvlist_t *nvl, const char *name, data_type_t type)
|
||||
return (ENOENT);
|
||||
}
|
||||
|
||||
int
|
||||
nvlist_remove_nvpair(nvlist_t *nvl, nvpair_t *nvp)
|
||||
{
|
||||
if (nvl == NULL || nvp == NULL)
|
||||
return (EINVAL);
|
||||
|
||||
nvp_buf_unlink(nvl, nvp);
|
||||
nvpair_free(nvp);
|
||||
nvp_buf_free(nvl, nvp);
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* This function calculates the size of an nvpair value.
|
||||
*
|
||||
@@ -1162,6 +1172,42 @@ nvlist_next_nvpair(nvlist_t *nvl, nvpair_t *nvp)
|
||||
return (curr != NULL ? &curr->nvi_nvp : NULL);
|
||||
}
|
||||
|
||||
nvpair_t *
|
||||
nvlist_prev_nvpair(nvlist_t *nvl, nvpair_t *nvp)
|
||||
{
|
||||
nvpriv_t *priv;
|
||||
i_nvp_t *curr;
|
||||
|
||||
if (nvl == NULL ||
|
||||
(priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
|
||||
return (NULL);
|
||||
|
||||
curr = NVPAIR2I_NVP(nvp);
|
||||
|
||||
if (nvp == NULL)
|
||||
curr = priv->nvp_last;
|
||||
else if (priv->nvp_curr == curr || nvlist_contains_nvp(nvl, nvp))
|
||||
curr = curr->nvi_prev;
|
||||
else
|
||||
curr = NULL;
|
||||
|
||||
priv->nvp_curr = curr;
|
||||
|
||||
return (curr != NULL ? &curr->nvi_nvp : NULL);
|
||||
}
|
||||
|
||||
boolean_t
|
||||
nvlist_empty(nvlist_t *nvl)
|
||||
{
|
||||
nvpriv_t *priv;
|
||||
|
||||
if (nvl == NULL ||
|
||||
(priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
|
||||
return (B_TRUE);
|
||||
|
||||
return (priv->nvp_list == NULL);
|
||||
}
|
||||
|
||||
char *
|
||||
nvpair_name(nvpair_t *nvp)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user