Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 01 Dec 2025 03:48:23 +0000
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 0e1fcec72a05 - stable/15 - exterror(9): add two helpers
Message-ID:  <692d1007.2fc4d.7590e5f5@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/15 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=0e1fcec72a0515749b5dc9b7baeca4d345b49c62

commit 0e1fcec72a0515749b5dc9b7baeca4d345b49c62
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2025-10-25 09:14:59 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2025-12-01 03:39:09 +0000

    exterror(9): add two helpers
    
    (cherry picked from commit 069e2fb5506f8301cd9e2da1946c718bd268c50c)
---
 sys/kern/sys_generic.c | 19 +++++++++++++++++++
 sys/sys/exterrvar.h    |  2 ++
 2 files changed, 21 insertions(+)

diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c
index 5606b36f772f..79628f1389e4 100644
--- a/sys/kern/sys_generic.c
+++ b/sys/kern/sys_generic.c
@@ -2339,3 +2339,22 @@ exterr_set(int eerror, int category, const char *mmsg, uintptr_t pp1,
 	}
 	return (eerror);
 }
+
+int
+exterr_set_from(const struct kexterr *ke)
+{
+	struct thread *td;
+
+	td = curthread;
+	if ((td->td_pflags2 & TDP2_UEXTERR) != 0) {
+		td->td_pflags2 |= TDP2_EXTERR;
+		td->td_kexterr = *ke;
+	}
+	return (td->td_kexterr.error);
+}
+
+void
+exterr_clear(struct kexterr *ke)
+{
+	memset(ke, 0, sizeof(*ke));
+}
diff --git a/sys/sys/exterrvar.h b/sys/sys/exterrvar.h
index 5fce8ae7ffbe..1e07f6afb547 100644
--- a/sys/sys/exterrvar.h
+++ b/sys/sys/exterrvar.h
@@ -69,6 +69,8 @@
 	_EXTERROR_MACRO(__VA_ARGS__, _SET_ERROR2, _SET_ERROR1,		\
 	    _SET_ERROR0)(__VA_ARGS__)
 
+void exterr_clear(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);
 int exterr_to_ue(struct thread *td, struct uexterror *ue);


help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?692d1007.2fc4d.7590e5f5>