From nobody Tue Jan 24 22:13:34 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 4P1h7g2ygXz3bgBG; Tue, 24 Jan 2023 22:13:35 +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 4P1h7f6ZNsz3HdY; Tue, 24 Jan 2023 22:13:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674598414; 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=FrEUWnNfLoo3ucG53O9gaj6hqCL4SvdM5Y5nBuOpKE4=; b=QypmlXJoXSxd9ggfP/eDfBgCGevKsSoKpgJZL52FZj8IuhZG3bEy5kKjjHlL9isId+LRjm jV38gXXUIi6J2cF/pc9KcaIKL2E6dHAY3zqfxINXC6LxrWo/+PAe0xnKIq7wN9CB7wi040 KJFRzxHmrLUhnQG9MviedHm/ZsnJDYe8ScAALlSAsLXkp4+vwTI3YWh1runt/kF6pIatEZ 5ebR9x7txvMS+XL4c0AemKS8kOzcAWoESotXDy/Mb83+Ges/ApERnMUPIPMrE8JWjcY7v5 EooQx/ZnnqBdBVdy4PEjHFEfqBzG31E7ZA4zZBGOPBwOn19lzmuUGoFkWwygqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674598414; 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=FrEUWnNfLoo3ucG53O9gaj6hqCL4SvdM5Y5nBuOpKE4=; b=Vc/U4AbIuOGTCxi5Hm6v2iAoTyhLdl3Fxn5RJzEzqmfjsE2hyhHgZJqjBFP3gRfBjPNUeK rXFAUeLPpRP5LiIn7iHGQ3NJUTqXPcqj6253S2O1zGv58SkD6JZGyHX/1M78P0iKTpBY0a SLwphXGDq4bSpmFOqbHFngVm/tfVSCEcGGCrcpvt80hnEDq3eFsceB2L+FRo4J5W2i5yKF ii2TmZqJ4oJB+jgP5zlpp1OYK253wh7IS8Lohdt9rT7yLGuOO8/VnMB4dPDDdAbm5aJ9fD 1IFX1xcrID4Qijv5mvdvREbLbqvRVaWa3rp+pX8a/pfawX6EBAwHxe5JbX5/+w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674598414; a=rsa-sha256; cv=none; b=LiWHTTJal4bgqXbpMWLGMBm9lDlb/fROigfDpKzeJTGCeykFY2unAO3xEyRcpzMIltkERu YnsQa+fNqZ7FFp3htC4K8pK6BeOP2gZITwLOW9nT3F9S0ray7cSdfcG9wzzVIYmST0uCMP DxyLbAGghyNie7nH0qvebY+tbBB23f6KERju56JMz76dyibJeAPpQ3Q8x627ObnwmbzIrx wPH5Y6VHs3lYObMBXO2Gke6Vwm8kjbo2Vv3RbwKe7rzMnAakq30P7XeVCsK7KiWzf2cIPm bOypLtYals1amZD44StkXh602thdNfQ+Sr4ng085Mp5CzBjHBiiQKJM1uFCKBQ== 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 4P1h7f5h3jzQYs; Tue, 24 Jan 2023 22:13:34 +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 30OMDYHq088619; Tue, 24 Jan 2023 22:13:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30OMDYml088618; Tue, 24 Jan 2023 22:13:34 GMT (envelope-from git) Date: Tue, 24 Jan 2023 22:13:34 GMT Message-Id: <202301242213.30OMDYml088618@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: 9bc5c28cc0c1 - stable/13 - kboot: move to using devparse 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: 9bc5c28cc0c1c3f19224bc6dce1e0d9f32be3363 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=9bc5c28cc0c1c3f19224bc6dce1e0d9f32be3363 commit 9bc5c28cc0c1c3f19224bc6dce1e0d9f32be3363 Author: Warner Losh AuthorDate: 2022-12-02 18:10:06 +0000 Commit: Warner Losh CommitDate: 2023-01-24 21:49:40 +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 (cherry picked from commit 6f8e9f22739aa7f5fe997741e9f50a66385c9e0c) --- 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