From nobody Tue Nov 04 04:11:56 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4d0w590YTkz653SP; Tue, 04 Nov 2025 04:11:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4d0w583Ptkz4HQZ; Tue, 04 Nov 2025 04:11:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1762229516; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=m9WiiKNaWJp/mdr/7bwJCeJ74lji0U+n/KjL4z6YOxo=; b=kzgpgbyxrrc5prnLnl4931qva3TbyvNq0vaxLKAkkRh9boySUpgfdayu3nbD4ktqr/CZ7y Lu+/E7VFP8sbE0g1Q4oZQalfZZqMe8VKED+IvWffe7d1ATdKouoB5sjPazQFKguyz4bpl3 24mLyLru5Rcj2JSGSXP5piub+L1ehsK4Iy4C1V4qQc4vMBqjzNoOY5UFQl5uR/aR0ZbNNB F+HGiLawC6VMEARqWiSFxn7jep6IpNPxI2i475U/29DODWkApE0fKwLodoygB8+OvBkddT gpe0SwSF3w2Y5hztWT7E60rCDA1e/gxSZF+7am9du//8MuputuvzNwuJnwmrTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1762229516; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=m9WiiKNaWJp/mdr/7bwJCeJ74lji0U+n/KjL4z6YOxo=; b=iVzF2nx8SIik2z0em+5TZcuLbNtOekCXF6ygn1TI+7rMElenYcKXc3o1oPqh+G1gjskufT zcQmAi3QBqQAkwHcxLwbpf4nk5CGKiKxAq8s085NO3cqVsKtGpv9CnrfR7qNcoJNRNOkYA EGhKOm/hs4R69X/6c5dUaMdMn0yU+jHlQ0uxr0sfmjMpViRXrhO90Hmh7T/yIlMno2P/sM DWrKpYLjZYN4CVD+ba4A0zQRefX7xnV7wqxD/jp7kIlLKi5RfXuha19L1h+6C/LGxyuEHJ MAGZt4lIxuhEnH30/gr6QYOu3OiM2tn8mwHLO6wOhwdoAhFtP4DH10W6NOj7JA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1762229516; a=rsa-sha256; cv=none; b=b0zIEH+s0iKJ7ZeHSrdioIr24Y6YoQa8YsjA6g2NcLxcF2fNszS75a2QVDVkWIpVHQHoth ri8hW33Oj2tZFuoHw73zUKL/XOqrXialF++ktyn041hEx+DwEqOM/ajDuy2asusMs1LdWn rh4fkx1/RAMl4Ra3u1xftUW2aj94PjVE5yFfXjgLKGnfVmUKgqqmMJCbil4mCwG8gSllqB cB6rwNR0hfNprKGN9rQfTGl9ZMNu3zUtVpdZtCdTjS4gp1jTiGJChB9E8P2iWoUebRPv6Y +iuM/gEII88gEPNAu5N8TiXghLuI240TSimCY2971JGUwkGMsOEISkK8W4icug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4d0w582sMnzj5f; Tue, 04 Nov 2025 04:11:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5A44BuLP034602; Tue, 4 Nov 2025 04:11:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5A44BuA5034599; Tue, 4 Nov 2025 04:11:56 GMT (envelope-from git) Date: Tue, 4 Nov 2025 04:11:56 GMT Message-Id: <202511040411.5A44BuA5034599@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 069e2fb5506f - main - exterror(9): add two helpers List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 069e2fb5506f8301cd9e2da1946c718bd268c50c Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=069e2fb5506f8301cd9e2da1946c718bd268c50c commit 069e2fb5506f8301cd9e2da1946c718bd268c50c Author: Konstantin Belousov AuthorDate: 2025-10-25 09:14:59 +0000 Commit: Konstantin Belousov CommitDate: 2025-11-04 04:11:12 +0000 exterror(9): add two helpers The exterr_set_from() function sets current thread extended error from the pre-filled struct kexterr. The exterr_clear() function clears some struct kexterr. Reviewed by: mckusick Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D53351 --- 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 7d666da9f88b..a61341df436c 100644 --- a/sys/kern/sys_generic.c +++ b/sys/kern/sys_generic.c @@ -2345,3 +2345,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);