From owner-p4-projects Mon Feb 10 17:41:32 2003 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4574F37B405; Mon, 10 Feb 2003 17:41:29 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D00AA37B401 for ; Mon, 10 Feb 2003 17:41:28 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5E39943FE0 for ; Mon, 10 Feb 2003 17:41:28 -0800 (PST) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h1B1fSbv026422 for ; Mon, 10 Feb 2003 17:41:28 -0800 (PST) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h1B1fR0u026413 for perforce@freebsd.org; Mon, 10 Feb 2003 17:41:27 -0800 (PST) Date: Mon, 10 Feb 2003 17:41:27 -0800 (PST) Message-Id: <200302110141.h1B1fR0u026413@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett Subject: PERFORCE change 24953 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG http://perforce.freebsd.org/chv.cgi?CH=24953 Change 24953 by jmallett@jmallett_dalek on 2003/02/10 17:41:02 Clean up block-size related code (and mishaps). Affected files ... .. //depot/projects/mips/sbin/fxlabel/fxlabel.c#7 edit Differences ... ==== //depot/projects/mips/sbin/fxlabel/fxlabel.c#7 (text+ko) ==== @@ -43,10 +43,12 @@ #include #include +#define DEFAULT_BSIZE 512 + struct volhdr label; struct volpart *vhp = &label.vh_part[FX_VOLHDRPART]; struct volpart *volp = &label.vh_part[FX_VOLPART]; -static int bsize = 512; +static int bsize = DEFAULT_BSIZE; /* * Boolean returns here indicate true on error. Some just error to prevent @@ -98,11 +100,22 @@ eflag = pflag = wflag = false; dksize = sflag = 0; - while ((ch = getopt(argc, argv, "a:d:eg:ps:w")) != -1) { + while ((ch = getopt(argc, argv, "a:b:d:eg:ps:w")) != -1) { switch (ch) { case 'a': aflag = optarg; break; + case 'b': + bsize = atoi(optarg); + if (bsize < DEFAULT_BSIZE) { + warnx("block size too small)"); + usage(); + } + /* + * Round to the DEFAULT_BSIZE. + */ + bsize += bsize % DEFAULT_BSIZE; + break; case 'd': dflag = optarg; break; @@ -367,6 +380,7 @@ mediasize = st.st_size; rv = mediasize; + printf("MEDIA SIZE %d\n", rv); return (rv); } @@ -528,12 +542,16 @@ static void newlabel(struct volhdr *vp, int volhdrsize, int dksize) { + int blocks; + memset(vp, 0, sizeof *vp); vp->vh_magic = FX_LABEL_MAGIC; if (volhdrsize > dksize) errx(1, "volume header extends beyond volume"); - setpart(vp, FX_VOLHDRPART, FX_TYPEVOLHDR, 0, volhdrsize); - setpart(vp, FX_VOLPART, FX_TYPEVOL, 0, dksize); + blocks = bytesround2bsize(volhdrsize) / bsize; + setpart(vp, FX_VOLHDRPART, FX_TYPEVOLHDR, 0, blocks); + blocks = bytesround2bsize(dksize) / bsize; + setpart(vp, FX_VOLPART, FX_TYPEVOL, 0, blocks); } static const char * @@ -831,11 +849,11 @@ usage(void) { fprintf(stderr, -"usage: fxlabel [-a file] disk [...]\n" -" fxlabel [-d file] disk [...]\n" -" fxlabel [-g file] disk [...]\n" -" fxlabel [-p] disk [...]\n" -" fxlabel [-e] [-s size] disk [...]\n" -" fxlabel [-w] [-s size] disk [...]\n"); +"usage: fxlabel [-a file] [-b bsize] disk [...]\n" +" fxlabel [-d file] [-b bsize] disk [...]\n" +" fxlabel [-g file] [-b bsize] disk [...]\n" +" fxlabel [-p] [-b bsize] disk [...]\n" +" fxlabel [-e] [-b bsize] [-s size] disk [...]\n" +" fxlabel [-w] [-b bsize] [-s size] disk [...]\n"); exit(-1); } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message