git: ecadac729a1b - main - sys/event.h: reduce namespace pollution from sys/abi_compat.h
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 10 Feb 2026 02:11:01 UTC
The branch main has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=ecadac729a1b855fe0d77a682ee424c3da1eb3db
commit ecadac729a1b855fe0d77a682ee424c3da1eb3db
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-02-09 20:13:21 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-02-10 02:10:11 +0000
sys/event.h: reduce namespace pollution from sys/abi_compat.h
Split out types definitions into sys/abi_types.h, and only include
abi_types.h into sys/event.h.
Tested and reviewed by: bz
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D55202
---
sys/dev/mfi/mfi.c | 5 +++--
sys/sys/abi_compat.h | 30 +-----------------------------
sys/sys/abi_types.h | 39 +++++++++++++++++++++++++++++++++++++++
sys/sys/event.h | 2 +-
4 files changed, 44 insertions(+), 32 deletions(-)
diff --git a/sys/dev/mfi/mfi.c b/sys/dev/mfi/mfi.c
index 474afcff60a7..8ad343d6d813 100644
--- a/sys/dev/mfi/mfi.c
+++ b/sys/dev/mfi/mfi.c
@@ -52,11 +52,12 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
#include "opt_mfi.h"
-#include <sys/param.h>
#include <sys/systm.h>
+#ifdef COMPAT_FREEBSD32
+#include <sys/abi_compat.h>
+#endif
#include <sys/sysctl.h>
#include <sys/malloc.h>
#include <sys/kernel.h>
diff --git a/sys/sys/abi_compat.h b/sys/sys/abi_compat.h
index f190dcda9b68..e696f0bae9db 100644
--- a/sys/sys/abi_compat.h
+++ b/sys/sys/abi_compat.h
@@ -4,11 +4,6 @@
* Copyright (c) 2001 Doug Rabson
* All rights reserved.
*
- * Copyright 2026 The FreeBSD Foundation
- *
- * Portions of this software were developed by Konstantin Belousov
- * 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:
@@ -34,35 +29,12 @@
#ifndef _ABI_COMPAT_H_
#define _ABI_COMPAT_H_
-#include <sys/_types.h>
+#include <sys/abi_types.h>
/*
* Helper types and macros for translating objects between different ABIs.
*/
-/*
- * i386 is the only arch with a 32-bit time_t.
- * Also it is the only arch with (u)int64_t having 4-bytes alignment.
- */
-typedef struct {
-#ifdef __amd64__
- __uint32_t val[2];
-#else
- __uint64_t val;
-#endif
-} freebsd32_uint64_t;
-
-#if __SIZEOF_LONG__ == 8
-#if defined __amd64__
-typedef __int32_t time32_t;
-#else
-typedef __int64_t time32_t;
-#endif
-#else
-typedef __int32_t time32_t;
-#endif
-#define __HAVE_TIME32_T
-
#define PTRIN(v) (void *)(uintptr_t)(v)
#define PTROUT(v) (uintptr_t)(v)
diff --git a/sys/sys/abi_types.h b/sys/sys/abi_types.h
new file mode 100644
index 000000000000..e449c86323f7
--- /dev/null
+++ b/sys/sys/abi_types.h
@@ -0,0 +1,39 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright 2026 The FreeBSD Foundation
+ *
+ * Portions of this software were developed by Konstantin Belousov
+ * under sponsorship from the FreeBSD Foundation.
+ *
+ */
+
+#ifndef _ABI_TYPES_H_
+#define _ABI_TYPES_H_
+
+#include <sys/_types.h>
+
+/*
+ * i386 is the only arch with a 32-bit time_t.
+ * Also it is the only arch with (u)int64_t having 4-bytes alignment.
+ */
+typedef struct {
+#ifdef __amd64__
+ __uint32_t val[2];
+#else
+ __uint64_t val;
+#endif
+} freebsd32_uint64_t;
+
+#if __SIZEOF_LONG__ == 8
+#if defined __amd64__
+typedef __int32_t time32_t;
+#else
+typedef __int64_t time32_t;
+#endif
+#else
+typedef __int32_t time32_t;
+#endif
+#define __HAVE_TIME32_T
+
+#endif
diff --git a/sys/sys/event.h b/sys/sys/event.h
index 0ba8e4796208..70d2926d1943 100644
--- a/sys/sys/event.h
+++ b/sys/sys/event.h
@@ -104,7 +104,7 @@ struct freebsd11_kevent {
#endif
#if defined(_WANT_KEVENT32) || defined(_KERNEL)
-#include <sys/abi_compat.h>
+#include <sys/abi_types.h>
struct kevent32 {
__uint32_t ident; /* identifier for this event */