diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2025-11-04 20:51:19 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2025-11-04 22:55:20 +0000 |
| commit | 9521b0b91ea31b7f31b3800772ac6502c822ae56 (patch) | |
| tree | 1b93447a3f8b9740f4a923473eed62464aa8e731 | |
| parent | 96e215ad8173185337cf3057b80f2a0723ca201a (diff) | |
exterr: add exterr_db_print(), to be used by several ddb dumpers
Sponsored by: The FreeBSD Foundation
| -rw-r--r-- | sys/kern/sys_generic.c | 13 | ||||
| -rw-r--r-- | sys/sys/exterrvar.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c index a61341df436c..b84f675d1dcb 100644 --- a/sys/kern/sys_generic.c +++ b/sys/kern/sys_generic.c @@ -2364,3 +2364,16 @@ exterr_clear(struct kexterr *ke) { memset(ke, 0, sizeof(*ke)); } + +#include "opt_ddb.h" +#ifdef DDB +#include <ddb/ddb.h> + +void +exterr_db_print(struct kexterr *ke) +{ + db_printf("errno %d cat %d msg %s p1 %#jx p2 %#jx line %d\n", + ke->error, ke->cat, ke->msg == NULL ? "<none>" : ke->msg, + (uintmax_t)ke->p1, (uintmax_t)ke->p2, ke->src_line); +} +#endif diff --git a/sys/sys/exterrvar.h b/sys/sys/exterrvar.h index 1e07f6afb547..8e2961356a1e 100644 --- a/sys/sys/exterrvar.h +++ b/sys/sys/exterrvar.h @@ -70,6 +70,7 @@ _SET_ERROR0)(__VA_ARGS__) void exterr_clear(struct kexterr *ke); +void exterr_db_print(struct kexterr *ke); int exterr_set_from(const struct kexterr *ke); int exterr_set(int eerror, int category, const char *mmsg, uintptr_t pp1, uintptr_t pp2, int line); |
