From nobody Tue Jan 24 22:14:22 2023 X-Original-To: dev-commits-src-branches@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 4P1h8b1VVGz3bglp; Tue, 24 Jan 2023 22:14:23 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4P1h8Z6Jctz3LV5; Tue, 24 Jan 2023 22:14:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674598462; 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=utCiSbTBLP2dCkqgq7T2EFT3mxYEXo89IwSZ7QkNwI8=; b=XXOK5jRE9CA+fWIttq6WhCtmZ8b1oAgeHOOe2MeCiDEXAQ8QSEaerTCw3H2TisLJvcm5ai e6j2MhhUvChCEzZLM9K3KyC8ZuNoWyYfC1KOQgFfZJo59G9invErWM/CNVeDmtBpMzvphi joc/NHw0AZM4xTX0e+cCYDnauedwQynPfi6AWGIw8dgtXQQYhE+UcxPFM08F688avuNLqn aHlTsANAFgNhWmrNDOE+tRotNlWBOrW+dMdtRQ3puil8vD/0fX+g4QZ29FfinS2QxYSUBH ElRHY1BRrQxj+jFq/T3g0C0nNyYoRvP9hCwNgz0Onbbt1v2/P/Wn3CZTDDvBTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674598462; 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=utCiSbTBLP2dCkqgq7T2EFT3mxYEXo89IwSZ7QkNwI8=; b=GE6Y8z+9fgWkOHZCpE4IozhzVUc000E52laSXnJSYoS3cfHQQni4bhUxjDv3KpjtZVF206 VmSePXxQAIBHnT1dF9WDChJf2/dMr4VodNKT7Cpdxcy8HHhAidpugPrbtfJrWe1CYavnHr 3/pCMrWvEvl1LCXAztOsaEC3IiWFQXi3QBAR3sS913imOHExPTJM6b09pyZHLR0RhZzIXK sSvR26rDY2msjfcc+DMDQrvkNbrUEvVzBU/6stgaLfsH63k63hvXeC+OzVdvVutb5Ld0Tb pn9PjOHd5MTd94Uvz+3xZPw2E5JZqqU0cjiJA5I26bo1dPFPQn36WAM4EXJtzQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674598462; a=rsa-sha256; cv=none; b=SIBJXBpVpi3hkyqt4MSU/yHv3Z1u9HgTQSTYzykRyX/ij1k2TEiQdrKVFbNbh+A6V1nwGz vjnNRLH80tLYeOurg9oviuGr/QkaHWrQOqz2CF7KyS260uir1lOuWyO7oqMxTdEbeWp6We pohtYZ+kcBlDJA1LHCaeAThCmu+Hq25fWk71L4UYMZDYd4RlAHH4RCTPcBbdw0YiSMdnEl 4h07vLeYQVtAhaPo5Va5J88Q5CXEYXXUX+NUxXwIznPXFDLZEEDJ1vOobQM3mdU19F1O6H /3/xSsBaFmh0zr+4qirEz6uYmo6tYEhD36RRGNm8oISnOVm9bBHR2AlZL7CvcQ== 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 4P1h8Z5N0kzQs9; Tue, 24 Jan 2023 22:14:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30OMEMsU089733; Tue, 24 Jan 2023 22:14:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30OMEMhO089732; Tue, 24 Jan 2023 22:14:22 GMT (envelope-from git) Date: Tue, 24 Jan 2023 22:14:22 GMT Message-Id: <202301242214.30OMEMhO089732@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 7956ceec924a - stable/13 - stand: create common set_currdev List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 7956ceec924a4ef9a9f97c11efe89a959a5b23db Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=7956ceec924a4ef9a9f97c11efe89a959a5b23db commit 7956ceec924a4ef9a9f97c11efe89a959a5b23db Author: Warner Losh AuthorDate: 2023-01-11 22:14:28 +0000 Commit: Warner Losh CommitDate: 2023-01-24 21:49:46 +0000 stand: create common set_currdev Pull together the nearly identical copies of set_currdev in i386, userboot and efi. Other boot loaders have variances that might be fine to use the common routine, or not. Since they are harder to test for me, and ofw and uboot do handle these setting differently, leave them be for now. Sponsored by: Netflix Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D38005 (cherry picked from commit ad70f2e22ef29f94bf5208b3a9a2389575330b06) --- stand/common/bootstrap.h | 1 + stand/common/misc.c | 17 +++++++++++++++++ stand/efi/loader/main.c | 14 -------------- stand/i386/loader/main.c | 5 +---- stand/userboot/userboot/main.c | 10 ---------- 5 files changed, 19 insertions(+), 28 deletions(-) diff --git a/stand/common/bootstrap.h b/stand/common/bootstrap.h index 138e2e51ceff..261eefaac943 100644 --- a/stand/common/bootstrap.h +++ b/stand/common/bootstrap.h @@ -415,6 +415,7 @@ int nvstore_unset_var(void *, const char *); /* common code to set currdev variable. */ int gen_setcurrdev(struct env_var *ev, int flags, const void *value); int mount_currdev(struct env_var *, int, const void *); +void set_currdev(const char *devname); #ifndef CTASSERT #define CTASSERT(x) _Static_assert(x, "compile-time assertion failed") diff --git a/stand/common/misc.c b/stand/common/misc.c index e27191796a72..b80909b9edfb 100644 --- a/stand/common/misc.c +++ b/stand/common/misc.c @@ -206,3 +206,20 @@ gen_setcurrdev(struct env_var *ev, int flags, const void *value) return (mount_currdev(ev, flags, value)); } + +/* + * Wrapper to set currdev and loaddev at the same time. + */ +void +set_currdev(const char *devname) +{ + + env_setenv("currdev", EV_VOLATILE, devname, gen_setcurrdev, + env_nounset); + /* + * Don't execute hook here; the loaddev hook makes it immutable + * once we've determined what the proper currdev is. + */ + env_setenv("loaddev", EV_VOLATILE | EV_NOHOOK, devname, env_noset, + env_nounset); +} diff --git a/stand/efi/loader/main.c b/stand/efi/loader/main.c index 1e91817410b6..446c267a517a 100644 --- a/stand/efi/loader/main.c +++ b/stand/efi/loader/main.c @@ -185,20 +185,6 @@ out: return retval; } -static void -set_currdev(const char *devname) -{ - - env_setenv("currdev", EV_VOLATILE, devname, gen_setcurrdev, - env_nounset); - /* - * Don't execute hook here; the loaddev hook makes it immutable - * once we've determined what the proper currdev is. - */ - env_setenv("loaddev", EV_VOLATILE | EV_NOHOOK, devname, env_noset, - env_nounset); -} - static void set_currdev_devdesc(struct devdesc *currdev) { diff --git a/stand/i386/loader/main.c b/stand/i386/loader/main.c index 1a7b97f48d75..f073f7a31f6d 100644 --- a/stand/i386/loader/main.c +++ b/stand/i386/loader/main.c @@ -383,10 +383,7 @@ extract_currdev(void) init_zfs_boot_options(devformat(&new_currdev.dd)); #endif - env_setenv("currdev", EV_VOLATILE, devformat(&new_currdev.dd), - gen_setcurrdev, env_nounset); - env_setenv("loaddev", EV_VOLATILE, devformat(&new_currdev.dd), - env_noset, env_nounset); + set_currdev(devformat(&new_currdev.dd)); } COMMAND_SET(reboot, "reboot", "reboot the system", command_reboot); diff --git a/stand/userboot/userboot/main.c b/stand/userboot/userboot/main.c index 02118c2ec1ae..40911f35020a 100644 --- a/stand/userboot/userboot/main.c +++ b/stand/userboot/userboot/main.c @@ -224,16 +224,6 @@ loader_main(struct loader_callbacks *cb, void *arg, int version, int ndisks) exit(0); } -static void -set_currdev(const char *devname) -{ - - env_setenv("currdev", EV_VOLATILE, devname, - gen_setcurrdev, env_nounset); - env_setenv("loaddev", EV_VOLATILE, devname, - env_noset, env_nounset); -} - /* * Set the 'current device' by (if possible) recovering the boot device as * supplied by the initial bootstrap.