From owner-svn-src-all@FreeBSD.ORG Sun Sep 9 11:32:07 2012 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E3B70106564A; Sun, 9 Sep 2012 11:32:06 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C4E698FC0A; Sun, 9 Sep 2012 11:32:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q89BW6SG064745; Sun, 9 Sep 2012 11:32:06 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q89BW6xw064743; Sun, 9 Sep 2012 11:32:06 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201209091132.q89BW6xw064743@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Sun, 9 Sep 2012 11:32:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r240273 - head/sys/boot/uboot/lib X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Sep 2012 11:32:07 -0000 Author: ae Date: Sun Sep 9 11:32:06 2012 New Revision: 240273 URL: http://svn.freebsd.org/changeset/base/240273 Log: Use disk_fmtdev() and disk_parsedev() functions from the new DISK API. Modified: head/sys/boot/uboot/lib/devicename.c Modified: head/sys/boot/uboot/lib/devicename.c ============================================================================== --- head/sys/boot/uboot/lib/devicename.c Sun Sep 9 11:30:45 2012 (r240272) +++ head/sys/boot/uboot/lib/devicename.c Sun Sep 9 11:32:06 2012 (r240273) @@ -27,12 +27,11 @@ #include __FBSDID("$FreeBSD$"); -#include - #include #include #include "bootstrap.h" +#include "disk.h" #include "libuboot.h" static int uboot_parsedev(struct uboot_devdesc **dev, const char *devspec, @@ -90,7 +89,7 @@ uboot_parsedev(struct uboot_devdesc **de struct devsw *dv; char *cp; const char *np; - int i, unit, pnum, ptype, err; + int i, unit, err; /* minimum length check */ if (strlen(devspec) < 2) @@ -114,51 +113,13 @@ uboot_parsedev(struct uboot_devdesc **de case DEVT_NONE: break; +#ifdef LOADER_DISK_SUPPORT case DEVT_DISK: - unit = -1; - pnum = -1; - ptype = -1; - if (*np && (*np != ':')) { - /* next comes the unit number */ - unit = strtol(np, &cp, 10); - if (cp == np) { - err = EUNIT; - goto fail; - } - if (*cp && (*cp != ':')) { - /* get partition */ - if (*cp == 'p' && *(cp + 1) && - *(cp + 1) != ':') { - pnum = strtol(cp + 1, &cp, 10); - ptype = PTYPE_GPT; - } else if (*cp == 's' && *(cp + 1) && - *(cp + 1) != ':') { - pnum = strtol(cp + 1, &cp, 10); - ptype = PTYPE_MBR; - } else { - pnum = *cp - 'a'; - ptype = PTYPE_BSDLABEL; - if ((pnum < 0) || - (pnum >= MAXPARTITIONS)) { - err = EPART; - goto fail; - } - cp++; - } - } - } - if (*cp && (*cp != ':')) { - err = EINVAL; + err = disk_parsedev((struct disk_devdesc *)idev, np, path); + if (err != 0) goto fail; - } - - idev->d_unit = unit; - idev->d_disk.pnum = pnum; - idev->d_disk.ptype = ptype; - idev->d_disk.data = NULL; - if (path != NULL) - *path = (*cp == 0) ? cp : cp + 1; break; +#endif case DEVT_NET: unit = 0; @@ -204,7 +165,6 @@ char * uboot_fmtdev(void *vdev) { struct uboot_devdesc *dev = (struct uboot_devdesc *)vdev; - char *cp; static char buf[128]; switch(dev->d_type) { @@ -213,22 +173,9 @@ uboot_fmtdev(void *vdev) break; case DEVT_DISK: - cp = buf; - cp += sprintf(cp, "%s%d", dev->d_dev->dv_name, dev->d_unit); - if (dev->d_kind.disk.pnum >= 0) { - if (dev->d_kind.disk.ptype == PTYPE_BSDLABEL) - cp += sprintf(cp, "%c", - dev->d_kind.disk.pnum + 'a'); - else if (dev->d_kind.disk.ptype == PTYPE_GPT) - cp += sprintf(cp, "p%i", - dev->d_kind.disk.pnum); - else if (dev->d_kind.disk.ptype == PTYPE_MBR) - cp += sprintf(cp, "s%i", - dev->d_kind.disk.pnum); - } - - strcat(cp, ":"); - break; +#ifdef LOADER_DISK_SUPPORT + return (disk_fmtdev(vdev)); +#endif case DEVT_NET: sprintf(buf, "%s%d:", dev->d_dev->dv_name, dev->d_unit);