[PATCH] Provide kernel space items only if needed

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Mar 13 12:36:21 UTC 2023


The kernel space parts of standard system header files were protected
against misuse by an preprocessor error directive.  This approach does
not work well with tools such as Doxygen.  Provide the kernel space
items only if the required defines are present.
---
 cpukit/include/machine/_kernel_in.h    | 8 +++++---
 cpukit/include/machine/_kernel_in6.h   | 8 +++++---
 cpukit/include/machine/_kernel_param.h | 8 +++++---
 cpukit/include/machine/_kernel_time.h  | 8 +++++---
 cpukit/include/machine/_kernel_types.h | 8 +++++---
 cpukit/include/machine/_kernel_uio.h   | 8 +++++---
 6 files changed, 30 insertions(+), 18 deletions(-)

diff --git a/cpukit/include/machine/_kernel_in.h b/cpukit/include/machine/_kernel_in.h
index b33283353a..78492453cd 100644
--- a/cpukit/include/machine/_kernel_in.h
+++ b/cpukit/include/machine/_kernel_in.h
@@ -39,9 +39,7 @@
  *   (_KERNEL is defined before including <netinet/in.h>).
  */
 
-#if !defined(_NETINET_IN_H_) || !defined(_KERNEL)
-#error "must be included via <netinet/in.h> in kernel space"
-#endif
+#if defined(_NETINET_IN_H_) && defined(_KERNEL)
 
 struct ifnet; struct mbuf;	/* forward declarations for Standard C */
 struct in_ifaddr;
@@ -71,3 +69,7 @@ void	 in_ifdetach(struct ifnet *);
 #define	satosin(sa)	((struct sockaddr_in *)(sa))
 #define	sintosa(sin)	((struct sockaddr *)(sin))
 #define	ifatoia(ifa)	((struct in_ifaddr *)(ifa))
+
+#else /* !_NETINET_IN_H_ || !_KERNEL */
+#error "must be included via <netinet/in.h> in kernel space"
+#endif /* _NETINET_IN_H_ && _KERNEL */
diff --git a/cpukit/include/machine/_kernel_in6.h b/cpukit/include/machine/_kernel_in6.h
index 7ec695bd6d..857b51548d 100644
--- a/cpukit/include/machine/_kernel_in6.h
+++ b/cpukit/include/machine/_kernel_in6.h
@@ -38,9 +38,7 @@
  *   (_KERNEL is defined before including <netinet6/in6.h>).
  */
 
-#if !defined(_NETINET6_IN6_H_) || !defined(_KERNEL)
-#error "must be included via <netinet6/in6.h> in kernel space"
-#endif
+#if defined(_NETINET6_IN6_H_) && defined(_KERNEL)
 
 /* XXX nonstandard */
 #define s6_addr8  __u6_addr.__u6_addr8
@@ -187,3 +185,7 @@ extern void addrsel_policy_init(void);
 #define	satosin6(sa)	((struct sockaddr_in6 *)(sa))
 #define	sin6tosa(sin6)	((struct sockaddr *)(sin6))
 #define	ifatoia6(ifa)	((struct in6_ifaddr *)(ifa))
+
+#else /* !_NETINET6_IN6_H_ || !_KERNEL */
+#error "must be included via <netinet6/in6.h> in kernel space"
+#endif /* _NETINET6_IN6_H_ && _KERNEL */
diff --git a/cpukit/include/machine/_kernel_param.h b/cpukit/include/machine/_kernel_param.h
index 5b381ccca5..1235d7b324 100644
--- a/cpukit/include/machine/_kernel_param.h
+++ b/cpukit/include/machine/_kernel_param.h
@@ -37,9 +37,7 @@
 #include <sys/time.h>
 #include <sys/priority.h>
 
-#if !defined(_SYS_PARAM_H_) || !defined(_KERNEL)
-#error "must be included via <sys/param.h> in kernel space"
-#endif
+#if defined(_SYS_PARAM_H_) && defined(_KERNEL)
 
 #ifndef FALSE
 #define	FALSE	0
@@ -65,3 +63,7 @@ __END_DECLS
 #define	ntohl(x)	__ntohl(x)
 #define	ntohs(x)	__ntohs(x)
 #endif /* !_BYTEORDER_FUNC_DEFINED */
+
+#else /* !_SYS_PARAM_H_ || !_KERNEL */
+#error "must be included via <sys/param.h> in kernel space"
+#endif /* _SYS_PARAM_H_ && _KERNEL */
diff --git a/cpukit/include/machine/_kernel_time.h b/cpukit/include/machine/_kernel_time.h
index cfd223f0b6..c65355d006 100644
--- a/cpukit/include/machine/_kernel_time.h
+++ b/cpukit/include/machine/_kernel_time.h
@@ -41,9 +41,7 @@
  *   (_KERNEL is defined before including <sys/time.h>).
  */
 
-#if !defined(_SYS_TIME_H_) || !defined(_KERNEL)
-#error "must be included via <sys/time.h> in kernel space"
-#endif
+#if defined(_SYS_TIME_H_) && defined(_KERNEL)
 
 #include <machine/_timecounter.h>
 
@@ -216,3 +214,7 @@ int	tvtohz(struct timeval *tv);
 #define	TIMESEL(sbt, sbt2)						\
 	(((sbt2) >= sbt_timethreshold) ?				\
 	    ((*(sbt) = getsbinuptime()), 1) : ((*(sbt) = sbinuptime()), 0))
+
+#else /* !_SYS_TIME_H_ || !_KERNEL */
+#error "must be included via <sys/time.h> in kernel space"
+#endif /* _SYS_TIME_H_ && _KERNEL */
diff --git a/cpukit/include/machine/_kernel_types.h b/cpukit/include/machine/_kernel_types.h
index 98f0366b64..7f70964e2d 100644
--- a/cpukit/include/machine/_kernel_types.h
+++ b/cpukit/include/machine/_kernel_types.h
@@ -32,9 +32,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#if !defined(_SYS_TYPES_H) || !defined(_KERNEL)
-#error "must be included via <sys/types.h> in kernel space"
-#endif
+#if defined(_SYS_TYPES_H) && defined(_KERNEL)
 
 #include <stdbool.h>
 
@@ -42,3 +40,7 @@ typedef	int		boolean_t;
 typedef	struct device	*device_t;
 typedef	char		vm_memattr_t;
 typedef	struct vm_page	*vm_page_t;
+
+#else /* !_SYS_TYPES_H || !_KERNEL */
+#error "must be included via <sys/types.h> in kernel space"
+#endif /* _SYS_TYPES_H && _KERNEL */
diff --git a/cpukit/include/machine/_kernel_uio.h b/cpukit/include/machine/_kernel_uio.h
index 59929cb03c..c9454e97ca 100644
--- a/cpukit/include/machine/_kernel_uio.h
+++ b/cpukit/include/machine/_kernel_uio.h
@@ -39,9 +39,7 @@
  *   kernel space (_KERNEL is defined before including <sys/uio.h>).
  */
 
-#if !defined(_SYS_UIO_H_) || !defined(_KERNEL)
-#error "must be included via <sys/uio.h> in kernel space"
-#endif
+#if defined(_SYS_UIO_H_) && defined(_KERNEL)
 
 struct uio {
 	struct	iovec *uio_iov;		/* scatter/gather list */
@@ -88,3 +86,7 @@ int	uiomove_fromphys(struct vm_page *ma[], vm_offset_t offset, int n,
 	    struct uio *uio);
 int	uiomove_nofault(void *cp, int n, struct uio *uio);
 int	uiomove_object(struct vm_object *obj, off_t obj_size, struct uio *uio);
+
+#else /* !_SYS_UIO_H_ || !_KERNEL */
+#error "must be included via <sys/uio.h> in kernel space"
+#endif /* _SYS_UIO_H_ && _KERNEL */
-- 
2.35.3



More information about the devel mailing list