git: 8a50aa09019a - main - nv: Add <sys/_nv.h> header for nvlist_t declaration
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 30 Dec 2024 18:52:41 UTC
The branch main has been updated by jhb:
URL: https://cgit.FreeBSD.org/src/commit/?id=8a50aa09019a4230374f48c2f7411342f26b7475
commit 8a50aa09019a4230374f48c2f7411342f26b7475
Author: John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2024-12-30 18:51:48 +0000
Commit: John Baldwin <jhb@FreeBSD.org>
CommitDate: 2024-12-30 18:51:48 +0000
nv: Add <sys/_nv.h> header for nvlist_t declaration
This can be useful for headers that wish to use nvlist_t pointers in a
structure or function argument without pulling in all of the headers
from <sys/nv.h>.
Reviewed by: imp
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D48229
---
sys/sys/_nv.h | 45 +++++++++++++++++++++++++++++++++++++++++++++
sys/sys/cnv.h | 8 +-------
sys/sys/dnv.h | 8 +-------
sys/sys/nv.h | 8 +-------
tools/build/Makefile | 1 +
5 files changed, 49 insertions(+), 21 deletions(-)
diff --git a/sys/sys/_nv.h b/sys/sys/_nv.h
new file mode 100644
index 000000000000..2baac37f7715
--- /dev/null
+++ b/sys/sys/_nv.h
@@ -0,0 +1,45 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2009-2013 The FreeBSD Foundation
+ *
+ * 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.
+ */
+
+#ifndef __NV_H_
+#define __NV_H_
+
+#ifndef _KERNEL
+#include <sys/nv_namespace.h>
+#endif
+
+#ifndef _NVLIST_T_DECLARED
+#define _NVLIST_T_DECLARED
+struct nvlist;
+
+typedef struct nvlist nvlist_t;
+#endif
+
+#endif /* !__NV_H_ */
diff --git a/sys/sys/cnv.h b/sys/sys/cnv.h
index 7741a64b9037..095533d08351 100644
--- a/sys/sys/cnv.h
+++ b/sys/sys/cnv.h
@@ -30,6 +30,7 @@
#define _CNV_H_
#include <sys/cdefs.h>
+#include <sys/_nv.h>
#ifndef _KERNEL
#include <stdarg.h>
@@ -39,13 +40,6 @@
#include <sys/nv_namespace.h>
#endif
-#ifndef _NVLIST_T_DECLARED
-#define _NVLIST_T_DECLARED
-struct nvlist;
-
-typedef struct nvlist nvlist_t;
-#endif
-
__BEGIN_DECLS
/*
diff --git a/sys/sys/dnv.h b/sys/sys/dnv.h
index 93ba9429bfc6..8ef10a184ad6 100644
--- a/sys/sys/dnv.h
+++ b/sys/sys/dnv.h
@@ -32,6 +32,7 @@
#define _DNV_H_
#include <sys/cdefs.h>
+#include <sys/_nv.h>
#ifndef _KERNEL
#include <stdarg.h>
@@ -41,13 +42,6 @@
#include <sys/nv_namespace.h>
#endif
-#ifndef _NVLIST_T_DECLARED
-#define _NVLIST_T_DECLARED
-struct nvlist;
-
-typedef struct nvlist nvlist_t;
-#endif
-
__BEGIN_DECLS
/*
diff --git a/sys/sys/nv.h b/sys/sys/nv.h
index 6219eac6a827..fe7e6ac10891 100644
--- a/sys/sys/nv.h
+++ b/sys/sys/nv.h
@@ -34,6 +34,7 @@
#define _NV_H_
#include <sys/cdefs.h>
+#include <sys/_nv.h>
#ifndef _KERNEL
#include <stdarg.h>
@@ -43,13 +44,6 @@
#include <sys/nv_namespace.h>
#endif
-#ifndef _NVLIST_T_DECLARED
-#define _NVLIST_T_DECLARED
-struct nvlist;
-
-typedef struct nvlist nvlist_t;
-#endif
-
#define NV_NAME_MAX 2048
#define NV_TYPE_NONE 0
diff --git a/tools/build/Makefile b/tools/build/Makefile
index faf130f3d99c..f4bb383693a8 100644
--- a/tools/build/Makefile
+++ b/tools/build/Makefile
@@ -275,6 +275,7 @@ MSDOSFSINCS+= ${SRCTOP}/sys/fs/msdosfs/msdosfsmount.h
DISKINCS+= ${SRCTOP}/sys/sys/disk/bsd.h
# Needed to build config (since it uses libnv)
+SYSINCS+= ${SRCTOP}/sys/sys/_nv.h
SYSINCS+= ${SRCTOP}/sys/sys/nv.h ${SRCTOP}/sys/sys/cnv.h \
${SRCTOP}/sys/sys/dnv.h ${SRCTOP}/sys/sys/nv_namespace.h