svn commit: r285139 - in head: lib/libnv sys/conf sys/contrib/libnv sys/kern sys/sys

Mariusz Zaborski oshogbo at FreeBSD.org
Sat Jul 4 16:33:41 UTC 2015


Author: oshogbo
Date: Sat Jul  4 16:33:37 2015
New Revision: 285139
URL: https://svnweb.freebsd.org/changeset/base/285139

Log:
  Move the nvlist source and private includes from sys/kern to seperate
  directory sys/contrib/libnv.
  
  The goal of this operation is to NOT install header files which shouldn't
  be used outside the nvlist library.
  
  Approved by:	pjd (mentor)

Added:
  head/sys/contrib/libnv/
  head/sys/contrib/libnv/dnvlist.c
     - copied, changed from r285138, head/sys/kern/subr_dnvlist.c
  head/sys/contrib/libnv/nv_impl.h
     - copied unchanged from r285128, head/sys/sys/nv_impl.h
  head/sys/contrib/libnv/nvlist.c
     - copied, changed from r285128, head/sys/kern/subr_nvlist.c
  head/sys/contrib/libnv/nvlist_impl.h
     - copied, changed from r285128, head/sys/sys/nvlist_impl.h
  head/sys/contrib/libnv/nvpair.c
     - copied, changed from r285128, head/sys/kern/subr_nvpair.c
  head/sys/contrib/libnv/nvpair_impl.h
     - copied, changed from r285128, head/sys/sys/nvpair_impl.h
Deleted:
  head/sys/kern/subr_dnvlist.c
  head/sys/kern/subr_nvlist.c
  head/sys/kern/subr_nvpair.c
  head/sys/sys/nv_impl.h
  head/sys/sys/nvlist_impl.h
  head/sys/sys/nvpair_impl.h
Modified:
  head/lib/libnv/Makefile
  head/sys/conf/files

Modified: head/lib/libnv/Makefile
==============================================================================
--- head/lib/libnv/Makefile	Sat Jul  4 16:19:38 2015	(r285138)
+++ head/lib/libnv/Makefile	Sat Jul  4 16:33:37 2015	(r285139)
@@ -7,13 +7,13 @@ SHLIBDIR?= /lib
 LIB=	nv
 SHLIB_MAJOR= 0
 
-.PATH: ${.CURDIR}/../../sys/kern ${.CURDIR}/../../sys/sys
+.PATH: ${.CURDIR}/../../sys/contrib/libnv ${.CURDIR}/../../sys/sys
 CFLAGS+=-I${.CURDIR}/../../sys -I${.CURDIR}
 
-SRCS=	subr_dnvlist.c
+SRCS=	dnvlist.c
 SRCS+=	msgio.c
-SRCS+=	subr_nvlist.c
-SRCS+=	subr_nvpair.c
+SRCS+=	nvlist.c
+SRCS+=	nvpair.c
 
 WARNS?=	6
 

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files	Sat Jul  4 16:19:38 2015	(r285138)
+++ head/sys/conf/files	Sat Jul  4 16:33:37 2015	(r285139)
@@ -476,6 +476,9 @@ contrib/libfdt/fdt_rw.c		optional fdt
 contrib/libfdt/fdt_strerror.c	optional fdt
 contrib/libfdt/fdt_sw.c		optional fdt
 contrib/libfdt/fdt_wip.c	optional fdt
+contrib/libnv/dnvlist.c		standard
+contrib/libnv/nvlist.c		standard
+contrib/libnv/nvpair.c		standard
 contrib/ngatm/netnatm/api/cc_conn.c optional ngatm_ccatm \
 	compile-with "${NORMAL_C_NOWERROR} -I$S/contrib/ngatm"
 contrib/ngatm/netnatm/api/cc_data.c optional ngatm_ccatm \
@@ -3054,7 +3057,6 @@ kern/subr_clock.c		standard
 kern/subr_counter.c		standard
 kern/subr_devstat.c		standard
 kern/subr_disk.c		standard
-kern/subr_dnvlist.c		standard
 kern/subr_eventhandler.c	standard
 kern/subr_fattime.c		standard
 kern/subr_firmware.c		optional firmware
@@ -3068,8 +3070,6 @@ kern/subr_mbpool.c		optional libmbpool
 kern/subr_mchain.c		optional libmchain
 kern/subr_module.c		standard
 kern/subr_msgbuf.c		standard
-kern/subr_nvlist.c		standard
-kern/subr_nvpair.c		standard
 kern/subr_param.c		standard
 kern/subr_pcpu.c		standard
 kern/subr_pctrie.c		standard

Copied and modified: head/sys/contrib/libnv/dnvlist.c (from r285138, head/sys/kern/subr_dnvlist.c)
==============================================================================
--- head/sys/kern/subr_dnvlist.c	Sat Jul  4 16:19:38 2015	(r285138, copy source)
+++ head/sys/contrib/libnv/dnvlist.c	Sat Jul  4 16:33:37 2015	(r285139)
@@ -47,10 +47,10 @@ __FBSDID("$FreeBSD$");
 #include <stdlib.h>
 #endif
 
+#include <sys/dnv.h>
 #include <sys/nv.h>
-#include <sys/nv_impl.h>
 
-#include <sys/dnv.h>
+#include "nv_impl.h"
 
 #define	DNVLIST_GET(ftype, type)					\
 ftype									\

Copied: head/sys/contrib/libnv/nv_impl.h (from r285128, head/sys/sys/nv_impl.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/contrib/libnv/nv_impl.h	Sat Jul  4 16:33:37 2015	(r285139, copy of r285128, head/sys/sys/nv_impl.h)
@@ -0,0 +1,138 @@
+/*-
+ * Copyright (c) 2013 The FreeBSD Foundation
+ * All rights reserved.
+ *
+ * This software was developed by Pawel Jakub Dawidek under sponsorship from
+ * the FreeBSD Foundation.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef	_NV_IMPL_H_
+#define	_NV_IMPL_H_
+
+#ifndef	_NVPAIR_T_DECLARED
+#define	_NVPAIR_T_DECLARED
+struct nvpair;
+
+typedef struct nvpair nvpair_t;
+#endif
+
+#define	NV_TYPE_NVLIST_UP		255
+
+#define	NV_TYPE_FIRST			NV_TYPE_NULL
+#define	NV_TYPE_LAST			NV_TYPE_BINARY
+
+#define	NV_FLAG_BIG_ENDIAN		0x80
+
+#ifdef _KERNEL
+#define	nv_malloc(size)			malloc((size), M_NVLIST, M_WAITOK)
+#define	nv_calloc(n, size)		malloc((n) * (size), M_NVLIST, \
+					    M_WAITOK | M_ZERO)
+#define	nv_realloc(buf, size)		realloc((buf), (size), M_NVLIST, \
+					    M_WAITOK)
+#define	nv_free(buf)			free((buf), M_NVLIST)
+#define	nv_strdup(buf)			strdup((buf), M_NVLIST)
+#define	nv_vasprintf(ptr, ...)		vasprintf(ptr, M_NVLIST, __VA_ARGS__)
+
+#define	ERRNO_SET(var)			do { } while (0)
+#define	ERRNO_SAVE()			do { do { } while(0)
+#define	ERRNO_RESTORE()			} while (0)
+
+#define	ERRNO_OR_DEFAULT(default)	(default)
+
+#else
+
+#define	nv_malloc(size)			malloc((size))
+#define	nv_calloc(n, size)		calloc((n), (size))
+#define	nv_realloc(buf, size)		realloc((buf), (size))
+#define	nv_free(buf)			free((buf))
+#define	nv_strdup(buf)			strdup((buf))
+#define	nv_vasprintf(ptr, ...)		vasprintf(ptr, __VA_ARGS__)
+
+#define	ERRNO_SET(var)			do { errno = (var); } while (0)
+#define	ERRNO_SAVE()			do {				\
+						int _serrno;		\
+									\
+						_serrno = errno
+
+#define	ERRNO_RESTORE()				errno = _serrno;	\
+					} while (0)
+
+#define	ERRNO_OR_DEFAULT(default)	(errno == 0 ? (default) : errno)
+
+#endif
+
+int	*nvlist_descriptors(const nvlist_t *nvl, size_t *nitemsp);
+size_t	 nvlist_ndescriptors(const nvlist_t *nvl);
+
+nvpair_t *nvlist_first_nvpair(const nvlist_t *nvl);
+nvpair_t *nvlist_next_nvpair(const nvlist_t *nvl, const nvpair_t *nvp);
+nvpair_t *nvlist_prev_nvpair(const nvlist_t *nvl, const nvpair_t *nvp);
+
+void nvlist_add_nvpair(nvlist_t *nvl, const nvpair_t *nvp);
+
+void nvlist_move_nvpair(nvlist_t *nvl, nvpair_t *nvp);
+
+void nvlist_set_parent(nvlist_t *nvl, nvpair_t *parent);
+
+const nvpair_t *nvlist_get_nvpair(const nvlist_t *nvl, const char *name);
+
+nvpair_t *nvlist_take_nvpair(nvlist_t *nvl, const char *name);
+
+/* Function removes the given nvpair from the nvlist. */
+void nvlist_remove_nvpair(nvlist_t *nvl, nvpair_t *nvp);
+
+void nvlist_free_nvpair(nvlist_t *nvl, nvpair_t *nvp);
+
+int nvpair_type(const nvpair_t *nvp);
+const char *nvpair_name(const nvpair_t *nvp);
+
+nvpair_t *nvpair_clone(const nvpair_t *nvp);
+
+nvpair_t *nvpair_create_null(const char *name);
+nvpair_t *nvpair_create_bool(const char *name, bool value);
+nvpair_t *nvpair_create_number(const char *name, uint64_t value);
+nvpair_t *nvpair_create_string(const char *name, const char *value);
+nvpair_t *nvpair_create_stringf(const char *name, const char *valuefmt, ...) __printflike(2, 3);
+nvpair_t *nvpair_create_stringv(const char *name, const char *valuefmt, va_list valueap) __printflike(2, 0);
+nvpair_t *nvpair_create_nvlist(const char *name, const nvlist_t *value);
+nvpair_t *nvpair_create_descriptor(const char *name, int value);
+nvpair_t *nvpair_create_binary(const char *name, const void *value, size_t size);
+
+nvpair_t *nvpair_move_string(const char *name, char *value);
+nvpair_t *nvpair_move_nvlist(const char *name, nvlist_t *value);
+nvpair_t *nvpair_move_descriptor(const char *name, int value);
+nvpair_t *nvpair_move_binary(const char *name, void *value, size_t size);
+
+bool		 nvpair_get_bool(const nvpair_t *nvp);
+uint64_t	 nvpair_get_number(const nvpair_t *nvp);
+const char	*nvpair_get_string(const nvpair_t *nvp);
+const nvlist_t	*nvpair_get_nvlist(const nvpair_t *nvp);
+int		 nvpair_get_descriptor(const nvpair_t *nvp);
+const void	*nvpair_get_binary(const nvpair_t *nvp, size_t *sizep);
+
+void nvpair_free(nvpair_t *nvp);
+
+#endif	/* !_NV_IMPL_H_ */

Copied and modified: head/sys/contrib/libnv/nvlist.c (from r285128, head/sys/kern/subr_nvlist.c)
==============================================================================
--- head/sys/kern/subr_nvlist.c	Sat Jul  4 08:40:48 2015	(r285128, copy source)
+++ head/sys/contrib/libnv/nvlist.c	Sat Jul  4 16:33:37 2015	(r285139)
@@ -65,9 +65,10 @@ __FBSDID("$FreeBSD$");
 #endif
 
 #include <sys/nv.h>
-#include <sys/nv_impl.h>
-#include <sys/nvlist_impl.h>
-#include <sys/nvpair_impl.h>
+
+#include "nv_impl.h"
+#include "nvlist_impl.h"
+#include "nvpair_impl.h"
 
 #ifndef	HAVE_PJDLOG
 #ifdef _KERNEL

Copied and modified: head/sys/contrib/libnv/nvlist_impl.h (from r285128, head/sys/sys/nvlist_impl.h)
==============================================================================
--- head/sys/sys/nvlist_impl.h	Sat Jul  4 08:40:48 2015	(r285128, copy source)
+++ head/sys/contrib/libnv/nvlist_impl.h	Sat Jul  4 16:33:37 2015	(r285139)
@@ -32,12 +32,12 @@
 #ifndef	_NVLIST_IMPL_H_
 #define	_NVLIST_IMPL_H_
 
+#include <sys/nv.h>
+
 #ifndef _KERNEL
 #include <stdint.h>
 #endif
 
-#include "nv.h"
-
 nvpair_t *nvlist_get_nvpair_parent(const nvlist_t *nvl);
 const unsigned char *nvlist_unpack_header(nvlist_t *nvl,
     const unsigned char *ptr, size_t nfds, bool *isbep, size_t *leftp);

Copied and modified: head/sys/contrib/libnv/nvpair.c (from r285128, head/sys/kern/subr_nvpair.c)
==============================================================================
--- head/sys/kern/subr_nvpair.c	Sat Jul  4 08:40:48 2015	(r285128, copy source)
+++ head/sys/contrib/libnv/nvpair.c	Sat Jul  4 16:33:37 2015	(r285139)
@@ -61,9 +61,10 @@ __FBSDID("$FreeBSD$");
 #endif
 
 #include <sys/nv.h>
-#include <sys/nv_impl.h>
-#include <sys/nvlist_impl.h>
-#include <sys/nvpair_impl.h>
+
+#include "nv_impl.h"
+#include "nvlist_impl.h"
+#include "nvpair_impl.h"
 
 #ifndef	HAVE_PJDLOG
 #ifdef _KERNEL

Copied and modified: head/sys/contrib/libnv/nvpair_impl.h (from r285128, head/sys/sys/nvpair_impl.h)
==============================================================================
--- head/sys/sys/nvpair_impl.h	Sat Jul  4 08:40:48 2015	(r285128, copy source)
+++ head/sys/contrib/libnv/nvpair_impl.h	Sat Jul  4 16:33:37 2015	(r285139)
@@ -32,14 +32,13 @@
 #ifndef	_NVPAIR_IMPL_H_
 #define	_NVPAIR_IMPL_H_
 
+#include <sys/nv.h>
 #include <sys/queue.h>
 
 #ifndef _KERNEL
 #include <stdint.h>
 #endif
 
-#include "nv.h"
-
 TAILQ_HEAD(nvl_head, nvpair);
 
 void nvpair_assert(const nvpair_t *nvp);


More information about the svn-src-all mailing list