exterror: advertise error strings via kern.features.exterr_strings

Allow userland, in particular test cases for EXTERROR conversions,
to detect at run time whether extended errors include the
descriptive message strings, which depends on the EXTERR_STRINGS
kernel option and cannot be probed in any other way.

Reviewed by:		kib
MFC after:		1 week
Assisted-by:		Claude Code (Fable 5)
Differential Revision:	https://reviews.freebsd.org/D58321
This commit is contained in:
Alexander Leidinger committed 2026-07-21 22:50:37 +02:00
1 parent d4ddf8eaee
commit c8db6d4b63
2 files changed
+16 -1

No files matched your search

+12 -1
View File
@@ -6,7 +6,7 @@
.\" Konstantin Belousov <[email protected]> under sponsorship
.\" from the FreeBSD Foundation.
.\"
.Dd November 5, 2025
.Dd July 21, 2026
.Dt EXTERROR 9
.Os
.Sh NAME
@@ -171,6 +171,17 @@ were modified to print the extended information if it is available
in addition to the usual
.Va errno
decoding.
.Pp
Kernels built with the
.Cd option EXTERR_STRINGS
advertise the
.Va kern.features.exterr_strings
.Xr sysctl 8
variable, see
.Xr feature_present 3 ,
indicating that the reported errors include the descriptive message strings.
Without it, only the numeric information (error code, category,
source line number and parameters) is available.
.Sh ASYNCHRONOUS INPUT/OUTPUT
Due to the nature of the
.Fx
+4
View File
@@ -112,6 +112,10 @@ static MALLOC_DEFINE(M_IOCTLOPS, "ioctlops", "ioctl data buffer");
static MALLOC_DEFINE(M_SELECT, "select", "select() buffer");
MALLOC_DEFINE(M_IOV, "iov", "large iov's");
#ifdef EXTERR_STRINGS
FEATURE(exterr_strings, "Extended error reporting includes message strings");
#endif
static int pollout(struct thread *, struct pollfd *, struct pollfd *,
u_int);
static int pollscan(struct thread *, struct pollfd *, u_int);