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