From owner-svn-src-user@FreeBSD.ORG Thu Jun 21 07:48:15 2012 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47C38106566B; Thu, 21 Jun 2012 07:48:15 +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 197098FC12; Thu, 21 Jun 2012 07:48:15 +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 q5L7mEEt097113; Thu, 21 Jun 2012 07:48:14 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q5L7mESg097111; Thu, 21 Jun 2012 07:48:14 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201206210748.q5L7mESg097111@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Thu, 21 Jun 2012 07:48:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r237360 - user/ae/bootcode/sys/boot/i386/libi386 X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jun 2012 07:48:15 -0000 Author: ae Date: Thu Jun 21 07:48:14 2012 New Revision: 237360 URL: http://svn.freebsd.org/changeset/base/237360 Log: Pass additional arguments to the printing function via bd_print_args structure. Modified: user/ae/bootcode/sys/boot/i386/libi386/biosdisk.c Modified: user/ae/bootcode/sys/boot/i386/libi386/biosdisk.c ============================================================================== --- user/ae/bootcode/sys/boot/i386/libi386/biosdisk.c Thu Jun 21 07:19:39 2012 (r237359) +++ user/ae/bootcode/sys/boot/i386/libi386/biosdisk.c Thu Jun 21 07:48:14 2012 (r237360) @@ -116,6 +116,12 @@ static int bd_open(struct open_file *f, static int bd_close(struct open_file *f); static void bd_print(int verbose); +struct bd_print_args { + struct open_disk *od; + const char *prefix; + int verbose; +}; + struct devsw biosdisk = { "disk", DEVT_DISK, @@ -294,23 +300,27 @@ display_size(uint64_t size, uint16_t sec static void printpartition(void *arg, const char *pname, const struct ptable_entry *part) { - struct open_disk *od, *bsd; + struct bd_print_args *pa, bsd; struct i386_devdesc dev; - static char line[80]; + char line[80]; - od = (struct open_disk *)arg; - sprintf(line, "\tdisk%d%s: %s %s\n", od->od_dkunit, pname, - parttype2str(part->type), - display_size(part->end - part->start + 1, BDSECSZ(od))); + pa = (struct bd_print_args *)arg; + sprintf(line, " %s%s: %s %s\n", pa->prefix, pname, + parttype2str(part->type), pa->verbose == 0 ? "": + display_size(part->end - part->start + 1, BDSECSZ(pa->od))); pager_output(line); if (part->type == PART_FREEBSD) { /* Open slice with BSD label */ - dev.d_unit = od->od_dkunit; + dev.d_unit = pa->od->od_dkunit; dev.d_kind.biosdisk.slice = part->index; dev.d_kind.biosdisk.partition = -1; - if (!bd_opendisk(&bsd, &dev)) { - ptable_iterate(bsd->od_ptable, bsd, printpartition); - bd_closedisk(bsd); + if (!bd_opendisk(&bsd.od, &dev)) { + sprintf(line, " %s%s", pa->prefix, pname); + bsd.prefix = line; + bsd.verbose = pa->verbose; + ptable_iterate(bsd.od->od_ptable, &bsd, + printpartition); + bd_closedisk(bsd.od); } } } @@ -320,9 +330,9 @@ printpartition(void *arg, const char *pn static void bd_print(int verbose) { + struct bd_print_args pa; static char line[80]; struct i386_devdesc dev; - struct open_disk *od; int i; for (i = 0; i < nbdinfo; i++) { @@ -335,9 +345,13 @@ bd_print(int verbose) dev.d_unit = i; dev.d_kind.biosdisk.slice = -1; dev.d_kind.biosdisk.partition = -1; - if (!bd_opendisk(&od, &dev)) { - ptable_iterate(od->od_ptable, od, printpartition); - bd_closedisk(od); + if (!bd_opendisk(&pa.od, &dev)) { + sprintf(line, " disk%d", i); + pa.prefix = line; + pa.verbose = verbose; + ptable_iterate(pa.od->od_ptable, &pa, + printpartition); + bd_closedisk(pa.od); } } }