From 8a50aa09019a4230374f48c2f7411342f26b7475 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Mon, 30 Dec 2024 13:51:48 -0500 Subject: [PATCH] nv: Add 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 . 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(-) create mode 100644 sys/sys/_nv.h diff --git a/sys/sys/_nv.h b/sys/sys/_nv.h new file mode 100644 index 00000000000..2baac37f771 --- /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 +#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 7741a64b903..095533d0835 100644 --- a/sys/sys/cnv.h +++ b/sys/sys/cnv.h @@ -30,6 +30,7 @@ #define _CNV_H_ #include +#include #ifndef _KERNEL #include @@ -39,13 +40,6 @@ #include #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 93ba9429bfc..8ef10a184ad 100644 --- a/sys/sys/dnv.h +++ b/sys/sys/dnv.h @@ -32,6 +32,7 @@ #define _DNV_H_ #include +#include #ifndef _KERNEL #include @@ -41,13 +42,6 @@ #include #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 6219eac6a82..fe7e6ac1089 100644 --- a/sys/sys/nv.h +++ b/sys/sys/nv.h @@ -34,6 +34,7 @@ #define _NV_H_ #include +#include #ifndef _KERNEL #include @@ -43,13 +44,6 @@ #include #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 faf130f3d99..f4bb383693a 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