From nobody Fri Dec 2 18:22:49 2022 X-Original-To: dev-commits-src-all@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 4NP1Ws4xntz4hrsT; Fri, 2 Dec 2022 18:22:49 +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 4NP1Ws4Npgz42q3; Fri, 2 Dec 2022 18:22:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1670005369; 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=lwlq69OvCMpHqcr5vabI4UmGx+VeR6NiXXPqCbHsQOE=; b=RaP5Z6RArN53YMndqCuoZQLpbAuXhZlGb/8TfDQgQCMUCOUfQ3qsYsNTSnYLZuMgIrphVf FtT823ettF1EX/xnDVyZZhGChj0P1a8Omq5Vv7OZBacME94QgI1c5XNILNPfQ1g8+gBeJD cNv2WRCoy8qUqaRjYhMHPm8mvvfYHxBD9pOFZ8pOvcjPM80EzqRLNxAPLZWeMTbRFfhiBu /bvJD0dkb7mmdWrke1YnFH0l9t+oGIIT7S9BRmJDOCUoHYuTcnJUIBuEzqvOkPP65uwK9l gwlDXRbT6+Xx05rlpeh4nvJp+DFzhpw+cWVq/zBQkR7UVb7afJ9AVk36rp6Y0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1670005369; 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=lwlq69OvCMpHqcr5vabI4UmGx+VeR6NiXXPqCbHsQOE=; b=a2VDlo1f69lDRrHZ/17pzSIsVIEk9Wac4RdIXeijp+mAi2kVJKK1POf5ehAqvjBeeb4DP0 a3whyUWSA4E7EcIYHd7ByjLTO9Wrrf46OLXkeQIf/G3UElj21FpctOfzz8405z5XS8lG6C t013hrbgN2JHix1muASblkcGFbb/MG/SxQNk8ujr5MRpr3/k+KiqlAuWf1xxdHD80H4fal 7vk/Za8Lu60Ae+U9oZ8S4MsW55NeZCxVpyxQV9a46gSGE4u3WRlooCVdgm8XwZkO7Qd0qN 6d4cFYxVegMIvX5Kf8M56wZiEzoWqhjCatSd1T5bakS1XVeTCvPwRWO/ieroRg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1670005369; a=rsa-sha256; cv=none; b=o/tCj6wOQiDem/NIBWu1wySP/hSY8KIdICFeVZ7TJhi5dT2hYo+/8us7uSpVodCzvF8cPC a9rddf0kTtkFM926LP7DrCmU/E/42lT16XBG+SAl4Xd/gpDExVTqOfYHknKEIjk1M5rkbz cLevh5DwsGwoCjD0bvHUl0MiRScwdPe3ug5pfZTAti2hiXb04nhrMtQWVUKNd7MobcqV5t CtMC5bnRM68lyr9uvz5eQ3ayXO4ob+n3OkVyZ7Mmgf0NfUHAc6XFxfkTQI3LgYocA3CXSJ S5UAFIgTThWQGvC0jVca0449wHBULSRqcC1vUPw2l4qna08DIQOQdSi/95noow== 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 4NP1Ws3RLhzQP7; Fri, 2 Dec 2022 18:22:49 +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 2B2IMn4P062452; Fri, 2 Dec 2022 18:22:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 2B2IMndP062451; Fri, 2 Dec 2022 18:22:49 GMT (envelope-from git) Date: Fri, 2 Dec 2022 18:22:49 GMT Message-Id: <202212021822.2B2IMndP062451@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 6f8e9f22739a - main - kboot: move to using devparse List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@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/main X-Git-Reftype: branch X-Git-Commit: 6f8e9f22739aa7f5fe997741e9f50a66385c9e0c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=6f8e9f22739aa7f5fe997741e9f50a66385c9e0c commit 6f8e9f22739aa7f5fe997741e9f50a66385c9e0c Author: Warner Losh AuthorDate: 2022-12-02 18:10:06 +0000 Commit: Warner Losh CommitDate: 2022-12-02 18:17:27 +0000 kboot: move to using devparse We can use devparse directly now. No need to invent a kboot_parsedev that just does what devparse does now that we've refactored. Sponsored by: Netflix --- stand/kboot/main.c | 54 ++++++++++++++++++------------------------------------ 1 file changed, 18 insertions(+), 36 deletions(-) diff --git a/stand/kboot/main.c b/stand/kboot/main.c index 23211ce9df4c..3b2c43c20a0f 100644 --- a/stand/kboot/main.c +++ b/stand/kboot/main.c @@ -49,49 +49,31 @@ static void kboot_kseg_get(int *nseg, void **ptr); extern int command_fdt_internal(int argc, char *argv[]); +/* + * NB: getdev should likely be identical to this most places, except maybe + * we should move to storing the length of the platform devdesc. + */ int kboot_getdev(void **vdev, const char *devspec, const char **path) { - int i, rv; - const char *devpath, *filepath; - struct devsw *dv; - struct devdesc *desc; - - if (devspec == NULL) { - rv = kboot_getdev(vdev, getenv("currdev"), NULL); - if (rv == 0 && path != NULL) + int rv; + struct devdesc **dev = (struct devdesc **)vdev; + + /* + * If it looks like this is just a path and no device, go with the + * current device. + */ + if (devspec == NULL || strchr(devspec, ':') == NULL) { + if (((rv = devparse(dev, getenv("currdev"), NULL)) == 0) && + (path != NULL)) *path = devspec; return (rv); } - if (strchr(devspec, ':') != NULL) { - devpath = devspec; - filepath = strchr(devspec, ':') + 1; - } else { - devpath = getenv("currdev"); - filepath = devspec; - } - for (i = 0; (dv = devsw[i]) != NULL; i++) { - if (strncmp(dv->dv_name, devpath, strlen(dv->dv_name)) == 0) - goto found; - } - return (ENOENT); - -found: - if (path != NULL && filepath != NULL) - *path = filepath; - else if (path != NULL) - *path = strchr(devspec, ':') + 1; - - if (vdev != NULL) { - desc = malloc(sizeof(*desc)); - desc->d_dev = dv; - desc->d_unit = 0; - desc->d_opendata = strdup(devpath); - *vdev = desc; - } - - return (0); + /* + * Try to parse the device name off the beginning of the devspec + */ + return (devparse(dev, devspec, path)); } int