From nobody@FreeBSD.org  Sun Oct 31 23:51:57 2010
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BEAC91065675
	for <freebsd-gnats-submit@FreeBSD.org>; Sun, 31 Oct 2010 23:51:57 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id A2A108FC19
	for <freebsd-gnats-submit@FreeBSD.org>; Sun, 31 Oct 2010 23:51:57 +0000 (UTC)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.3/8.14.3) with ESMTP id o9VNpvMQ022626
	for <freebsd-gnats-submit@FreeBSD.org>; Sun, 31 Oct 2010 23:51:57 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.3/8.14.3/Submit) id o9VNpvgo022625;
	Sun, 31 Oct 2010 23:51:57 GMT
	(envelope-from nobody)
Message-Id: <201010312351.o9VNpvgo022625@www.freebsd.org>
Date: Sun, 31 Oct 2010 23:51:57 GMT
From: "Pedro F. Giffuni" <giffunip@tutopia.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: style cleanups to msdos_newfs
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         151850
>Category:       bin
>Synopsis:       [patch] style cleanups to newfs_msdosfs(8)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pfg
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Nov 01 00:00:21 UTC 2010
>Closed-Date:    Thu Jan 05 01:57:23 UTC 2012
>Last-Modified:  Fri Feb  3 23:40:08 UTC 2012
>Originator:     Pedro F. Giffuni
>Release:        8.0-Release with relevant files updated from 9.0
>Organization:
>Environment:
FreeBSD mogwai.giffuni.net 8.0-RELEASE FreeBSD 8.0-RELEASE #13: Sat Jan  9 20:39:47 UTC 2010     pedro@mogwai.giffuni.net:/usr/src/sys/i386/compile/GENERIC  i386
>Description:
As a followup to bin/142526 there were some style changes that
needed to be done as requested by bde@.

- Undo C99 initializers.
- Lots of tabs and space changes to conform to FreeBSD style.

Result should be innocuous.
>How-To-Repeat:

>Fix:
Patch follows.

Patch attached with submission follows:

--- newfs_msdos.c.orig	2010-04-03 12:36:58.000000000 +0000
+++ newfs_msdos.c	2010-04-03 17:18:12.000000000 +0000
@@ -55,6 +55,7 @@
 #define NPB	  2		/* nibbles per byte */
 
 #define DOSMAGIC  0xaa55	/* DOS magic number */
+#define MAXBPS    4096		/* maximum bytes per sector */
 #define MINBPS	  512		/* minimum bytes per sector */
 #define MAXSPC	  128		/* maximum sectors per cluster */
 #define MAXNFT	  16		/* maximum number of FATs */
@@ -406,24 +407,29 @@
 		(int)delta, bpb.bpbSecPerTrack);
 	    bpb.bpbHugeSectors -= delta;
 	}
-	if (bpb.bpbSecPerClust == 0) {	/* set defaults */
-	    if (bpb.bpbHugeSectors <= 6000)	/* about 3MB -> 512 bytes */
-		bpb.bpbSecPerClust = 1;
-	    else if (bpb.bpbHugeSectors <= (1<<17)) /* 64M -> 4k */
-		bpb.bpbSecPerClust = 8;
-	    else if (bpb.bpbHugeSectors <= (1<<19)) /* 256M -> 8k */
-		bpb.bpbSecPerClust = 16;
-	    else if (bpb.bpbHugeSectors <= (1<<21)) /* 1G -> 16k */
-		bpb.bpbSecPerClust = 32;
-	    else
-		bpb.bpbSecPerClust = 64;		/* otherwise 32k */
-	}
+    else
+	bpb.bpbSecPerClust /= (bpb.bpbBytesPerSec / MINBPS);
+    }
+    if (bpb.bpbSecPerClust == 0) {	/* set defaults */
+	if (bpb.bpbHugeSectors <= 6000)	/* about 3MB -> 512 bytes */
+	    bpb.bpbSecPerClust = 1;
+	else if (bpb.bpbHugeSectors <= (1<<17)) /* 64M -> 4k */
+	    bpb.bpbSecPerClust = 8;
+	else if (bpb.bpbHugeSectors <= (1<<19)) /* 256M -> 8k */
+	    bpb.bpbSecPerClust = 16;
+	else if (bpb.bpbHugeSectors <= (1<<21)) /* 1G -> 16k */
+	    bpb.bpbSecPerClust = 32;
+	else
+	    bpb.bpbSecPerClust = 64;		/* otherwise 32k */
     }
     if (!powerof2(bpb.bpbBytesPerSec))
 	errx(1, "bytes/sector (%u) is not a power of 2", bpb.bpbBytesPerSec);
     if (bpb.bpbBytesPerSec < MINBPS)
 	errx(1, "bytes/sector (%u) is too small; minimum is %u",
 	     bpb.bpbBytesPerSec, MINBPS);
+    if (bpb.bpbBytesPerSec > MAXBPS)
+        printf( "WARNING: bytes/sector (%u) is bigger than %u",
+	       bpb.bpbBytesPerSec, MAXBPS);
     if (!(fat = opt_F)) {
 	if (opt_f)
 	    fat = 12;
@@ -447,6 +453,9 @@
 		 opt_b, bpb.bpbBytesPerSec * MAXSPC);
 	bpb.bpbSecPerClust = opt_b / bpb.bpbBytesPerSec;
     }
+    if (bpb.bpbSecPerClust * bpb.bpbBytesPerSec > 32 * 1024)
+        printf("WARNING: bytes per sector (%u) is greater than 32K",
+	     bpb.bpbSecPerClust * bpb.bpbBytesPerSec);
     if (opt_c) {
 	if (!powerof2(opt_c))
 	    errx(1, "sectors/cluster (%u) is not a power of 2", opt_c);


>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->suspended 
State-Changed-By: pfg 
State-Changed-When: Fri Dec 16 16:09:21 UTC 2011 
State-Changed-Why:  
This was not the patch I intended to submit: 
I will have to dig in my archives. 


Responsible-Changed-From-To: freebsd-bugs->pfg 
Responsible-Changed-By: pfg 
Responsible-Changed-When: Fri Dec 16 16:09:21 UTC 2011 
Responsible-Changed-Why:  
I will take this. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=151850 

From: Pedro Giffuni <pfg@freebsd.org>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/151850: [patch] style cleanups to newfs_msdosfs(8)
Date: Fri, 16 Dec 2011 16:09:53 -0800 (PST)

 --445808829-977606157-1324080593=:42803
 Content-Type: text/plain; charset=utf-8
 Content-Transfer-Encoding: quoted-printable
 
 I rescued the patch (attached) and updated wrt=0Ato 10 current.
 --445808829-977606157-1324080593=:42803
 Content-Type: text/plain; name="patch-newfs.txt"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename="patch-newfs.txt"
 
 SW5kZXg6IG5ld2ZzX21zZG9zL25ld2ZzX21zZG9zLmMKPT09PT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PQotLS0gbmV3ZnNfbXNkb3MvbmV3ZnNfbXNkb3MuYwkocmV2
 aXNpb24gMjI4NjAyKQorKysgbmV3ZnNfbXNkb3MvbmV3ZnNfbXNkb3MuYwko
 d29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNyBAQAogI2RlZmluZSBNSU5D
 TFMxMiAgMVUJCS8qIG1pbmltdW0gRkFUMTIgY2x1c3RlcnMgKi8KICNkZWZp
 bmUgTUlOQ0xTMTYgIDB4MTAwMFUJLyogbWluaW11bSBGQVQxNiBjbHVzdGVy
 cyAqLwogI2RlZmluZSBNSU5DTFMzMiAgMlUJCS8qIG1pbmltdW0gRkFUMzIg
 Y2x1c3RlcnMgKi8KLSNkZWZpbmUgTUFYQ0xTMTIgIDB4ZmVkVSAJLyogbWF4
 aW11bSBGQVQxMiBjbHVzdGVycyAqLworI2RlZmluZSBNQVhDTFMxMiAgMHhm
 ZWRVCS8qIG1heGltdW0gRkFUMTIgY2x1c3RlcnMgKi8KICNkZWZpbmUgTUFY
 Q0xTMTYgIDB4ZmZmNVUJLyogbWF4aW11bSBGQVQxNiBjbHVzdGVycyAqLwog
 I2RlZmluZSBNQVhDTFMzMiAgMHhmZmZmZmY1VQkvKiBtYXhpbXVtIEZBVDMy
 IGNsdXN0ZXJzICovCiAKQEAgLTk3LDcgKzk3LDcgQEAKICNkZWZpbmUgYXJn
 dG94KGFyZywgbG8sIG1zZykgIGFyZ3RvdShhcmcsIGxvLCBVSU5UX01BWCwg
 bXNnKQogCiBzdHJ1Y3QgYnMgewotICAgIHVfaW50OF90IGJzSnVtcFszXTsJ
 CS8qIGJvb3RzdHJhcCBlbnRyeSBwb2ludCAqLworICAgIHVfaW50OF90IGJz
 SnVtcFszXTsJCQkvKiBib290c3RyYXAgZW50cnkgcG9pbnQgKi8KICAgICB1
 X2ludDhfdCBic09lbU5hbWVbOF07CQkvKiBPRU0gbmFtZSBhbmQgdmVyc2lv
 biAqLwogfSBfX3BhY2tlZDsKIApAQCAtMTIzLDcgKzEyMyw3IEBACiAgICAg
 dV9pbnQ4X3QgYnBiUm9vdENsdXN0WzRdOwkJLyogcm9vdCBkaXJlY3Rvcnkg
 c3RhcnQgY2x1c3RlciAqLwogICAgIHVfaW50OF90IGJwYkZTSW5mb1syXTsJ
 CS8qIGZpbGUgc3lzdGVtIGluZm8gc2VjdG9yICovCiAgICAgdV9pbnQ4X3Qg
 YnBiQmFja3VwWzJdOwkJLyogYmFja3VwIGJvb3Qgc2VjdG9yICovCi0gICAg
 dV9pbnQ4X3QgYnBiUmVzZXJ2ZWRbMTJdOwkJCS8qIHJlc2VydmVkICovCisg
 ICAgdV9pbnQ4X3QgYnBiUmVzZXJ2ZWRbMTJdOwkJLyogcmVzZXJ2ZWQgKi8K
 IH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBic3ggewpAQCAtMTM2LDEzICsxMzYs
 MTMgQEAKIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBkZSB7Ci0gICAgdV9pbnQ4
 X3QgZGVOYW1lWzExXTsJLyogbmFtZSBhbmQgZXh0ZW5zaW9uICovCi0gICAg
 dV9pbnQ4X3QgZGVBdHRyaWJ1dGVzOwkvKiBhdHRyaWJ1dGVzICovCi0gICAg
 dV9pbnQ4X3QgcnN2ZFsxMF07CQkvKiByZXNlcnZlZCAqLwotICAgIHVfaW50
 OF90IGRlTVRpbWVbMl07CS8qIGNyZWF0aW9uIHRpbWUgKi8KLSAgICB1X2lu
 dDhfdCBkZU1EYXRlWzJdOwkvKiBjcmVhdGlvbiBkYXRlICovCi0gICAgdV9p
 bnQ4X3QgZGVTdGFydENsdXN0ZXJbMl07CS8qIHN0YXJ0aW5nIGNsdXN0ZXIg
 Ki8KLSAgICB1X2ludDhfdCBkZUZpbGVTaXplWzRdOwkvKiBzaXplICovCisg
 ICAgdV9pbnQ4X3QgZGVOYW1lWzExXTsJCS8qIG5hbWUgYW5kIGV4dGVuc2lv
 biAqLworICAgIHVfaW50OF90IGRlQXR0cmlidXRlczsJCS8qIGF0dHJpYnV0
 ZXMgKi8KKyAgICB1X2ludDhfdCByc3ZkWzEwXTsJCQkvKiByZXNlcnZlZCAq
 LworICAgIHVfaW50OF90IGRlTVRpbWVbMl07CQkvKiBjcmVhdGlvbiB0aW1l
 ICovCisgICAgdV9pbnQ4X3QgZGVNRGF0ZVsyXTsJCS8qIGNyZWF0aW9uIGRh
 dGUgKi8KKyAgICB1X2ludDhfdCBkZVN0YXJ0Q2x1c3RlclsyXTsJCS8qIHN0
 YXJ0aW5nIGNsdXN0ZXIgKi8KKyAgICB1X2ludDhfdCBkZUZpbGVTaXplWzRd
 OwkJLyogc2l6ZSAqLwogfSBfX3BhY2tlZDsKIAogc3RydWN0IGJwYiB7CkBA
 IC0xNjAsMjkgKzE2MCwyNiBAQAogICAgIHVfaW50IGJwYkh1Z2VTZWN0b3Jz
 OyAJCS8qIGJpZyB0b3RhbCBzZWN0b3JzICovCiAgICAgdV9pbnQgYnBiQmln
 RkFUc2VjczsgCQkvKiBiaWcgc2VjdG9ycyBwZXIgRkFUICovCiAgICAgdV9p
 bnQgYnBiUm9vdENsdXN0OyAJCS8qIHJvb3QgZGlyZWN0b3J5IHN0YXJ0IGNs
 dXN0ZXIgKi8KLSAgICB1X2ludCBicGJGU0luZm87IAkJLyogZmlsZSBzeXN0
 ZW0gaW5mbyBzZWN0b3IgKi8KLSAgICB1X2ludCBicGJCYWNrdXA7IAkJLyog
 YmFja3VwIGJvb3Qgc2VjdG9yICovCisgICAgdV9pbnQgYnBiRlNJbmZvOyAJ
 CQkvKiBmaWxlIHN5c3RlbSBpbmZvIHNlY3RvciAqLworICAgIHVfaW50IGJw
 YkJhY2t1cDsgCQkJLyogYmFja3VwIGJvb3Qgc2VjdG9yICovCiB9OwogCiAj
 ZGVmaW5lIEJQQkdBUCAwLCAwLCAwLCAwLCAwLCAwCiAKLSNkZWZpbmUgSU5J
 VChhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqKSBcCi0gICAgeyAuYnBi
 Qnl0ZXNQZXJTZWMgPSBhLCAuYnBiU2VjUGVyQ2x1c3QgPSBiLCAuYnBiUmVz
 U2VjdG9ycyA9IGMsIC5icGJGQVRzID0gZCwgLmJwYlJvb3REaXJFbnRzID0g
 ZSwgXAotICAgICAgLmJwYlNlY3RvcnMgPSBmLCAuYnBiTWVkaWEgPSBnLCAu
 YnBiRkFUc2VjcyA9IGgsIC5icGJTZWNQZXJUcmFjayA9IGksIC5icGJIZWFk
 cyA9IGosIH0KIHN0YXRpYyBzdHJ1Y3QgewogICAgIGNvbnN0IGNoYXIgKm5h
 bWU7CiAgICAgc3RydWN0IGJwYiBicGI7CiB9IGNvbnN0IHN0ZGZtdFtdID0g
 ewotICAgIHsiMTYwIiwgIElOSVQoNTEyLCAxLCAxLCAyLCAgNjQsICAzMjAs
 IDB4ZmUsIDEsICA4LCAxKX0sCi0gICAgeyIxODAiLCAgSU5JVCg1MTIsIDEs
 IDEsIDIsICA2NCwgIDM2MCwgMHhmYywgMiwgIDksIDEpfSwKLSAgICB7IjMy
 MCIsICBJTklUKDUxMiwgMiwgMSwgMiwgMTEyLCAgNjQwLCAweGZmLCAxLCAg
 OCwgMil9LAotICAgIHsiMzYwIiwgIElOSVQoNTEyLCAyLCAxLCAyLCAxMTIs
 ICA3MjAsIDB4ZmQsIDIsICA5LCAyKX0sCi0gICAgeyI2NDAiLCAgSU5JVCg1
 MTIsIDIsIDEsIDIsIDExMiwgMTI4MCwgMHhmYiwgMiwgIDgsIDIpfSwgICAg
 Ci0gICAgeyI3MjAiLCAgSU5JVCg1MTIsIDIsIDEsIDIsIDExMiwgMTQ0MCwg
 MHhmOSwgMywgIDksIDIpfSwKLSAgICB7IjEyMDAiLCBJTklUKDUxMiwgMSwg
 MSwgMiwgMjI0LCAyNDAwLCAweGY5LCA3LCAxNSwgMil9LAotICAgIHsiMTIz
 MiIsIElOSVQoMTAyNCwxLCAxLCAyLCAxOTIsIDEyMzIsIDB4ZmUsIDIsICA4
 LCAyKX0sICAgIAotICAgIHsiMTQ0MCIsIElOSVQoNTEyLCAxLCAxLCAyLCAy
 MjQsIDI4ODAsIDB4ZjAsIDksIDE4LCAyKX0sCi0gICAgeyIyODgwIiwgSU5J
 VCg1MTIsIDIsIDEsIDIsIDI0MCwgNTc2MCwgMHhmMCwgOSwgMzYsIDIpfQor
 ICAgIHsiMTYwIiwgIHs1MTIsIDEsIDEsIDIsICA2NCwgIDMyMCwgMHhmZSwg
 MSwgIDgsIDEsIEJQQkdBUH19LAorICAgIHsiMTgwIiwgIHs1MTIsIDEsIDEs
 IDIsICA2NCwgIDM2MCwgMHhmYywgMiwgIDksIDEsIEJQQkdBUH19LAorICAg
 IHsiMzIwIiwgIHs1MTIsIDIsIDEsIDIsIDExMiwgIDY0MCwgMHhmZiwgMSwg
 IDgsIDIsIEJQQkdBUH19LAorICAgIHsiMzYwIiwgIHs1MTIsIDIsIDEsIDIs
 IDExMiwgIDcyMCwgMHhmZCwgMiwgIDksIDIsIEJQQkdBUH19LAorICAgIHsi
 NjQwIiwgIHs1MTIsIDIsIDEsIDIsIDExMiwgMTI4MCwgMHhmYiwgMiwgIDgs
 IDIsIEJQQkdBUH19LCAgICAKKyAgICB7IjcyMCIsICB7NTEyLCAyLCAxLCAy
 LCAxMTIsIDE0NDAsIDB4ZjksIDMsICA5LCAyLCBCUEJHQVB9fSwKKyAgICB7
 IjEyMDAiLCB7NTEyLCAxLCAxLCAyLCAyMjQsIDI0MDAsIDB4ZjksIDcsIDE1
 LCAyLCBCUEJHQVB9fSwKKyAgICB7IjEyMzIiLCB7MTAyNCwxLCAxLCAyLCAx
 OTIsIDEyMzIsIDB4ZmUsIDIsICA4LCAyLCBCUEJHQVB9fSwgICAgCisgICAg
 eyIxNDQwIiwgezUxMiwgMSwgMSwgMiwgMjI0LCAyODgwLCAweGYwLCA5LCAx
 OCwgMiwgQlBCR0FQfX0sCisgICAgeyIyODgwIiwgezUxMiwgMiwgMSwgMiwg
 MjQwLCA1NzYwLCAweGYwLCA5LCAzNiwgMiwgQlBCR0FQfX0KIH07CiAKIHN0
 YXRpYyBjb25zdCB1X2ludDhfdCBib290Y29kZVtdID0gewpAQCAtNDk0LDcg
 KzQ5MSw4IEBACiAJaWYgKChmZDEgPSBvcGVuKGJuYW1lLCBPX1JET05MWSkp
 ID09IC0xIHx8IGZzdGF0KGZkMSwgJnNiKSkKIAkgICAgZXJyKDEsICIlcyIs
 IGJuYW1lKTsKIAlpZiAoIVNfSVNSRUcoc2Iuc3RfbW9kZSkgfHwgc2Iuc3Rf
 c2l6ZSAlIGJwYi5icGJCeXRlc1BlclNlYyB8fAotCSAgICBzYi5zdF9zaXpl
 IDwgYnBiLmJwYkJ5dGVzUGVyU2VjIHx8IHNiLnN0X3NpemUgPiBicGIuYnBi
 Qnl0ZXNQZXJTZWMgKiBNQVhVMTYpCisJICAgIHNiLnN0X3NpemUgPCBicGIu
 YnBiQnl0ZXNQZXJTZWMgfHwKKwkgICAgc2Iuc3Rfc2l6ZSA+IGJwYi5icGJC
 eXRlc1BlclNlYyAqIE1BWFUxNikKIAkgICAgZXJyeCgxLCAiJXM6IGluYXBw
 cm9wcmlhdGUgZmlsZSB0eXBlIG9yIGZvcm1hdCIsIGJuYW1lKTsKIAlic3Mg
 PSBzYi5zdF9zaXplIC8gYnBiLmJwYkJ5dGVzUGVyU2VjOwogICAgIH0KQEAg
 LTUwMywxOSArNTAxLDIzIEBACiAgICAgaWYgKCFmYXQpIHsKIAlpZiAoYnBi
 LmJwYkh1Z2VTZWN0b3JzIDwgKGJwYi5icGJSZXNTZWN0b3JzID8gYnBiLmJw
 YlJlc1NlY3RvcnMgOiBic3MpICsKIAkgICAgaG93bWFueSgoUkVTRlRFICsg
 KGJwYi5icGJTZWNQZXJDbHVzdCA/IE1JTkNMUzE2IDogTUFYQ0xTMTIgKyAx
 KSkgKgotCQkgICAgKChicGIuYnBiU2VjUGVyQ2x1c3QgPyAxNiA6IDEyKSAv
 IEJQTiksIGJwYi5icGJCeXRlc1BlclNlYyAqIE5QQikgKgorCQkoYnBiLmJw
 YlNlY1BlckNsdXN0ID8gMTYgOiAxMikgLyBCUE4sCisJCWJwYi5icGJCeXRl
 c1BlclNlYyAqIE5QQikgKgogCSAgICBicGIuYnBiRkFUcyArCiAJICAgIGhv
 d21hbnkoYnBiLmJwYlJvb3REaXJFbnRzID8gYnBiLmJwYlJvb3REaXJFbnRz
 IDogREVGUkRFLAogCQkgICAgYnBiLmJwYkJ5dGVzUGVyU2VjIC8gc2l6ZW9m
 KHN0cnVjdCBkZSkpICsKIAkgICAgKGJwYi5icGJTZWNQZXJDbHVzdCA/IE1J
 TkNMUzE2IDogTUFYQ0xTMTIgKyAxKSAqCi0JICAgIChicGIuYnBiU2VjUGVy
 Q2x1c3QgPyBicGIuYnBiU2VjUGVyQ2x1c3QgOiBob3dtYW55KERFRkJMSywg
 YnBiLmJwYkJ5dGVzUGVyU2VjKSkpCisJICAgIChicGIuYnBiU2VjUGVyQ2x1
 c3QgPyBicGIuYnBiU2VjUGVyQ2x1c3QgOgorCSAgICAgaG93bWFueShERUZC
 TEssIGJwYi5icGJCeXRlc1BlclNlYykpKQogCSAgICBmYXQgPSAxMjsKIAll
 bHNlIGlmIChicGIuYnBiUm9vdERpckVudHMgfHwgYnBiLmJwYkh1Z2VTZWN0
 b3JzIDwKIAkJIChicGIuYnBiUmVzU2VjdG9ycyA/IGJwYi5icGJSZXNTZWN0
 b3JzIDogYnNzKSArCi0JCSBob3dtYW55KChSRVNGVEUgKyBNQVhDTFMxNikg
 KiAyLCBicGIuYnBiQnl0ZXNQZXJTZWMpICogYnBiLmJwYkZBVHMgKworCQkg
 aG93bWFueSgoUkVTRlRFICsgTUFYQ0xTMTYpICogMiwgYnBiLmJwYkJ5dGVz
 UGVyU2VjKSAqCisJCSBicGIuYnBiRkFUcyArCiAJCSBob3dtYW55KERFRlJE
 RSwgYnBiLmJwYkJ5dGVzUGVyU2VjIC8gc2l6ZW9mKHN0cnVjdCBkZSkpICsK
 IAkJIChNQVhDTFMxNiArIDEpICoKLQkJIChicGIuYnBiU2VjUGVyQ2x1c3Qg
 PyBicGIuYnBiU2VjUGVyQ2x1c3QgOiBob3dtYW55KDgxOTIsIGJwYi5icGJC
 eXRlc1BlclNlYykpKQorCQkgKGJwYi5icGJTZWNQZXJDbHVzdCA/IGJwYi5i
 cGJTZWNQZXJDbHVzdCA6CisJCSAgaG93bWFueSg4MTkyLCBicGIuYnBiQnl0
 ZXNQZXJTZWMpKSkKIAkgICAgZmF0ID0gMTY7CiAJZWxzZQogCSAgICBmYXQg
 PSAzMjsKQEAgLTUzOSwyMSArNTQxLDI3IEBACiAJICAgIHggPSBicGIuYnBi
 QmFja3VwICsgMTsKICAgICB9CiAgICAgaWYgKCFicGIuYnBiUmVzU2VjdG9y
 cykKLQlicGIuYnBiUmVzU2VjdG9ycyA9IGZhdCA9PSAzMiA/IE1BWCh4LCBN
 QVgoMTYzODQgLyBicGIuYnBiQnl0ZXNQZXJTZWMsIDQpKSA6IHg7CisJYnBi
 LmJwYlJlc1NlY3RvcnMgPSBmYXQgPT0gMzIgPyAKKwkgICAgTUFYKHgsIE1B
 WCgxNjM4NCAvIGJwYi5icGJCeXRlc1BlclNlYywgNCkpIDogeDsKICAgICBl
 bHNlIGlmIChicGIuYnBiUmVzU2VjdG9ycyA8IHgpCi0JZXJyeCgxLCAidG9v
 IGZldyByZXNlcnZlZCBzZWN0b3JzIChuZWVkICVkIGhhdmUgJWQpIiwgeCwg
 YnBiLmJwYlJlc1NlY3RvcnMpOworCWVycngoMSwgInRvbyBmZXcgcmVzZXJ2
 ZWQgc2VjdG9ycyAobmVlZCAlZCBoYXZlICVkKSIsIHgsCisJICAgICBicGIu
 YnBiUmVzU2VjdG9ycyk7CiAgICAgaWYgKGZhdCAhPSAzMiAmJiAhYnBiLmJw
 YlJvb3REaXJFbnRzKQogCWJwYi5icGJSb290RGlyRW50cyA9IERFRlJERTsK
 ICAgICByZHMgPSBob3dtYW55KGJwYi5icGJSb290RGlyRW50cywgYnBiLmJw
 YkJ5dGVzUGVyU2VjIC8gc2l6ZW9mKHN0cnVjdCBkZSkpOwogICAgIGlmICgh
 YnBiLmJwYlNlY1BlckNsdXN0KQotCWZvciAoYnBiLmJwYlNlY1BlckNsdXN0
 ID0gaG93bWFueShmYXQgPT0gMTYgPyBERUZCTEsxNiA6IERFRkJMSywgYnBi
 LmJwYkJ5dGVzUGVyU2VjKTsKKwlmb3IgKGJwYi5icGJTZWNQZXJDbHVzdCA9
 IGhvd21hbnkoZmF0ID09IDE2ID8gREVGQkxLMTYgOgorCQkJCQkgIERFRkJM
 SywgYnBiLmJwYkJ5dGVzUGVyU2VjKTsKIAkgICAgIGJwYi5icGJTZWNQZXJD
 bHVzdCA8IE1BWFNQQyAmJgogCSAgICAgYnBiLmJwYlJlc1NlY3RvcnMgKwog
 CSAgICAgaG93bWFueSgoUkVTRlRFICsgbWF4Y2xzKGZhdCkpICogKGZhdCAv
 IEJQTiksCi0JCSAgICAgYnBiLmJwYkJ5dGVzUGVyU2VjICogTlBCKSAqIGJw
 Yi5icGJGQVRzICsKKwkJICAgICBicGIuYnBiQnl0ZXNQZXJTZWMgKiBOUEIp
 ICoKKwkgICAgIGJwYi5icGJGQVRzICsKIAkgICAgIHJkcyArCi0JICAgICAo
 dV9pbnQ2NF90KShtYXhjbHMoZmF0KSArIDEpICogYnBiLmJwYlNlY1BlckNs
 dXN0IDw9IGJwYi5icGJIdWdlU2VjdG9yczsKLQkgICAgIGJwYi5icGJTZWNQ
 ZXJDbHVzdCA8PD0gMSk7CisJICAgICAodV9pbnQ2NF90KSAobWF4Y2xzKGZh
 dCkgKyAxKSAqCisJICAgICBicGIuYnBiU2VjUGVyQ2x1c3QgPD0gYnBiLmJw
 Ykh1Z2VTZWN0b3JzOworCSAgICAgYnBiLmJwYlNlY1BlckNsdXN0IDw8PSAx
 KQorCSAgICBjb250aW51ZTsKICAgICBpZiAoZmF0ICE9IDMyICYmIGJwYi5i
 cGJCaWdGQVRzZWNzID4gTUFYVTE2KQogCWVycngoMSwgInRvbyBtYW55IHNl
 Y3RvcnMvRkFUIGZvciBGQVQxMi8xNiIpOwogICAgIHgxID0gYnBiLmJwYlJl
 c1NlY3RvcnMgKyByZHM7CkBAIC01NjIsNyArNTcwLDggQEAKIAllcnJ4KDEs
 ICJtZXRhIGRhdGEgZXhjZWVkcyBmaWxlIHN5c3RlbSBzaXplIik7CiAgICAg
 eDEgKz0geCAqIGJwYi5icGJGQVRzOwogICAgIHggPSAodV9pbnQ2NF90KShi
 cGIuYnBiSHVnZVNlY3RvcnMgLSB4MSkgKiBicGIuYnBiQnl0ZXNQZXJTZWMg
 KiBOUEIgLwotCShicGIuYnBiU2VjUGVyQ2x1c3QgKiBicGIuYnBiQnl0ZXNQ
 ZXJTZWMgKiBOUEIgKyBmYXQgLyBCUE4gKiBicGIuYnBiRkFUcyk7CisJKGJw
 Yi5icGJTZWNQZXJDbHVzdCAqIGJwYi5icGJCeXRlc1BlclNlYyAqIE5QQiAr
 IGZhdCAvCisJIEJQTiAqIGJwYi5icGJGQVRzKTsKICAgICB4MiA9IGhvd21h
 bnkoKFJFU0ZURSArIE1JTih4LCBtYXhjbHMoZmF0KSkpICogKGZhdCAvIEJQ
 TiksCiAJCSBicGIuYnBiQnl0ZXNQZXJTZWMgKiBOUEIpOwogICAgIGlmICgh
 YnBiLmJwYkJpZ0ZBVHNlY3MpIHsKQEAgLTU3MCw3ICs1NzksOCBAQAogCXgx
 ICs9IChicGIuYnBiQmlnRkFUc2VjcyAtIDEpICogYnBiLmJwYkZBVHM7CiAg
 ICAgfQogICAgIGNscyA9IChicGIuYnBiSHVnZVNlY3RvcnMgLSB4MSkgLyBi
 cGIuYnBiU2VjUGVyQ2x1c3Q7Ci0gICAgeCA9ICh1X2ludDY0X3QpYnBiLmJw
 YkJpZ0ZBVHNlY3MgKiBicGIuYnBiQnl0ZXNQZXJTZWMgKiBOUEIgLyAoZmF0
 IC8gQlBOKSAtIFJFU0ZURTsKKyAgICB4ID0gKHVfaW50NjRfdClicGIuYnBi
 QmlnRkFUc2VjcyAqIGJwYi5icGJCeXRlc1BlclNlYyAqIE5QQiAvIChmYXQg
 LyBCUE4pIC0KKwlSRVNGVEU7CiAgICAgaWYgKGNscyA+IHgpCiAJY2xzID0g
 eDsKICAgICBpZiAoYnBiLmJwYkJpZ0ZBVHNlY3MgPCB4MikKQEAgLTYwOCw3
 ICs2MTgsOCBAQAogCXRtID0gbG9jYWx0aW1lKCZub3cpOwogCWlmICghKGlt
 ZyA9IG1hbGxvYyhicGIuYnBiQnl0ZXNQZXJTZWMpKSkKIAkgICAgZXJyKDEs
 IE5VTEwpOwotCWRpciA9IGJwYi5icGJSZXNTZWN0b3JzICsgKGJwYi5icGJG
 QVRzZWNzID8gYnBiLmJwYkZBVHNlY3MgOiBicGIuYnBiQmlnRkFUc2Vjcykg
 KiBicGIuYnBiRkFUczsKKwlkaXIgPSBicGIuYnBiUmVzU2VjdG9ycyArIChi
 cGIuYnBiRkFUc2VjcyA/IGJwYi5icGJGQVRzZWNzIDoKKwkJCQkgICBicGIu
 YnBiQmlnRkFUc2VjcykgKiBicGIuYnBiRkFUczsKIAltZW1zZXQoJnNpX3Nh
 LCAwLCBzaXplb2Yoc2lfc2EpKTsKIAlzaV9zYS5zYV9oYW5kbGVyID0gaW5m
 b2hhbmRsZXI7CiAJaWYgKHNpZ2FjdGlvbihTSUdJTkZPLCAmc2lfc2EsIE5V
 TEwpID09IC0xKQpAQCAtNjM4LDcgKzY0OSw4IEBACiAJICAgIH0gZWxzZQog
 CQltZW1zZXQoaW1nLCAwLCBicGIuYnBiQnl0ZXNQZXJTZWMpOwogCSAgICBp
 ZiAoIWxzbiB8fAotCSAgICAgIChmYXQgPT0gMzIgJiYgYnBiLmJwYkJhY2t1
 cCAhPSBNQVhVMTYgJiYgbHNuID09IGJwYi5icGJCYWNrdXApKSB7CisJCShm
 YXQgPT0gMzIgJiYgYnBiLmJwYkJhY2t1cCAhPSBNQVhVMTYgJiYKKwkJIGxz
 biA9PSBicGIuYnBiQmFja3VwKSkgewogCQl4MSA9IHNpemVvZihzdHJ1Y3Qg
 YnMpOwogCQlic2JwYiA9IChzdHJ1Y3QgYnNicGIgKikoaW1nICsgeDEpOwog
 CQltazIoYnNicGItPmJwYkJ5dGVzUGVyU2VjLCBicGIuYnBiQnl0ZXNQZXJT
 ZWMpOwpAQCAtNzAyLDcgKzcxNCw4IEBACiAJCW1rMihpbWcgKyBNSU5CUFMg
 LSAyLCBET1NNQUdJQyk7CiAJICAgIH0gZWxzZSBpZiAobHNuID49IGJwYi5i
 cGJSZXNTZWN0b3JzICYmIGxzbiA8IGRpciAmJgogCQkgICAgICAgISgobHNu
 IC0gYnBiLmJwYlJlc1NlY3RvcnMpICUKLQkJCSAoYnBiLmJwYkZBVHNlY3Mg
 PyBicGIuYnBiRkFUc2VjcyA6IGJwYi5icGJCaWdGQVRzZWNzKSkpIHsKKwkJ
 CSAoYnBiLmJwYkZBVHNlY3MgPyBicGIuYnBiRkFUc2VjcyA6CisJCQkgIGJw
 Yi5icGJCaWdGQVRzZWNzKSkpIHsKIAkJbWsxKGltZ1swXSwgYnBiLmJwYk1l
 ZGlhKTsKIAkJZm9yICh4ID0gMTsgeCA8IGZhdCAqIChmYXQgPT0gMzIgPyAz
 IDogMikgLyA4OyB4KyspCiAJCSAgICBtazEoaW1nW3hdLCBmYXQgPT0gMzIg
 JiYgeCAlIDQgPT0gMyA/IDB4MGYgOiAweGZmKTsKQEAgLTgxNywxNiArODMw
 LDE5IEBACiAJaWYgKGJwYi0+YnBiQnl0ZXNQZXJTZWMpCiAJICAgIGRscC5k
 X3NlY3NpemUgPSBicGItPmJwYkJ5dGVzUGVyU2VjOwogCWlmIChpb2N0bChm
 ZCwgRElPQ0dESU5GTywgJmRscCkgPT0gLTEpIHsKLQkgICAgaWYgKGJwYi0+
 YnBiQnl0ZXNQZXJTZWMgPT0gMCAmJiBpb2N0bChmZCwgRElPQ0dTRUNUT1JT
 SVpFLCAmZGxwLmRfc2Vjc2l6ZSkgPT0gLTEpCisJICAgIGlmIChicGItPmJw
 YkJ5dGVzUGVyU2VjID09IDAgJiYgaW9jdGwoZmQsIERJT0NHU0VDVE9SU0la
 RSwKKwkJCQkJCSAgJmRscC5kX3NlY3NpemUpID09IC0xKQogCQllcnJ4KDEs
 ICJDYW5ub3QgZ2V0IHNlY3RvciBzaXplLCAlcyIsIHN0cmVycm9yKGVycm5v
 KSk7CiAKIAkgICAgZGxwLmRfc2VjcGVydW5pdCA9IG1zIC8gZGxwLmRfc2Vj
 c2l6ZTsKIAotCSAgICBpZiAoYnBiLT5icGJTZWNQZXJUcmFjayA9PSAwICYm
 IGlvY3RsKGZkLCBESU9DR0ZXU0VDVE9SUywgJmRscC5kX25zZWN0b3JzKSA9
 PSAtMSkgeworCSAgICBpZiAoYnBiLT5icGJTZWNQZXJUcmFjayA9PSAwICYm
 IGlvY3RsKGZkLCBESU9DR0ZXU0VDVE9SUywKKwkJCQkJCSAgJmRscC5kX25z
 ZWN0b3JzKSA9PSAtMSkgewogCQl3YXJueCgiQ2Fubm90IGdldCBudW1iZXIg
 b2Ygc2VjdG9ycyBwZXIgdHJhY2ssICVzIiwgc3RyZXJyb3IoZXJybm8pKTsK
 IAkJZGxwLmRfbnNlY3RvcnMgPSA2MzsKIAkgICAgfQotCSAgICBpZiAoYnBi
 LT5icGJIZWFkcyA9PSAwICYmIGlvY3RsKGZkLCBESU9DR0ZXSEVBRFMsICZk
 bHAuZF9udHJhY2tzKSA9PSAtMSkgeworCSAgICBpZiAoYnBiLT5icGJIZWFk
 cyA9PSAwICYmCisJICAgICAgICBpb2N0bChmZCwgRElPQ0dGV0hFQURTLCAm
 ZGxwLmRfbnRyYWNrcykgPT0gLTEpIHsKIAkJd2FybngoIkNhbm5vdCBnZXQg
 bnVtYmVyIG9mIGhlYWRzLCAlcyIsIHN0cmVycm9yKGVycm5vKSk7CiAJCWlm
 IChkbHAuZF9zZWNwZXJ1bml0IDw9IDYzKjEqMTAyNCkKIAkJICAgIGRscC5k
 X250cmFja3MgPSAxOwpAQCAtODU5LDcgKzg3NSw4IEBACiBzdGF0aWMgdm9p
 ZAogcHJpbnRfYnBiKHN0cnVjdCBicGIgKmJwYikKIHsKLSAgICBwcmludGYo
 IkJ5dGVzUGVyU2VjPSV1IFNlY1BlckNsdXN0PSV1IFJlc1NlY3RvcnM9JXUg
 RkFUcz0ldSIsIGJwYi0+YnBiQnl0ZXNQZXJTZWMsIGJwYi0+YnBiU2VjUGVy
 Q2x1c3QsIGJwYi0+YnBiUmVzU2VjdG9ycywKKyAgICBwcmludGYoIkJ5dGVz
 UGVyU2VjPSV1IFNlY1BlckNsdXN0PSV1IFJlc1NlY3RvcnM9JXUgRkFUcz0l
 dSIsCisJICAgYnBiLT5icGJCeXRlc1BlclNlYywgYnBiLT5icGJTZWNQZXJD
 bHVzdCwgYnBiLT5icGJSZXNTZWN0b3JzLAogCSAgIGJwYi0+YnBiRkFUcyk7
 CiAgICAgaWYgKGJwYi0+YnBiUm9vdERpckVudHMpCiAJcHJpbnRmKCIgUm9v
 dERpckVudHM9JXUiLCBicGItPmJwYlJvb3REaXJFbnRzKTsKQEAgLTg2OCwx
 MSArODg1LDEzIEBACiAgICAgcHJpbnRmKCIgTWVkaWE9JSN4IiwgYnBiLT5i
 cGJNZWRpYSk7CiAgICAgaWYgKGJwYi0+YnBiRkFUc2VjcykKIAlwcmludGYo
 IiBGQVRzZWNzPSV1IiwgYnBiLT5icGJGQVRzZWNzKTsKLSAgICBwcmludGYo
 IiBTZWNQZXJUcmFjaz0ldSBIZWFkcz0ldSBIaWRkZW5TZWNzPSV1IiwgYnBi
 LT5icGJTZWNQZXJUcmFjaywgYnBiLT5icGJIZWFkcywgYnBiLT5icGJIaWRk
 ZW5TZWNzKTsKKyAgICBwcmludGYoIiBTZWNQZXJUcmFjaz0ldSBIZWFkcz0l
 dSBIaWRkZW5TZWNzPSV1IiwgYnBiLT5icGJTZWNQZXJUcmFjaywKKwkgICBi
 cGItPmJwYkhlYWRzLCBicGItPmJwYkhpZGRlblNlY3MpOwogICAgIGlmIChi
 cGItPmJwYkh1Z2VTZWN0b3JzKQogCXByaW50ZigiIEh1Z2VTZWN0b3JzPSV1
 IiwgYnBiLT5icGJIdWdlU2VjdG9ycyk7CiAgICAgaWYgKCFicGItPmJwYkZB
 VHNlY3MpIHsKLQlwcmludGYoIiBGQVRzZWNzPSV1IFJvb3RDbHVzdGVyPSV1
 IiwgYnBiLT5icGJCaWdGQVRzZWNzLCBicGItPmJwYlJvb3RDbHVzdCk7CisJ
 cHJpbnRmKCIgRkFUc2Vjcz0ldSBSb290Q2x1c3Rlcj0ldSIsIGJwYi0+YnBi
 QmlnRkFUc2VjcywKKwkgICAgICAgYnBiLT5icGJSb290Q2x1c3QpOwogCXBy
 aW50ZigiIEZTSW5mbz0iKTsKIAlwcmludGYoYnBiLT5icGJGU0luZm8gPT0g
 TUFYVTE2ID8gIiUjeCIgOiAiJXUiLCBicGItPmJwYkZTSW5mbyk7CiAJcHJp
 bnRmKCIgQmFja3VwPSIpOwpAQCAtOTI5LDMwICs5NDgsMzAgQEAKIAkgICAg
 ZXJyeCgxLCAiJXM6IGJhZCAlcyIsIGFyZywgbXNnKTsKIAkgICAgLyogbm90
 cmVhY2hlZCAqLwogCQotCWNhc2UgJ3MnOgkvKiBzZWN0b3IgKi8KKwljYXNl
 ICdzJzoJCS8qIHNlY3RvciAqLwogCWNhc2UgJ1MnOgotCSAgICB4IDw8PSA5
 OwkvKiB0aW1lcyA1MTIgKi8KKwkgICAgeCA8PD0gOTsJCS8qIHRpbWVzIDUx
 MiAqLwogCSAgICBicmVhazsKIAotCWNhc2UgJ2snOgkvKiBraWxvYnl0ZSAq
 LworCWNhc2UgJ2snOgkJLyoga2lsb2J5dGUgKi8KIAljYXNlICdLJzoKLQkg
 ICAgeCA8PD0gMTA7CS8qIHRpbWVzIDEwMjQgKi8KKwkgICAgeCA8PD0gMTA7
 CQkvKiB0aW1lcyAxMDI0ICovCiAJICAgIGJyZWFrOwogCi0JY2FzZSAnbSc6
 CS8qIG1lZ2FieXRlICovCisJY2FzZSAnbSc6CQkvKiBtZWdhYnl0ZSAqLwog
 CWNhc2UgJ00nOgotCSAgICB4IDw8PSAyMDsJLyogdGltZXMgMTAyNCoxMDI0
 ICovCisJICAgIHggPDw9IDIwOwkJLyogdGltZXMgMTAyNCoxMDI0ICovCiAJ
 ICAgIGJyZWFrOwogCi0JY2FzZSAnZyc6CS8qIGdpZ2FieXRlICovCisJY2Fz
 ZSAnZyc6CQkvKiBnaWdhYnl0ZSAqLwogCWNhc2UgJ0cnOgotCSAgICB4IDw8
 PSAzMDsJLyogdGltZXMgMTAyNCoxMDI0KjEwMjQgKi8KKwkgICAgeCA8PD0g
 MzA7CQkvKiB0aW1lcyAxMDI0KjEwMjQqMTAyNCAqLwogCSAgICBicmVhazsK
 IAotCWNhc2UgJ3AnOgkvKiBwYXJ0aXRpb24gc3RhcnQgKi8KLQljYXNlICdQ
 JzoJLyogcGFydGl0aW9uIHN0YXJ0ICovCi0JY2FzZSAnbCc6CS8qIHBhcnRp
 dGlvbiBsZW5ndGggKi8KLQljYXNlICdMJzoJLyogcGFydGl0aW9uIGxlbmd0
 aCAqLworCWNhc2UgJ3AnOgkJLyogcGFydGl0aW9uIHN0YXJ0ICovCisJY2Fz
 ZSAnUCc6CisJY2FzZSAnbCc6CQkvKiBwYXJ0aXRpb24gbGVuZ3RoICovCisJ
 Y2FzZSAnTCc6CiAJICAgIGVycngoMSwgIiVzOiBub3Qgc3VwcG9ydGVkIHll
 dCAlcyIsIGFyZywgbXNnKTsKIAkgICAgLyogbm90cmVhY2hlZCAqLwogCX0K
 SW5kZXg6IG5ld2ZzX21zZG9zL25ld2ZzX21zZG9zLjgKPT09PT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PQotLS0gbmV3ZnNfbXNkb3MvbmV3ZnNfbXNkb3MuOAkocmV2
 aXNpb24gMjI4NjAyKQorKysgbmV3ZnNfbXNkb3MvbmV3ZnNfbXNkb3MuOAko
 d29ya2luZyBjb3B5KQpAQCAtMTgwLDI3ICsxODAsMjcgQEAKIGJlbG93Lgog
 LkJkIC1saXRlcmFsCiBzdHJ1Y3QgYnNicGIgewotICAgIHVfaW50MTZfdAli
 cHM7CQkvKiBbLVNdIGJ5dGVzIHBlciBzZWN0b3IgKi8KLSAgICB1X2ludDhf
 dAlzcGM7CQkvKiBbLWNdIHNlY3RvcnMgcGVyIGNsdXN0ZXIgKi8KLSAgICB1
 X2ludDE2X3QJcmVzOwkJLyogWy1yXSByZXNlcnZlZCBzZWN0b3JzICovCi0g
 ICAgdV9pbnQ4X3QJbmZ0OwkJLyogWy1uXSBudW1iZXIgb2YgRkFUcyAqLwot
 ICAgIHVfaW50MTZfdAlyZGU7CQkvKiBbLWVdIHJvb3QgZGlyZWN0b3J5IGVu
 dHJpZXMgKi8KLSAgICB1X2ludDE2X3QJc2VjOwkJLyogWy1zXSB0b3RhbCBz
 ZWN0b3JzICovCi0gICAgdV9pbnQ4X3QJbWlkOwkJLyogWy1tXSBtZWRpYSBk
 ZXNjcmlwdG9yICovCi0gICAgdV9pbnQxNl90CXNwZjsJCS8qIFstYV0gc2Vj
 dG9ycyBwZXIgRkFUICovCi0gICAgdV9pbnQxNl90CXNwdDsJCS8qIFstdV0g
 c2VjdG9ycyBwZXIgdHJhY2sgKi8KLSAgICB1X2ludDE2X3QJaGRzOwkJLyog
 Wy1oXSBkcml2ZSBoZWFkcyAqLwotICAgIHVfaW50MzJfdAloaWQ7CQkvKiBb
 LW9dIGhpZGRlbiBzZWN0b3JzICovCi0gICAgdV9pbnQzMl90CWJzZWM7CQkv
 KiBbLXNdIGJpZyB0b3RhbCBzZWN0b3JzICovCisgICAgdV9pbnQxNl90CWJw
 YkJ5dGVzUGVyU2VjOwkJLyogWy1TXSBieXRlcyBwZXIgc2VjdG9yICovCisg
 ICAgdV9pbnQ4X3QJYnBiU2VjUGVyQ2x1c3Q7CQkvKiBbLWNdIHNlY3RvcnMg
 cGVyIGNsdXN0ZXIgKi8KKyAgICB1X2ludDE2X3QJYnBiUmVzU2VjdG9yczsJ
 CS8qIFstcl0gcmVzZXJ2ZWQgc2VjdG9ycyAqLworICAgIHVfaW50OF90CWJw
 YkZBVHM7CQkvKiBbLW5dIG51bWJlciBvZiBGQVRzICovCisgICAgdV9pbnQx
 Nl90CWJwYlJvb3REaXJFbnRzOwkJLyogWy1lXSByb290IGRpcmVjdG9yeSBl
 bnRyaWVzICovCisgICAgdV9pbnQxNl90CWJwYlNlY3RvcnM7CQkvKiBbLXNd
 IHRvdGFsIHNlY3RvcnMgKi8KKyAgICB1X2ludDhfdAlicGJNZWRpYTsJCS8q
 IFstbV0gbWVkaWEgZGVzY3JpcHRvciAqLworICAgIHVfaW50MTZfdAlicGJG
 QVRzZWNzOwkJLyogWy1hXSBzZWN0b3JzIHBlciBGQVQgKi8KKyAgICB1X2lu
 dDE2X3QJYnBiU2VjUGVyVHJhY2s7CQkvKiBbLXVdIHNlY3RvcnMgcGVyIHRy
 YWNrICovCisgICAgdV9pbnQxNl90CWJwYkhlYWRzOwkJLyogWy1oXSBkcml2
 ZSBoZWFkcyAqLworICAgIHVfaW50MzJfdAlicGJIaWRkZW5TZWNzOwkJLyog
 Wy1vXSBoaWRkZW4gc2VjdG9ycyAqLworICAgIHVfaW50MzJfdAlicGJIdWdl
 U2VjdG9yczsJCS8qIFstc10gYmlnIHRvdGFsIHNlY3RvcnMgKi8KIH07CiAv
 KiBGQVQzMiBleHRlbnNpb25zICovCiBzdHJ1Y3QgYnN4YnBiIHsKLSAgICB1
 X2ludDMyX3QJYnNwZjsJCS8qIFstYV0gYmlnIHNlY3RvcnMgcGVyIEZBVCAq
 LwotICAgIHVfaW50MTZfdAl4ZmxnOwkJLyogY29udHJvbCBmbGFncyAqLwot
 ICAgIHVfaW50MTZfdAl2ZXJzOwkJLyogZmlsZSBzeXN0ZW0gdmVyc2lvbiAq
 LwotICAgIHVfaW50MzJfdAlyZGNsOwkJLyogcm9vdCBkaXJlY3Rvcnkgc3Rh
 cnQgY2x1c3RlciAqLwotICAgIHVfaW50MTZfdAlpbmZzOwkJLyogWy1pXSBm
 aWxlIHN5c3RlbSBpbmZvIHNlY3RvciAqLwotICAgIHVfaW50MTZfdAlia2Jz
 OwkJLyogWy1rXSBiYWNrdXAgYm9vdCBzZWN0b3IgKi8KKyAgICB1X2ludDMy
 X3QJYnBiQmlnRkFUc2VjczsJCS8qIFstYV0gYmlnIHNlY3RvcnMgcGVyIEZB
 VCAqLworICAgIHVfaW50MTZfdAlicGJFeHRGbGFnczsJCS8qIGNvbnRyb2wg
 ZmxhZ3MgKi8KKyAgICB1X2ludDE2X3QJYnBiRlNWZXJzOwkJLyogZmlsZSBz
 eXN0ZW0gdmVyc2lvbiAqLworICAgIHVfaW50MzJfdAlicGJSb290Q2x1c3Q7
 CQkvKiByb290IGRpcmVjdG9yeSBzdGFydCBjbHVzdGVyICovCisgICAgdV9p
 bnQxNl90CWJwYkZTSW5mbzsJCS8qIFstaV0gZmlsZSBzeXN0ZW0gaW5mbyBz
 ZWN0b3IgKi8KKyAgICB1X2ludDE2X3QJYnBiQmFja3VwOwkJLyogWy1rXSBi
 YWNrdXAgYm9vdCBzZWN0b3IgKi8KIH07CiAuRWQKIC5TaCBMSU1JVEFUSU9O
 Cg==
 
 --445808829-977606157-1324080593=:42803--
State-Changed-From-To: suspended->patched 
State-Changed-By: pfg 
State-Changed-When: Tue Dec 20 15:55:32 UTC 2011 
State-Changed-Why:  
Updated patch committed in head. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=151850 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/151850: commit references a PR
Date: Tue, 20 Dec 2011 15:51:10 +0000 (UTC)

 Author: pfg
 Date: Tue Dec 20 15:50:54 2011
 New Revision: 228740
 URL: http://svn.freebsd.org/changeset/base/228740
 
 Log:
   Many style fixes.
   Remove C99 initializers: they don't help in this case.
   Set errno to 0 before strtoll() (from NetBSD).
   
   PR:		151850
   Suggested by:	bde
   Approved by:	jhb (Mentor)
   MFC after:	2 weeks
 
 Modified:
   head/sbin/newfs_msdos/newfs_msdos.8
   head/sbin/newfs_msdos/newfs_msdos.c
 
 Modified: head/sbin/newfs_msdos/newfs_msdos.8
 ==============================================================================
 --- head/sbin/newfs_msdos/newfs_msdos.8	Tue Dec 20 15:19:33 2011	(r228739)
 +++ head/sbin/newfs_msdos/newfs_msdos.8	Tue Dec 20 15:50:54 2011	(r228740)
 @@ -180,27 +180,27 @@ For reference purposes, this structure i
  below.
  .Bd -literal
  struct bsbpb {
 -    u_int16_t	bps;		/* [-S] bytes per sector */
 -    u_int8_t	spc;		/* [-c] sectors per cluster */
 -    u_int16_t	res;		/* [-r] reserved sectors */
 -    u_int8_t	nft;		/* [-n] number of FATs */
 -    u_int16_t	rde;		/* [-e] root directory entries */
 -    u_int16_t	sec;		/* [-s] total sectors */
 -    u_int8_t	mid;		/* [-m] media descriptor */
 -    u_int16_t	spf;		/* [-a] sectors per FAT */
 -    u_int16_t	spt;		/* [-u] sectors per track */
 -    u_int16_t	hds;		/* [-h] drive heads */
 -    u_int32_t	hid;		/* [-o] hidden sectors */
 -    u_int32_t	bsec;		/* [-s] big total sectors */
 +    u_int16_t	bpbBytesPerSec;		/* [-S] bytes per sector */
 +    u_int8_t	bpbSecPerClust;		/* [-c] sectors per cluster */
 +    u_int16_t	bpbResSectors;		/* [-r] reserved sectors */
 +    u_int8_t	bpbFATs;		/* [-n] number of FATs */
 +    u_int16_t	bpbRootDirEnts;		/* [-e] root directory entries */
 +    u_int16_t	bpbSectors;		/* [-s] total sectors */
 +    u_int8_t	bpbMedia;		/* [-m] media descriptor */
 +    u_int16_t	bpbFATsecs;		/* [-a] sectors per FAT */
 +    u_int16_t	bpbSecPerTrack;		/* [-u] sectors per track */
 +    u_int16_t	bpbHeads;		/* [-h] drive heads */
 +    u_int32_t	bpbHiddenSecs;		/* [-o] hidden sectors */
 +    u_int32_t	bpbHugeSectors;		/* [-s] big total sectors */
  };
  /* FAT32 extensions */
  struct bsxbpb {
 -    u_int32_t	bspf;		/* [-a] big sectors per FAT */
 -    u_int16_t	xflg;		/* control flags */
 -    u_int16_t	vers;		/* file system version */
 -    u_int32_t	rdcl;		/* root directory start cluster */
 -    u_int16_t	infs;		/* [-i] file system info sector */
 -    u_int16_t	bkbs;		/* [-k] backup boot sector */
 +    u_int32_t	bpbBigFATsecs;		/* [-a] big sectors per FAT */
 +    u_int16_t	bpbExtFlags;		/* control flags */
 +    u_int16_t	bpbFSVers;		/* file system version */
 +    u_int32_t	bpbRootClust;		/* root directory start cluster */
 +    u_int16_t	bpbFSInfo;		/* [-i] file system info sector */
 +    u_int16_t	bpbBackup;		/* [-k] backup boot sector */
  };
  .Ed
  .Sh LIMITATION
 
 Modified: head/sbin/newfs_msdos/newfs_msdos.c
 ==============================================================================
 --- head/sbin/newfs_msdos/newfs_msdos.c	Tue Dec 20 15:19:33 2011	(r228739)
 +++ head/sbin/newfs_msdos/newfs_msdos.c	Tue Dec 20 15:50:54 2011	(r228740)
 @@ -66,7 +66,7 @@ static const char rcsid[] =
  #define MINCLS12  1U		/* minimum FAT12 clusters */
  #define MINCLS16  0x1000U	/* minimum FAT16 clusters */
  #define MINCLS32  2U		/* minimum FAT32 clusters */
 -#define MAXCLS12  0xfedU 	/* maximum FAT12 clusters */
 +#define MAXCLS12  0xfedU	/* maximum FAT12 clusters */
  #define MAXCLS16  0xfff5U	/* maximum FAT16 clusters */
  #define MAXCLS32  0xffffff5U	/* maximum FAT32 clusters */
  
 @@ -97,7 +97,7 @@ static const char rcsid[] =
  #define argtox(arg, lo, msg)  argtou(arg, lo, UINT_MAX, msg)
  
  struct bs {
 -    u_int8_t bsJump[3];		/* bootstrap entry point */
 +    u_int8_t bsJump[3];			/* bootstrap entry point */
      u_int8_t bsOemName[8];		/* OEM name and version */
  } __packed;
  
 @@ -123,7 +123,7 @@ struct bsxbpb {
      u_int8_t bpbRootClust[4];		/* root directory start cluster */
      u_int8_t bpbFSInfo[2];		/* file system info sector */
      u_int8_t bpbBackup[2];		/* backup boot sector */
 -    u_int8_t bpbReserved[12];			/* reserved */
 +    u_int8_t bpbReserved[12];		/* reserved */
  } __packed;
  
  struct bsx {
 @@ -136,13 +136,13 @@ struct bsx {
  } __packed;
  
  struct de {
 -    u_int8_t deName[11];	/* name and extension */
 -    u_int8_t deAttributes;	/* attributes */
 -    u_int8_t rsvd[10];		/* reserved */
 -    u_int8_t deMTime[2];	/* creation time */
 -    u_int8_t deMDate[2];	/* creation date */
 -    u_int8_t deStartCluster[2];	/* starting cluster */
 -    u_int8_t deFileSize[4];	/* size */
 +    u_int8_t deName[11];		/* name and extension */
 +    u_int8_t deAttributes;		/* attributes */
 +    u_int8_t rsvd[10];			/* reserved */
 +    u_int8_t deMTime[2];		/* creation time */
 +    u_int8_t deMDate[2];		/* creation date */
 +    u_int8_t deStartCluster[2];		/* starting cluster */
 +    u_int8_t deFileSize[4];		/* size */
  } __packed;
  
  struct bpb {
 @@ -160,29 +160,26 @@ struct bpb {
      u_int bpbHugeSectors; 		/* big total sectors */
      u_int bpbBigFATsecs; 		/* big sectors per FAT */
      u_int bpbRootClust; 		/* root directory start cluster */
 -    u_int bpbFSInfo; 		/* file system info sector */
 -    u_int bpbBackup; 		/* backup boot sector */
 +    u_int bpbFSInfo; 			/* file system info sector */
 +    u_int bpbBackup; 			/* backup boot sector */
  };
  
  #define BPBGAP 0, 0, 0, 0, 0, 0
  
 -#define INIT(a, b, c, d, e, f, g, h, i, j) \
 -    { .bpbBytesPerSec = a, .bpbSecPerClust = b, .bpbResSectors = c, .bpbFATs = d, .bpbRootDirEnts = e, \
 -      .bpbSectors = f, .bpbMedia = g, .bpbFATsecs = h, .bpbSecPerTrack = i, .bpbHeads = j, }
  static struct {
      const char *name;
      struct bpb bpb;
  } const stdfmt[] = {
 -    {"160",  INIT(512, 1, 1, 2,  64,  320, 0xfe, 1,  8, 1)},
 -    {"180",  INIT(512, 1, 1, 2,  64,  360, 0xfc, 2,  9, 1)},
 -    {"320",  INIT(512, 2, 1, 2, 112,  640, 0xff, 1,  8, 2)},
 -    {"360",  INIT(512, 2, 1, 2, 112,  720, 0xfd, 2,  9, 2)},
 -    {"640",  INIT(512, 2, 1, 2, 112, 1280, 0xfb, 2,  8, 2)},    
 -    {"720",  INIT(512, 2, 1, 2, 112, 1440, 0xf9, 3,  9, 2)},
 -    {"1200", INIT(512, 1, 1, 2, 224, 2400, 0xf9, 7, 15, 2)},
 -    {"1232", INIT(1024,1, 1, 2, 192, 1232, 0xfe, 2,  8, 2)},    
 -    {"1440", INIT(512, 1, 1, 2, 224, 2880, 0xf0, 9, 18, 2)},
 -    {"2880", INIT(512, 2, 1, 2, 240, 5760, 0xf0, 9, 36, 2)}
 +    {"160",  {512, 1, 1, 2,  64,  320, 0xfe, 1,  8, 1, BPBGAP}},
 +    {"180",  {512, 1, 1, 2,  64,  360, 0xfc, 2,  9, 1, BPBGAP}},
 +    {"320",  {512, 2, 1, 2, 112,  640, 0xff, 1,  8, 2, BPBGAP}},
 +    {"360",  {512, 2, 1, 2, 112,  720, 0xfd, 2,  9, 2, BPBGAP}},
 +    {"640",  {512, 2, 1, 2, 112, 1280, 0xfb, 2,  8, 2, BPBGAP}},    
 +    {"720",  {512, 2, 1, 2, 112, 1440, 0xf9, 3,  9, 2, BPBGAP}},
 +    {"1200", {512, 1, 1, 2, 224, 2400, 0xf9, 7, 15, 2, BPBGAP}},
 +    {"1232", {1024,1, 1, 2, 192, 1232, 0xfe, 2,  8, 2, BPBGAP}},    
 +    {"1440", {512, 1, 1, 2, 224, 2880, 0xf0, 9, 18, 2, BPBGAP}},
 +    {"2880", {512, 2, 1, 2, 240, 5760, 0xf0, 9, 36, 2, BPBGAP}}
  };
  
  static const u_int8_t bootcode[] = {
 @@ -494,7 +491,8 @@ main(int argc, char *argv[])
  	if ((fd1 = open(bname, O_RDONLY)) == -1 || fstat(fd1, &sb))
  	    err(1, "%s", bname);
  	if (!S_ISREG(sb.st_mode) || sb.st_size % bpb.bpbBytesPerSec ||
 -	    sb.st_size < bpb.bpbBytesPerSec || sb.st_size > bpb.bpbBytesPerSec * MAXU16)
 +	    sb.st_size < bpb.bpbBytesPerSec ||
 +	    sb.st_size > bpb.bpbBytesPerSec * MAXU16)
  	    errx(1, "%s: inappropriate file type or format", bname);
  	bss = sb.st_size / bpb.bpbBytesPerSec;
      }
 @@ -503,19 +501,23 @@ main(int argc, char *argv[])
      if (!fat) {
  	if (bpb.bpbHugeSectors < (bpb.bpbResSectors ? bpb.bpbResSectors : bss) +
  	    howmany((RESFTE + (bpb.bpbSecPerClust ? MINCLS16 : MAXCLS12 + 1)) *
 -		    ((bpb.bpbSecPerClust ? 16 : 12) / BPN), bpb.bpbBytesPerSec * NPB) *
 +		(bpb.bpbSecPerClust ? 16 : 12) / BPN,
 +		bpb.bpbBytesPerSec * NPB) *
  	    bpb.bpbFATs +
  	    howmany(bpb.bpbRootDirEnts ? bpb.bpbRootDirEnts : DEFRDE,
  		    bpb.bpbBytesPerSec / sizeof(struct de)) +
  	    (bpb.bpbSecPerClust ? MINCLS16 : MAXCLS12 + 1) *
 -	    (bpb.bpbSecPerClust ? bpb.bpbSecPerClust : howmany(DEFBLK, bpb.bpbBytesPerSec)))
 +	    (bpb.bpbSecPerClust ? bpb.bpbSecPerClust :
 +	     howmany(DEFBLK, bpb.bpbBytesPerSec)))
  	    fat = 12;
  	else if (bpb.bpbRootDirEnts || bpb.bpbHugeSectors <
  		 (bpb.bpbResSectors ? bpb.bpbResSectors : bss) +
 -		 howmany((RESFTE + MAXCLS16) * 2, bpb.bpbBytesPerSec) * bpb.bpbFATs +
 +		 howmany((RESFTE + MAXCLS16) * 2, bpb.bpbBytesPerSec) *
 +		 bpb.bpbFATs +
  		 howmany(DEFRDE, bpb.bpbBytesPerSec / sizeof(struct de)) +
  		 (MAXCLS16 + 1) *
 -		 (bpb.bpbSecPerClust ? bpb.bpbSecPerClust : howmany(8192, bpb.bpbBytesPerSec)))
 +		 (bpb.bpbSecPerClust ? bpb.bpbSecPerClust :
 +		  howmany(8192, bpb.bpbBytesPerSec)))
  	    fat = 16;
  	else
  	    fat = 32;
 @@ -539,21 +541,27 @@ main(int argc, char *argv[])
  	    x = bpb.bpbBackup + 1;
      }
      if (!bpb.bpbResSectors)
 -	bpb.bpbResSectors = fat == 32 ? MAX(x, MAX(16384 / bpb.bpbBytesPerSec, 4)) : x;
 +	bpb.bpbResSectors = fat == 32 ? 
 +	    MAX(x, MAX(16384 / bpb.bpbBytesPerSec, 4)) : x;
      else if (bpb.bpbResSectors < x)
 -	errx(1, "too few reserved sectors (need %d have %d)", x, bpb.bpbResSectors);
 +	errx(1, "too few reserved sectors (need %d have %d)", x,
 +	     bpb.bpbResSectors);
      if (fat != 32 && !bpb.bpbRootDirEnts)
  	bpb.bpbRootDirEnts = DEFRDE;
      rds = howmany(bpb.bpbRootDirEnts, bpb.bpbBytesPerSec / sizeof(struct de));
      if (!bpb.bpbSecPerClust)
 -	for (bpb.bpbSecPerClust = howmany(fat == 16 ? DEFBLK16 : DEFBLK, bpb.bpbBytesPerSec);
 +	for (bpb.bpbSecPerClust = howmany(fat == 16 ? DEFBLK16 :
 +					  DEFBLK, bpb.bpbBytesPerSec);
  	     bpb.bpbSecPerClust < MAXSPC &&
  	     bpb.bpbResSectors +
  	     howmany((RESFTE + maxcls(fat)) * (fat / BPN),
 -		     bpb.bpbBytesPerSec * NPB) * bpb.bpbFATs +
 +		     bpb.bpbBytesPerSec * NPB) *
 +	     bpb.bpbFATs +
  	     rds +
 -	     (u_int64_t)(maxcls(fat) + 1) * bpb.bpbSecPerClust <= bpb.bpbHugeSectors;
 -	     bpb.bpbSecPerClust <<= 1);
 +	     (u_int64_t) (maxcls(fat) + 1) *
 +	     bpb.bpbSecPerClust <= bpb.bpbHugeSectors;
 +	     bpb.bpbSecPerClust <<= 1)
 +	    continue;
      if (fat != 32 && bpb.bpbBigFATsecs > MAXU16)
  	errx(1, "too many sectors/FAT for FAT12/16");
      x1 = bpb.bpbResSectors + rds;
 @@ -562,7 +570,8 @@ main(int argc, char *argv[])
  	errx(1, "meta data exceeds file system size");
      x1 += x * bpb.bpbFATs;
      x = (u_int64_t)(bpb.bpbHugeSectors - x1) * bpb.bpbBytesPerSec * NPB /
 -	(bpb.bpbSecPerClust * bpb.bpbBytesPerSec * NPB + fat / BPN * bpb.bpbFATs);
 +	(bpb.bpbSecPerClust * bpb.bpbBytesPerSec * NPB + fat /
 +	 BPN * bpb.bpbFATs);
      x2 = howmany((RESFTE + MIN(x, maxcls(fat))) * (fat / BPN),
  		 bpb.bpbBytesPerSec * NPB);
      if (!bpb.bpbBigFATsecs) {
 @@ -570,7 +579,8 @@ main(int argc, char *argv[])
  	x1 += (bpb.bpbBigFATsecs - 1) * bpb.bpbFATs;
      }
      cls = (bpb.bpbHugeSectors - x1) / bpb.bpbSecPerClust;
 -    x = (u_int64_t)bpb.bpbBigFATsecs * bpb.bpbBytesPerSec * NPB / (fat / BPN) - RESFTE;
 +    x = (u_int64_t)bpb.bpbBigFATsecs * bpb.bpbBytesPerSec * NPB / (fat / BPN) -
 +	RESFTE;
      if (cls > x)
  	cls = x;
      if (bpb.bpbBigFATsecs < x2)
 @@ -608,7 +618,8 @@ main(int argc, char *argv[])
  	tm = localtime(&now);
  	if (!(img = malloc(bpb.bpbBytesPerSec)))
  	    err(1, NULL);
 -	dir = bpb.bpbResSectors + (bpb.bpbFATsecs ? bpb.bpbFATsecs : bpb.bpbBigFATsecs) * bpb.bpbFATs;
 +	dir = bpb.bpbResSectors + (bpb.bpbFATsecs ? bpb.bpbFATsecs :
 +				   bpb.bpbBigFATsecs) * bpb.bpbFATs;
  	memset(&si_sa, 0, sizeof(si_sa));
  	si_sa.sa_handler = infohandler;
  	if (sigaction(SIGINFO, &si_sa, NULL) == -1)
 @@ -638,7 +649,8 @@ main(int argc, char *argv[])
  	    } else
  		memset(img, 0, bpb.bpbBytesPerSec);
  	    if (!lsn ||
 -	      (fat == 32 && bpb.bpbBackup != MAXU16 && lsn == bpb.bpbBackup)) {
 +		(fat == 32 && bpb.bpbBackup != MAXU16 &&
 +		 lsn == bpb.bpbBackup)) {
  		x1 = sizeof(struct bs);
  		bsbpb = (struct bsbpb *)(img + x1);
  		mk2(bsbpb->bpbBytesPerSec, bpb.bpbBytesPerSec);
 @@ -702,7 +714,8 @@ main(int argc, char *argv[])
  		mk2(img + MINBPS - 2, DOSMAGIC);
  	    } else if (lsn >= bpb.bpbResSectors && lsn < dir &&
  		       !((lsn - bpb.bpbResSectors) %
 -			 (bpb.bpbFATsecs ? bpb.bpbFATsecs : bpb.bpbBigFATsecs))) {
 +			 (bpb.bpbFATsecs ? bpb.bpbFATsecs :
 +			  bpb.bpbBigFATsecs))) {
  		mk1(img[0], bpb.bpbMedia);
  		for (x = 1; x < fat * (fat == 32 ? 3 : 2) / 8; x++)
  		    mk1(img[x], fat == 32 && x % 4 == 3 ? 0x0f : 0xff);
 @@ -817,16 +830,19 @@ getdiskinfo(int fd, const char *fname, c
  	if (bpb->bpbBytesPerSec)
  	    dlp.d_secsize = bpb->bpbBytesPerSec;
  	if (ioctl(fd, DIOCGDINFO, &dlp) == -1) {
 -	    if (bpb->bpbBytesPerSec == 0 && ioctl(fd, DIOCGSECTORSIZE, &dlp.d_secsize) == -1)
 +	    if (bpb->bpbBytesPerSec == 0 && ioctl(fd, DIOCGSECTORSIZE,
 +						  &dlp.d_secsize) == -1)
  		errx(1, "Cannot get sector size, %s", strerror(errno));
  
  	    dlp.d_secperunit = ms / dlp.d_secsize;
  
 -	    if (bpb->bpbSecPerTrack == 0 && ioctl(fd, DIOCGFWSECTORS, &dlp.d_nsectors) == -1) {
 +	    if (bpb->bpbSecPerTrack == 0 && ioctl(fd, DIOCGFWSECTORS,
 +						  &dlp.d_nsectors) == -1) {
  		warnx("Cannot get number of sectors per track, %s", strerror(errno));
  		dlp.d_nsectors = 63;
  	    }
 -	    if (bpb->bpbHeads == 0 && ioctl(fd, DIOCGFWHEADS, &dlp.d_ntracks) == -1) {
 +	    if (bpb->bpbHeads == 0 &&
 +	        ioctl(fd, DIOCGFWHEADS, &dlp.d_ntracks) == -1) {
  		warnx("Cannot get number of heads, %s", strerror(errno));
  		if (dlp.d_secperunit <= 63*1*1024)
  		    dlp.d_ntracks = 1;
 @@ -859,7 +875,8 @@ getdiskinfo(int fd, const char *fname, c
  static void
  print_bpb(struct bpb *bpb)
  {
 -    printf("BytesPerSec=%u SecPerClust=%u ResSectors=%u FATs=%u", bpb->bpbBytesPerSec, bpb->bpbSecPerClust, bpb->bpbResSectors,
 +    printf("BytesPerSec=%u SecPerClust=%u ResSectors=%u FATs=%u",
 +	   bpb->bpbBytesPerSec, bpb->bpbSecPerClust, bpb->bpbResSectors,
  	   bpb->bpbFATs);
      if (bpb->bpbRootDirEnts)
  	printf(" RootDirEnts=%u", bpb->bpbRootDirEnts);
 @@ -868,11 +885,13 @@ print_bpb(struct bpb *bpb)
      printf(" Media=%#x", bpb->bpbMedia);
      if (bpb->bpbFATsecs)
  	printf(" FATsecs=%u", bpb->bpbFATsecs);
 -    printf(" SecPerTrack=%u Heads=%u HiddenSecs=%u", bpb->bpbSecPerTrack, bpb->bpbHeads, bpb->bpbHiddenSecs);
 +    printf(" SecPerTrack=%u Heads=%u HiddenSecs=%u", bpb->bpbSecPerTrack,
 +	   bpb->bpbHeads, bpb->bpbHiddenSecs);
      if (bpb->bpbHugeSectors)
  	printf(" HugeSectors=%u", bpb->bpbHugeSectors);
      if (!bpb->bpbFATsecs) {
 -	printf(" FATsecs=%u RootCluster=%u", bpb->bpbBigFATsecs, bpb->bpbRootClust);
 +	printf(" FATsecs=%u RootCluster=%u", bpb->bpbBigFATsecs,
 +	       bpb->bpbRootClust);
  	printf(" FSInfo=");
  	printf(bpb->bpbFSInfo == MAXU16 ? "%#x" : "%u", bpb->bpbFSInfo);
  	printf(" Backup=");
 @@ -919,6 +938,7 @@ argtooff(const char *arg, const char *ms
      char *s;
      off_t x;
  
 +    errno = 0;
      x = strtoll(arg, &s, 0);
      /* allow at most one extra char */
      if (errno || x < 0 || (s[0] && s[1]) )
 @@ -929,30 +949,30 @@ argtooff(const char *arg, const char *ms
  	    errx(1, "%s: bad %s", arg, msg);
  	    /* notreached */
  	
 -	case 's':	/* sector */
 +	case 's':		/* sector */
  	case 'S':
 -	    x <<= 9;	/* times 512 */
 +	    x <<= 9;		/* times 512 */
  	    break;
  
 -	case 'k':	/* kilobyte */
 +	case 'k':		/* kilobyte */
  	case 'K':
 -	    x <<= 10;	/* times 1024 */
 +	    x <<= 10;		/* times 1024 */
  	    break;
  
 -	case 'm':	/* megabyte */
 +	case 'm':		/* megabyte */
  	case 'M':
 -	    x <<= 20;	/* times 1024*1024 */
 +	    x <<= 20;		/* times 1024*1024 */
  	    break;
  
 -	case 'g':	/* gigabyte */
 +	case 'g':		/* gigabyte */
  	case 'G':
 -	    x <<= 30;	/* times 1024*1024*1024 */
 +	    x <<= 30;		/* times 1024*1024*1024 */
  	    break;
  
 -	case 'p':	/* partition start */
 -	case 'P':	/* partition start */
 -	case 'l':	/* partition length */
 -	case 'L':	/* partition length */
 +	case 'p':		/* partition start */
 +	case 'P':
 +	case 'l':		/* partition length */
 +	case 'L':
  	    errx(1, "%s: not supported yet %s", arg, msg);
  	    /* notreached */
  	}
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/151850: commit references a PR
Date: Thu,  5 Jan 2012 01:40:54 +0000 (UTC)

 Author: pfg
 Date: Thu Jan  5 01:40:42 2012
 New Revision: 229550
 URL: http://svn.freebsd.org/changeset/base/229550
 
 Log:
   MFC:	r228740
   
   Many style fixes.
   Remove C99 initializers: they don't help in this case.
   Set errno to 0 before strtoll() (from NetBSD).
   
   PR:		151850
   Suggested by:	bde
   Approved by:	jhb (Mentor)
 
 Modified:
   stable/9/sbin/newfs_msdos/newfs_msdos.8
   stable/9/sbin/newfs_msdos/newfs_msdos.c
 Directory Properties:
   stable/9/sbin/newfs_msdos/   (props changed)
 
 Modified: stable/9/sbin/newfs_msdos/newfs_msdos.8
 ==============================================================================
 --- stable/9/sbin/newfs_msdos/newfs_msdos.8	Thu Jan  5 01:35:01 2012	(r229549)
 +++ stable/9/sbin/newfs_msdos/newfs_msdos.8	Thu Jan  5 01:40:42 2012	(r229550)
 @@ -180,27 +180,27 @@ For reference purposes, this structure i
  below.
  .Bd -literal
  struct bsbpb {
 -    u_int16_t	bps;		/* [-S] bytes per sector */
 -    u_int8_t	spc;		/* [-c] sectors per cluster */
 -    u_int16_t	res;		/* [-r] reserved sectors */
 -    u_int8_t	nft;		/* [-n] number of FATs */
 -    u_int16_t	rde;		/* [-e] root directory entries */
 -    u_int16_t	sec;		/* [-s] total sectors */
 -    u_int8_t	mid;		/* [-m] media descriptor */
 -    u_int16_t	spf;		/* [-a] sectors per FAT */
 -    u_int16_t	spt;		/* [-u] sectors per track */
 -    u_int16_t	hds;		/* [-h] drive heads */
 -    u_int32_t	hid;		/* [-o] hidden sectors */
 -    u_int32_t	bsec;		/* [-s] big total sectors */
 +    u_int16_t	bpbBytesPerSec;		/* [-S] bytes per sector */
 +    u_int8_t	bpbSecPerClust;		/* [-c] sectors per cluster */
 +    u_int16_t	bpbResSectors;		/* [-r] reserved sectors */
 +    u_int8_t	bpbFATs;		/* [-n] number of FATs */
 +    u_int16_t	bpbRootDirEnts;		/* [-e] root directory entries */
 +    u_int16_t	bpbSectors;		/* [-s] total sectors */
 +    u_int8_t	bpbMedia;		/* [-m] media descriptor */
 +    u_int16_t	bpbFATsecs;		/* [-a] sectors per FAT */
 +    u_int16_t	bpbSecPerTrack;		/* [-u] sectors per track */
 +    u_int16_t	bpbHeads;		/* [-h] drive heads */
 +    u_int32_t	bpbHiddenSecs;		/* [-o] hidden sectors */
 +    u_int32_t	bpbHugeSectors;		/* [-s] big total sectors */
  };
  /* FAT32 extensions */
  struct bsxbpb {
 -    u_int32_t	bspf;		/* [-a] big sectors per FAT */
 -    u_int16_t	xflg;		/* control flags */
 -    u_int16_t	vers;		/* file system version */
 -    u_int32_t	rdcl;		/* root directory start cluster */
 -    u_int16_t	infs;		/* [-i] file system info sector */
 -    u_int16_t	bkbs;		/* [-k] backup boot sector */
 +    u_int32_t	bpbBigFATsecs;		/* [-a] big sectors per FAT */
 +    u_int16_t	bpbExtFlags;		/* control flags */
 +    u_int16_t	bpbFSVers;		/* file system version */
 +    u_int32_t	bpbRootClust;		/* root directory start cluster */
 +    u_int16_t	bpbFSInfo;		/* [-i] file system info sector */
 +    u_int16_t	bpbBackup;		/* [-k] backup boot sector */
  };
  .Ed
  .Sh LIMITATION
 
 Modified: stable/9/sbin/newfs_msdos/newfs_msdos.c
 ==============================================================================
 --- stable/9/sbin/newfs_msdos/newfs_msdos.c	Thu Jan  5 01:35:01 2012	(r229549)
 +++ stable/9/sbin/newfs_msdos/newfs_msdos.c	Thu Jan  5 01:40:42 2012	(r229550)
 @@ -66,7 +66,7 @@ static const char rcsid[] =
  #define MINCLS12  1U		/* minimum FAT12 clusters */
  #define MINCLS16  0x1000U	/* minimum FAT16 clusters */
  #define MINCLS32  2U		/* minimum FAT32 clusters */
 -#define MAXCLS12  0xfedU 	/* maximum FAT12 clusters */
 +#define MAXCLS12  0xfedU	/* maximum FAT12 clusters */
  #define MAXCLS16  0xfff5U	/* maximum FAT16 clusters */
  #define MAXCLS32  0xffffff5U	/* maximum FAT32 clusters */
  
 @@ -97,7 +97,7 @@ static const char rcsid[] =
  #define argtox(arg, lo, msg)  argtou(arg, lo, UINT_MAX, msg)
  
  struct bs {
 -    u_int8_t bsJump[3];		/* bootstrap entry point */
 +    u_int8_t bsJump[3];			/* bootstrap entry point */
      u_int8_t bsOemName[8];		/* OEM name and version */
  };
  
 @@ -123,7 +123,7 @@ struct bsxbpb {
      u_int8_t bpbRootClust[4];		/* root directory start cluster */
      u_int8_t bpbFSInfo[2];		/* file system info sector */
      u_int8_t bpbBackup[2];		/* backup boot sector */
 -    u_int8_t bpbReserved[12];			/* reserved */
 +    u_int8_t bpbReserved[12];		/* reserved */
  };
  
  struct bsx {
 @@ -136,13 +136,13 @@ struct bsx {
  };
  
  struct de {
 -    u_int8_t deName[11];	/* name and extension */
 -    u_int8_t deAttributes;	/* attributes */
 -    u_int8_t rsvd[10];		/* reserved */
 -    u_int8_t deMTime[2];	/* creation time */
 -    u_int8_t deMDate[2];	/* creation date */
 -    u_int8_t deStartCluster[2];	/* starting cluster */
 -    u_int8_t deFileSize[4];	/* size */
 +    u_int8_t deName[11];		/* name and extension */
 +    u_int8_t deAttributes;		/* attributes */
 +    u_int8_t rsvd[10];			/* reserved */
 +    u_int8_t deMTime[2];		/* creation time */
 +    u_int8_t deMDate[2];		/* creation date */
 +    u_int8_t deStartCluster[2];		/* starting cluster */
 +    u_int8_t deFileSize[4];		/* size */
  };
  
  struct bpb {
 @@ -160,29 +160,26 @@ struct bpb {
      u_int bpbHugeSectors; 		/* big total sectors */
      u_int bpbBigFATsecs; 		/* big sectors per FAT */
      u_int bpbRootClust; 		/* root directory start cluster */
 -    u_int bpbFSInfo; 		/* file system info sector */
 -    u_int bpbBackup; 		/* backup boot sector */
 +    u_int bpbFSInfo; 			/* file system info sector */
 +    u_int bpbBackup; 			/* backup boot sector */
  };
  
  #define BPBGAP 0, 0, 0, 0, 0, 0
  
 -#define INIT(a, b, c, d, e, f, g, h, i, j) \
 -    { .bpbBytesPerSec = a, .bpbSecPerClust = b, .bpbResSectors = c, .bpbFATs = d, .bpbRootDirEnts = e, \
 -      .bpbSectors = f, .bpbMedia = g, .bpbFATsecs = h, .bpbSecPerTrack = i, .bpbHeads = j, }
  static struct {
      const char *name;
      struct bpb bpb;
  } const stdfmt[] = {
 -    {"160",  INIT(512, 1, 1, 2,  64,  320, 0xfe, 1,  8, 1)},
 -    {"180",  INIT(512, 1, 1, 2,  64,  360, 0xfc, 2,  9, 1)},
 -    {"320",  INIT(512, 2, 1, 2, 112,  640, 0xff, 1,  8, 2)},
 -    {"360",  INIT(512, 2, 1, 2, 112,  720, 0xfd, 2,  9, 2)},
 -    {"640",  INIT(512, 2, 1, 2, 112, 1280, 0xfb, 2,  8, 2)},    
 -    {"720",  INIT(512, 2, 1, 2, 112, 1440, 0xf9, 3,  9, 2)},
 -    {"1200", INIT(512, 1, 1, 2, 224, 2400, 0xf9, 7, 15, 2)},
 -    {"1232", INIT(1024,1, 1, 2, 192, 1232, 0xfe, 2,  8, 2)},    
 -    {"1440", INIT(512, 1, 1, 2, 224, 2880, 0xf0, 9, 18, 2)},
 -    {"2880", INIT(512, 2, 1, 2, 240, 5760, 0xf0, 9, 36, 2)}
 +    {"160",  {512, 1, 1, 2,  64,  320, 0xfe, 1,  8, 1, BPBGAP}},
 +    {"180",  {512, 1, 1, 2,  64,  360, 0xfc, 2,  9, 1, BPBGAP}},
 +    {"320",  {512, 2, 1, 2, 112,  640, 0xff, 1,  8, 2, BPBGAP}},
 +    {"360",  {512, 2, 1, 2, 112,  720, 0xfd, 2,  9, 2, BPBGAP}},
 +    {"640",  {512, 2, 1, 2, 112, 1280, 0xfb, 2,  8, 2, BPBGAP}},    
 +    {"720",  {512, 2, 1, 2, 112, 1440, 0xf9, 3,  9, 2, BPBGAP}},
 +    {"1200", {512, 1, 1, 2, 224, 2400, 0xf9, 7, 15, 2, BPBGAP}},
 +    {"1232", {1024,1, 1, 2, 192, 1232, 0xfe, 2,  8, 2, BPBGAP}},    
 +    {"1440", {512, 1, 1, 2, 224, 2880, 0xf0, 9, 18, 2, BPBGAP}},
 +    {"2880", {512, 2, 1, 2, 240, 5760, 0xf0, 9, 36, 2, BPBGAP}}
  };
  
  static const u_int8_t bootcode[] = {
 @@ -494,7 +491,8 @@ main(int argc, char *argv[])
  	if ((fd1 = open(bname, O_RDONLY)) == -1 || fstat(fd1, &sb))
  	    err(1, "%s", bname);
  	if (!S_ISREG(sb.st_mode) || sb.st_size % bpb.bpbBytesPerSec ||
 -	    sb.st_size < bpb.bpbBytesPerSec || sb.st_size > bpb.bpbBytesPerSec * MAXU16)
 +	    sb.st_size < bpb.bpbBytesPerSec ||
 +	    sb.st_size > bpb.bpbBytesPerSec * MAXU16)
  	    errx(1, "%s: inappropriate file type or format", bname);
  	bss = sb.st_size / bpb.bpbBytesPerSec;
      }
 @@ -503,19 +501,23 @@ main(int argc, char *argv[])
      if (!fat) {
  	if (bpb.bpbHugeSectors < (bpb.bpbResSectors ? bpb.bpbResSectors : bss) +
  	    howmany((RESFTE + (bpb.bpbSecPerClust ? MINCLS16 : MAXCLS12 + 1)) *
 -		    ((bpb.bpbSecPerClust ? 16 : 12) / BPN), bpb.bpbBytesPerSec * NPB) *
 +		(bpb.bpbSecPerClust ? 16 : 12) / BPN,
 +		bpb.bpbBytesPerSec * NPB) *
  	    bpb.bpbFATs +
  	    howmany(bpb.bpbRootDirEnts ? bpb.bpbRootDirEnts : DEFRDE,
  		    bpb.bpbBytesPerSec / sizeof(struct de)) +
  	    (bpb.bpbSecPerClust ? MINCLS16 : MAXCLS12 + 1) *
 -	    (bpb.bpbSecPerClust ? bpb.bpbSecPerClust : howmany(DEFBLK, bpb.bpbBytesPerSec)))
 +	    (bpb.bpbSecPerClust ? bpb.bpbSecPerClust :
 +	     howmany(DEFBLK, bpb.bpbBytesPerSec)))
  	    fat = 12;
  	else if (bpb.bpbRootDirEnts || bpb.bpbHugeSectors <
  		 (bpb.bpbResSectors ? bpb.bpbResSectors : bss) +
 -		 howmany((RESFTE + MAXCLS16) * 2, bpb.bpbBytesPerSec) * bpb.bpbFATs +
 +		 howmany((RESFTE + MAXCLS16) * 2, bpb.bpbBytesPerSec) *
 +		 bpb.bpbFATs +
  		 howmany(DEFRDE, bpb.bpbBytesPerSec / sizeof(struct de)) +
  		 (MAXCLS16 + 1) *
 -		 (bpb.bpbSecPerClust ? bpb.bpbSecPerClust : howmany(8192, bpb.bpbBytesPerSec)))
 +		 (bpb.bpbSecPerClust ? bpb.bpbSecPerClust :
 +		  howmany(8192, bpb.bpbBytesPerSec)))
  	    fat = 16;
  	else
  	    fat = 32;
 @@ -539,21 +541,27 @@ main(int argc, char *argv[])
  	    x = bpb.bpbBackup + 1;
      }
      if (!bpb.bpbResSectors)
 -	bpb.bpbResSectors = fat == 32 ? MAX(x, MAX(16384 / bpb.bpbBytesPerSec, 4)) : x;
 +	bpb.bpbResSectors = fat == 32 ? 
 +	    MAX(x, MAX(16384 / bpb.bpbBytesPerSec, 4)) : x;
      else if (bpb.bpbResSectors < x)
 -	errx(1, "too few reserved sectors (need %d have %d)", x, bpb.bpbResSectors);
 +	errx(1, "too few reserved sectors (need %d have %d)", x,
 +	     bpb.bpbResSectors);
      if (fat != 32 && !bpb.bpbRootDirEnts)
  	bpb.bpbRootDirEnts = DEFRDE;
      rds = howmany(bpb.bpbRootDirEnts, bpb.bpbBytesPerSec / sizeof(struct de));
      if (!bpb.bpbSecPerClust)
 -	for (bpb.bpbSecPerClust = howmany(fat == 16 ? DEFBLK16 : DEFBLK, bpb.bpbBytesPerSec);
 +	for (bpb.bpbSecPerClust = howmany(fat == 16 ? DEFBLK16 :
 +					  DEFBLK, bpb.bpbBytesPerSec);
  	     bpb.bpbSecPerClust < MAXSPC &&
  	     bpb.bpbResSectors +
  	     howmany((RESFTE + maxcls(fat)) * (fat / BPN),
 -		     bpb.bpbBytesPerSec * NPB) * bpb.bpbFATs +
 +		     bpb.bpbBytesPerSec * NPB) *
 +	     bpb.bpbFATs +
  	     rds +
 -	     (u_int64_t)(maxcls(fat) + 1) * bpb.bpbSecPerClust <= bpb.bpbHugeSectors;
 -	     bpb.bpbSecPerClust <<= 1);
 +	     (u_int64_t) (maxcls(fat) + 1) *
 +	     bpb.bpbSecPerClust <= bpb.bpbHugeSectors;
 +	     bpb.bpbSecPerClust <<= 1)
 +	    continue;
      if (fat != 32 && bpb.bpbBigFATsecs > MAXU16)
  	errx(1, "too many sectors/FAT for FAT12/16");
      x1 = bpb.bpbResSectors + rds;
 @@ -562,7 +570,8 @@ main(int argc, char *argv[])
  	errx(1, "meta data exceeds file system size");
      x1 += x * bpb.bpbFATs;
      x = (u_int64_t)(bpb.bpbHugeSectors - x1) * bpb.bpbBytesPerSec * NPB /
 -	(bpb.bpbSecPerClust * bpb.bpbBytesPerSec * NPB + fat / BPN * bpb.bpbFATs);
 +	(bpb.bpbSecPerClust * bpb.bpbBytesPerSec * NPB + fat /
 +	 BPN * bpb.bpbFATs);
      x2 = howmany((RESFTE + MIN(x, maxcls(fat))) * (fat / BPN),
  		 bpb.bpbBytesPerSec * NPB);
      if (!bpb.bpbBigFATsecs) {
 @@ -570,7 +579,8 @@ main(int argc, char *argv[])
  	x1 += (bpb.bpbBigFATsecs - 1) * bpb.bpbFATs;
      }
      cls = (bpb.bpbHugeSectors - x1) / bpb.bpbSecPerClust;
 -    x = (u_int64_t)bpb.bpbBigFATsecs * bpb.bpbBytesPerSec * NPB / (fat / BPN) - RESFTE;
 +    x = (u_int64_t)bpb.bpbBigFATsecs * bpb.bpbBytesPerSec * NPB / (fat / BPN) -
 +	RESFTE;
      if (cls > x)
  	cls = x;
      if (bpb.bpbBigFATsecs < x2)
 @@ -608,7 +618,8 @@ main(int argc, char *argv[])
  	tm = localtime(&now);
  	if (!(img = malloc(bpb.bpbBytesPerSec)))
  	    err(1, NULL);
 -	dir = bpb.bpbResSectors + (bpb.bpbFATsecs ? bpb.bpbFATsecs : bpb.bpbBigFATsecs) * bpb.bpbFATs;
 +	dir = bpb.bpbResSectors + (bpb.bpbFATsecs ? bpb.bpbFATsecs :
 +				   bpb.bpbBigFATsecs) * bpb.bpbFATs;
  	memset(&si_sa, 0, sizeof(si_sa));
  	si_sa.sa_handler = infohandler;
  	if (sigaction(SIGINFO, &si_sa, NULL) == -1)
 @@ -638,7 +649,8 @@ main(int argc, char *argv[])
  	    } else
  		memset(img, 0, bpb.bpbBytesPerSec);
  	    if (!lsn ||
 -	      (fat == 32 && bpb.bpbBackup != MAXU16 && lsn == bpb.bpbBackup)) {
 +		(fat == 32 && bpb.bpbBackup != MAXU16 &&
 +		 lsn == bpb.bpbBackup)) {
  		x1 = sizeof(struct bs);
  		bsbpb = (struct bsbpb *)(img + x1);
  		mk2(bsbpb->bpbBytesPerSec, bpb.bpbBytesPerSec);
 @@ -702,7 +714,8 @@ main(int argc, char *argv[])
  		mk2(img + MINBPS - 2, DOSMAGIC);
  	    } else if (lsn >= bpb.bpbResSectors && lsn < dir &&
  		       !((lsn - bpb.bpbResSectors) %
 -			 (bpb.bpbFATsecs ? bpb.bpbFATsecs : bpb.bpbBigFATsecs))) {
 +			 (bpb.bpbFATsecs ? bpb.bpbFATsecs :
 +			  bpb.bpbBigFATsecs))) {
  		mk1(img[0], bpb.bpbMedia);
  		for (x = 1; x < fat * (fat == 32 ? 3 : 2) / 8; x++)
  		    mk1(img[x], fat == 32 && x % 4 == 3 ? 0x0f : 0xff);
 @@ -817,16 +830,19 @@ getdiskinfo(int fd, const char *fname, c
  	if (bpb->bpbBytesPerSec)
  	    dlp.d_secsize = bpb->bpbBytesPerSec;
  	if (ioctl(fd, DIOCGDINFO, &dlp) == -1) {
 -	    if (bpb->bpbBytesPerSec == 0 && ioctl(fd, DIOCGSECTORSIZE, &dlp.d_secsize) == -1)
 +	    if (bpb->bpbBytesPerSec == 0 && ioctl(fd, DIOCGSECTORSIZE,
 +						  &dlp.d_secsize) == -1)
  		errx(1, "Cannot get sector size, %s", strerror(errno));
  
  	    dlp.d_secperunit = ms / dlp.d_secsize;
  
 -	    if (bpb->bpbSecPerTrack == 0 && ioctl(fd, DIOCGFWSECTORS, &dlp.d_nsectors) == -1) {
 +	    if (bpb->bpbSecPerTrack == 0 && ioctl(fd, DIOCGFWSECTORS,
 +						  &dlp.d_nsectors) == -1) {
  		warnx("Cannot get number of sectors per track, %s", strerror(errno));
  		dlp.d_nsectors = 63;
  	    }
 -	    if (bpb->bpbHeads == 0 && ioctl(fd, DIOCGFWHEADS, &dlp.d_ntracks) == -1) {
 +	    if (bpb->bpbHeads == 0 &&
 +	        ioctl(fd, DIOCGFWHEADS, &dlp.d_ntracks) == -1) {
  		warnx("Cannot get number of heads, %s", strerror(errno));
  		if (dlp.d_secperunit <= 63*1*1024)
  		    dlp.d_ntracks = 1;
 @@ -859,7 +875,8 @@ getdiskinfo(int fd, const char *fname, c
  static void
  print_bpb(struct bpb *bpb)
  {
 -    printf("BytesPerSec=%u SecPerClust=%u ResSectors=%u FATs=%u", bpb->bpbBytesPerSec, bpb->bpbSecPerClust, bpb->bpbResSectors,
 +    printf("BytesPerSec=%u SecPerClust=%u ResSectors=%u FATs=%u",
 +	   bpb->bpbBytesPerSec, bpb->bpbSecPerClust, bpb->bpbResSectors,
  	   bpb->bpbFATs);
      if (bpb->bpbRootDirEnts)
  	printf(" RootDirEnts=%u", bpb->bpbRootDirEnts);
 @@ -868,11 +885,13 @@ print_bpb(struct bpb *bpb)
      printf(" Media=%#x", bpb->bpbMedia);
      if (bpb->bpbFATsecs)
  	printf(" FATsecs=%u", bpb->bpbFATsecs);
 -    printf(" SecPerTrack=%u Heads=%u HiddenSecs=%u", bpb->bpbSecPerTrack, bpb->bpbHeads, bpb->bpbHiddenSecs);
 +    printf(" SecPerTrack=%u Heads=%u HiddenSecs=%u", bpb->bpbSecPerTrack,
 +	   bpb->bpbHeads, bpb->bpbHiddenSecs);
      if (bpb->bpbHugeSectors)
  	printf(" HugeSectors=%u", bpb->bpbHugeSectors);
      if (!bpb->bpbFATsecs) {
 -	printf(" FATsecs=%u RootCluster=%u", bpb->bpbBigFATsecs, bpb->bpbRootClust);
 +	printf(" FATsecs=%u RootCluster=%u", bpb->bpbBigFATsecs,
 +	       bpb->bpbRootClust);
  	printf(" FSInfo=");
  	printf(bpb->bpbFSInfo == MAXU16 ? "%#x" : "%u", bpb->bpbFSInfo);
  	printf(" Backup=");
 @@ -919,6 +938,7 @@ argtooff(const char *arg, const char *ms
      char *s;
      off_t x;
  
 +    errno = 0;
      x = strtoll(arg, &s, 0);
      /* allow at most one extra char */
      if (errno || x < 0 || (s[0] && s[1]) )
 @@ -929,30 +949,30 @@ argtooff(const char *arg, const char *ms
  	    errx(1, "%s: bad %s", arg, msg);
  	    /* notreached */
  	
 -	case 's':	/* sector */
 +	case 's':		/* sector */
  	case 'S':
 -	    x <<= 9;	/* times 512 */
 +	    x <<= 9;		/* times 512 */
  	    break;
  
 -	case 'k':	/* kilobyte */
 +	case 'k':		/* kilobyte */
  	case 'K':
 -	    x <<= 10;	/* times 1024 */
 +	    x <<= 10;		/* times 1024 */
  	    break;
  
 -	case 'm':	/* megabyte */
 +	case 'm':		/* megabyte */
  	case 'M':
 -	    x <<= 20;	/* times 1024*1024 */
 +	    x <<= 20;		/* times 1024*1024 */
  	    break;
  
 -	case 'g':	/* gigabyte */
 +	case 'g':		/* gigabyte */
  	case 'G':
 -	    x <<= 30;	/* times 1024*1024*1024 */
 +	    x <<= 30;		/* times 1024*1024*1024 */
  	    break;
  
 -	case 'p':	/* partition start */
 -	case 'P':	/* partition start */
 -	case 'l':	/* partition length */
 -	case 'L':	/* partition length */
 +	case 'p':		/* partition start */
 +	case 'P':
 +	case 'l':		/* partition length */
 +	case 'L':
  	    errx(1, "%s: not supported yet %s", arg, msg);
  	    /* notreached */
  	}
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: patched->closed 
State-Changed-By: pfg 
State-Changed-When: Thu Jan 5 01:56:21 UTC 2012 
State-Changed-Why:  
Committed and MFC'd to stable/9. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=151850 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/151850: commit references a PR
Date: Fri,  3 Feb 2012 23:35:52 +0000 (UTC)

 Author: pfg
 Date: Fri Feb  3 23:35:39 2012
 New Revision: 230970
 URL: http://svn.freebsd.org/changeset/base/230970
 
 Log:
   MFC:	r228740
   
   Many style fixes.
   Remove C99 initializers: they don't help in this case.
   Set errno to 0 before strtoll() (from NetBSD).
   
   PR:		151850
   Suggested by:	bde
   Approved by:	jhb (Mentor)
 
 Modified:
   stable/8/sbin/newfs_msdos/newfs_msdos.8
   stable/8/sbin/newfs_msdos/newfs_msdos.c
 Directory Properties:
   stable/8/sbin/newfs_msdos/   (props changed)
 
 Modified: stable/8/sbin/newfs_msdos/newfs_msdos.8
 ==============================================================================
 --- stable/8/sbin/newfs_msdos/newfs_msdos.8	Fri Feb  3 23:32:22 2012	(r230969)
 +++ stable/8/sbin/newfs_msdos/newfs_msdos.8	Fri Feb  3 23:35:39 2012	(r230970)
 @@ -180,27 +180,27 @@ For reference purposes, this structure i
  below.
  .Bd -literal
  struct bsbpb {
 -    u_int16_t	bps;		/* [-S] bytes per sector */
 -    u_int8_t	spc;		/* [-c] sectors per cluster */
 -    u_int16_t	res;		/* [-r] reserved sectors */
 -    u_int8_t	nft;		/* [-n] number of FATs */
 -    u_int16_t	rde;		/* [-e] root directory entries */
 -    u_int16_t	sec;		/* [-s] total sectors */
 -    u_int8_t	mid;		/* [-m] media descriptor */
 -    u_int16_t	spf;		/* [-a] sectors per FAT */
 -    u_int16_t	spt;		/* [-u] sectors per track */
 -    u_int16_t	hds;		/* [-h] drive heads */
 -    u_int32_t	hid;		/* [-o] hidden sectors */
 -    u_int32_t	bsec;		/* [-s] big total sectors */
 +    u_int16_t	bpbBytesPerSec;		/* [-S] bytes per sector */
 +    u_int8_t	bpbSecPerClust;		/* [-c] sectors per cluster */
 +    u_int16_t	bpbResSectors;		/* [-r] reserved sectors */
 +    u_int8_t	bpbFATs;		/* [-n] number of FATs */
 +    u_int16_t	bpbRootDirEnts;		/* [-e] root directory entries */
 +    u_int16_t	bpbSectors;		/* [-s] total sectors */
 +    u_int8_t	bpbMedia;		/* [-m] media descriptor */
 +    u_int16_t	bpbFATsecs;		/* [-a] sectors per FAT */
 +    u_int16_t	bpbSecPerTrack;		/* [-u] sectors per track */
 +    u_int16_t	bpbHeads;		/* [-h] drive heads */
 +    u_int32_t	bpbHiddenSecs;		/* [-o] hidden sectors */
 +    u_int32_t	bpbHugeSectors;		/* [-s] big total sectors */
  };
  /* FAT32 extensions */
  struct bsxbpb {
 -    u_int32_t	bspf;		/* [-a] big sectors per FAT */
 -    u_int16_t	xflg;		/* control flags */
 -    u_int16_t	vers;		/* file system version */
 -    u_int32_t	rdcl;		/* root directory start cluster */
 -    u_int16_t	infs;		/* [-i] file system info sector */
 -    u_int16_t	bkbs;		/* [-k] backup boot sector */
 +    u_int32_t	bpbBigFATsecs;		/* [-a] big sectors per FAT */
 +    u_int16_t	bpbExtFlags;		/* control flags */
 +    u_int16_t	bpbFSVers;		/* file system version */
 +    u_int32_t	bpbRootClust;		/* root directory start cluster */
 +    u_int16_t	bpbFSInfo;		/* [-i] file system info sector */
 +    u_int16_t	bpbBackup;		/* [-k] backup boot sector */
  };
  .Ed
  .Sh LIMITATION
 
 Modified: stable/8/sbin/newfs_msdos/newfs_msdos.c
 ==============================================================================
 --- stable/8/sbin/newfs_msdos/newfs_msdos.c	Fri Feb  3 23:32:22 2012	(r230969)
 +++ stable/8/sbin/newfs_msdos/newfs_msdos.c	Fri Feb  3 23:35:39 2012	(r230970)
 @@ -66,7 +66,7 @@ static const char rcsid[] =
  #define MINCLS12  1U		/* minimum FAT12 clusters */
  #define MINCLS16  0x1000U	/* minimum FAT16 clusters */
  #define MINCLS32  2U		/* minimum FAT32 clusters */
 -#define MAXCLS12  0xfedU 	/* maximum FAT12 clusters */
 +#define MAXCLS12  0xfedU	/* maximum FAT12 clusters */
  #define MAXCLS16  0xfff5U	/* maximum FAT16 clusters */
  #define MAXCLS32  0xffffff5U	/* maximum FAT32 clusters */
  
 @@ -97,7 +97,7 @@ static const char rcsid[] =
  #define argtox(arg, lo, msg)  argtou(arg, lo, UINT_MAX, msg)
  
  struct bs {
 -    u_int8_t bsJump[3];		/* bootstrap entry point */
 +    u_int8_t bsJump[3];			/* bootstrap entry point */
      u_int8_t bsOemName[8];		/* OEM name and version */
  };
  
 @@ -123,7 +123,7 @@ struct bsxbpb {
      u_int8_t bpbRootClust[4];		/* root directory start cluster */
      u_int8_t bpbFSInfo[2];		/* file system info sector */
      u_int8_t bpbBackup[2];		/* backup boot sector */
 -    u_int8_t bpbReserved[12];			/* reserved */
 +    u_int8_t bpbReserved[12];		/* reserved */
  };
  
  struct bsx {
 @@ -136,13 +136,13 @@ struct bsx {
  };
  
  struct de {
 -    u_int8_t deName[11];	/* name and extension */
 -    u_int8_t deAttributes;	/* attributes */
 -    u_int8_t rsvd[10];		/* reserved */
 -    u_int8_t deMTime[2];	/* creation time */
 -    u_int8_t deMDate[2];	/* creation date */
 -    u_int8_t deStartCluster[2];	/* starting cluster */
 -    u_int8_t deFileSize[4];	/* size */
 +    u_int8_t deName[11];		/* name and extension */
 +    u_int8_t deAttributes;		/* attributes */
 +    u_int8_t rsvd[10];			/* reserved */
 +    u_int8_t deMTime[2];		/* creation time */
 +    u_int8_t deMDate[2];		/* creation date */
 +    u_int8_t deStartCluster[2];		/* starting cluster */
 +    u_int8_t deFileSize[4];		/* size */
  };
  
  struct bpb {
 @@ -160,29 +160,26 @@ struct bpb {
      u_int bpbHugeSectors; 		/* big total sectors */
      u_int bpbBigFATsecs; 		/* big sectors per FAT */
      u_int bpbRootClust; 		/* root directory start cluster */
 -    u_int bpbFSInfo; 		/* file system info sector */
 -    u_int bpbBackup; 		/* backup boot sector */
 +    u_int bpbFSInfo; 			/* file system info sector */
 +    u_int bpbBackup; 			/* backup boot sector */
  };
  
  #define BPBGAP 0, 0, 0, 0, 0, 0
  
 -#define INIT(a, b, c, d, e, f, g, h, i, j) \
 -    { .bpbBytesPerSec = a, .bpbSecPerClust = b, .bpbResSectors = c, .bpbFATs = d, .bpbRootDirEnts = e, \
 -      .bpbSectors = f, .bpbMedia = g, .bpbFATsecs = h, .bpbSecPerTrack = i, .bpbHeads = j, }
  static struct {
      const char *name;
      struct bpb bpb;
  } const stdfmt[] = {
 -    {"160",  INIT(512, 1, 1, 2,  64,  320, 0xfe, 1,  8, 1)},
 -    {"180",  INIT(512, 1, 1, 2,  64,  360, 0xfc, 2,  9, 1)},
 -    {"320",  INIT(512, 2, 1, 2, 112,  640, 0xff, 1,  8, 2)},
 -    {"360",  INIT(512, 2, 1, 2, 112,  720, 0xfd, 2,  9, 2)},
 -    {"640",  INIT(512, 2, 1, 2, 112, 1280, 0xfb, 2,  8, 2)},    
 -    {"720",  INIT(512, 2, 1, 2, 112, 1440, 0xf9, 3,  9, 2)},
 -    {"1200", INIT(512, 1, 1, 2, 224, 2400, 0xf9, 7, 15, 2)},
 -    {"1232", INIT(1024,1, 1, 2, 192, 1232, 0xfe, 2,  8, 2)},    
 -    {"1440", INIT(512, 1, 1, 2, 224, 2880, 0xf0, 9, 18, 2)},
 -    {"2880", INIT(512, 2, 1, 2, 240, 5760, 0xf0, 9, 36, 2)}
 +    {"160",  {512, 1, 1, 2,  64,  320, 0xfe, 1,  8, 1, BPBGAP}},
 +    {"180",  {512, 1, 1, 2,  64,  360, 0xfc, 2,  9, 1, BPBGAP}},
 +    {"320",  {512, 2, 1, 2, 112,  640, 0xff, 1,  8, 2, BPBGAP}},
 +    {"360",  {512, 2, 1, 2, 112,  720, 0xfd, 2,  9, 2, BPBGAP}},
 +    {"640",  {512, 2, 1, 2, 112, 1280, 0xfb, 2,  8, 2, BPBGAP}},    
 +    {"720",  {512, 2, 1, 2, 112, 1440, 0xf9, 3,  9, 2, BPBGAP}},
 +    {"1200", {512, 1, 1, 2, 224, 2400, 0xf9, 7, 15, 2, BPBGAP}},
 +    {"1232", {1024,1, 1, 2, 192, 1232, 0xfe, 2,  8, 2, BPBGAP}},    
 +    {"1440", {512, 1, 1, 2, 224, 2880, 0xf0, 9, 18, 2, BPBGAP}},
 +    {"2880", {512, 2, 1, 2, 240, 5760, 0xf0, 9, 36, 2, BPBGAP}}
  };
  
  static const u_int8_t bootcode[] = {
 @@ -494,7 +491,8 @@ main(int argc, char *argv[])
  	if ((fd1 = open(bname, O_RDONLY)) == -1 || fstat(fd1, &sb))
  	    err(1, "%s", bname);
  	if (!S_ISREG(sb.st_mode) || sb.st_size % bpb.bpbBytesPerSec ||
 -	    sb.st_size < bpb.bpbBytesPerSec || sb.st_size > bpb.bpbBytesPerSec * MAXU16)
 +	    sb.st_size < bpb.bpbBytesPerSec ||
 +	    sb.st_size > bpb.bpbBytesPerSec * MAXU16)
  	    errx(1, "%s: inappropriate file type or format", bname);
  	bss = sb.st_size / bpb.bpbBytesPerSec;
      }
 @@ -503,19 +501,23 @@ main(int argc, char *argv[])
      if (!fat) {
  	if (bpb.bpbHugeSectors < (bpb.bpbResSectors ? bpb.bpbResSectors : bss) +
  	    howmany((RESFTE + (bpb.bpbSecPerClust ? MINCLS16 : MAXCLS12 + 1)) *
 -		    ((bpb.bpbSecPerClust ? 16 : 12) / BPN), bpb.bpbBytesPerSec * NPB) *
 +		(bpb.bpbSecPerClust ? 16 : 12) / BPN,
 +		bpb.bpbBytesPerSec * NPB) *
  	    bpb.bpbFATs +
  	    howmany(bpb.bpbRootDirEnts ? bpb.bpbRootDirEnts : DEFRDE,
  		    bpb.bpbBytesPerSec / sizeof(struct de)) +
  	    (bpb.bpbSecPerClust ? MINCLS16 : MAXCLS12 + 1) *
 -	    (bpb.bpbSecPerClust ? bpb.bpbSecPerClust : howmany(DEFBLK, bpb.bpbBytesPerSec)))
 +	    (bpb.bpbSecPerClust ? bpb.bpbSecPerClust :
 +	     howmany(DEFBLK, bpb.bpbBytesPerSec)))
  	    fat = 12;
  	else if (bpb.bpbRootDirEnts || bpb.bpbHugeSectors <
  		 (bpb.bpbResSectors ? bpb.bpbResSectors : bss) +
 -		 howmany((RESFTE + MAXCLS16) * 2, bpb.bpbBytesPerSec) * bpb.bpbFATs +
 +		 howmany((RESFTE + MAXCLS16) * 2, bpb.bpbBytesPerSec) *
 +		 bpb.bpbFATs +
  		 howmany(DEFRDE, bpb.bpbBytesPerSec / sizeof(struct de)) +
  		 (MAXCLS16 + 1) *
 -		 (bpb.bpbSecPerClust ? bpb.bpbSecPerClust : howmany(8192, bpb.bpbBytesPerSec)))
 +		 (bpb.bpbSecPerClust ? bpb.bpbSecPerClust :
 +		  howmany(8192, bpb.bpbBytesPerSec)))
  	    fat = 16;
  	else
  	    fat = 32;
 @@ -539,21 +541,27 @@ main(int argc, char *argv[])
  	    x = bpb.bpbBackup + 1;
      }
      if (!bpb.bpbResSectors)
 -	bpb.bpbResSectors = fat == 32 ? MAX(x, MAX(16384 / bpb.bpbBytesPerSec, 4)) : x;
 +	bpb.bpbResSectors = fat == 32 ? 
 +	    MAX(x, MAX(16384 / bpb.bpbBytesPerSec, 4)) : x;
      else if (bpb.bpbResSectors < x)
 -	errx(1, "too few reserved sectors (need %d have %d)", x, bpb.bpbResSectors);
 +	errx(1, "too few reserved sectors (need %d have %d)", x,
 +	     bpb.bpbResSectors);
      if (fat != 32 && !bpb.bpbRootDirEnts)
  	bpb.bpbRootDirEnts = DEFRDE;
      rds = howmany(bpb.bpbRootDirEnts, bpb.bpbBytesPerSec / sizeof(struct de));
      if (!bpb.bpbSecPerClust)
 -	for (bpb.bpbSecPerClust = howmany(fat == 16 ? DEFBLK16 : DEFBLK, bpb.bpbBytesPerSec);
 +	for (bpb.bpbSecPerClust = howmany(fat == 16 ? DEFBLK16 :
 +					  DEFBLK, bpb.bpbBytesPerSec);
  	     bpb.bpbSecPerClust < MAXSPC &&
  	     bpb.bpbResSectors +
  	     howmany((RESFTE + maxcls(fat)) * (fat / BPN),
 -		     bpb.bpbBytesPerSec * NPB) * bpb.bpbFATs +
 +		     bpb.bpbBytesPerSec * NPB) *
 +	     bpb.bpbFATs +
  	     rds +
 -	     (u_int64_t)(maxcls(fat) + 1) * bpb.bpbSecPerClust <= bpb.bpbHugeSectors;
 -	     bpb.bpbSecPerClust <<= 1);
 +	     (u_int64_t) (maxcls(fat) + 1) *
 +	     bpb.bpbSecPerClust <= bpb.bpbHugeSectors;
 +	     bpb.bpbSecPerClust <<= 1)
 +	    continue;
      if (fat != 32 && bpb.bpbBigFATsecs > MAXU16)
  	errx(1, "too many sectors/FAT for FAT12/16");
      x1 = bpb.bpbResSectors + rds;
 @@ -562,7 +570,8 @@ main(int argc, char *argv[])
  	errx(1, "meta data exceeds file system size");
      x1 += x * bpb.bpbFATs;
      x = (u_int64_t)(bpb.bpbHugeSectors - x1) * bpb.bpbBytesPerSec * NPB /
 -	(bpb.bpbSecPerClust * bpb.bpbBytesPerSec * NPB + fat / BPN * bpb.bpbFATs);
 +	(bpb.bpbSecPerClust * bpb.bpbBytesPerSec * NPB + fat /
 +	 BPN * bpb.bpbFATs);
      x2 = howmany((RESFTE + MIN(x, maxcls(fat))) * (fat / BPN),
  		 bpb.bpbBytesPerSec * NPB);
      if (!bpb.bpbBigFATsecs) {
 @@ -570,7 +579,8 @@ main(int argc, char *argv[])
  	x1 += (bpb.bpbBigFATsecs - 1) * bpb.bpbFATs;
      }
      cls = (bpb.bpbHugeSectors - x1) / bpb.bpbSecPerClust;
 -    x = (u_int64_t)bpb.bpbBigFATsecs * bpb.bpbBytesPerSec * NPB / (fat / BPN) - RESFTE;
 +    x = (u_int64_t)bpb.bpbBigFATsecs * bpb.bpbBytesPerSec * NPB / (fat / BPN) -
 +	RESFTE;
      if (cls > x)
  	cls = x;
      if (bpb.bpbBigFATsecs < x2)
 @@ -608,7 +618,8 @@ main(int argc, char *argv[])
  	tm = localtime(&now);
  	if (!(img = malloc(bpb.bpbBytesPerSec)))
  	    err(1, NULL);
 -	dir = bpb.bpbResSectors + (bpb.bpbFATsecs ? bpb.bpbFATsecs : bpb.bpbBigFATsecs) * bpb.bpbFATs;
 +	dir = bpb.bpbResSectors + (bpb.bpbFATsecs ? bpb.bpbFATsecs :
 +				   bpb.bpbBigFATsecs) * bpb.bpbFATs;
  	memset(&si_sa, 0, sizeof(si_sa));
  	si_sa.sa_handler = infohandler;
  	if (sigaction(SIGINFO, &si_sa, NULL) == -1)
 @@ -638,7 +649,8 @@ main(int argc, char *argv[])
  	    } else
  		memset(img, 0, bpb.bpbBytesPerSec);
  	    if (!lsn ||
 -	      (fat == 32 && bpb.bpbBackup != MAXU16 && lsn == bpb.bpbBackup)) {
 +		(fat == 32 && bpb.bpbBackup != MAXU16 &&
 +		 lsn == bpb.bpbBackup)) {
  		x1 = sizeof(struct bs);
  		bsbpb = (struct bsbpb *)(img + x1);
  		mk2(bsbpb->bpbBytesPerSec, bpb.bpbBytesPerSec);
 @@ -702,7 +714,8 @@ main(int argc, char *argv[])
  		mk2(img + MINBPS - 2, DOSMAGIC);
  	    } else if (lsn >= bpb.bpbResSectors && lsn < dir &&
  		       !((lsn - bpb.bpbResSectors) %
 -			 (bpb.bpbFATsecs ? bpb.bpbFATsecs : bpb.bpbBigFATsecs))) {
 +			 (bpb.bpbFATsecs ? bpb.bpbFATsecs :
 +			  bpb.bpbBigFATsecs))) {
  		mk1(img[0], bpb.bpbMedia);
  		for (x = 1; x < fat * (fat == 32 ? 3 : 2) / 8; x++)
  		    mk1(img[x], fat == 32 && x % 4 == 3 ? 0x0f : 0xff);
 @@ -817,16 +830,19 @@ getdiskinfo(int fd, const char *fname, c
  	if (bpb->bpbBytesPerSec)
  	    dlp.d_secsize = bpb->bpbBytesPerSec;
  	if (ioctl(fd, DIOCGDINFO, &dlp) == -1) {
 -	    if (bpb->bpbBytesPerSec == 0 && ioctl(fd, DIOCGSECTORSIZE, &dlp.d_secsize) == -1)
 +	    if (bpb->bpbBytesPerSec == 0 && ioctl(fd, DIOCGSECTORSIZE,
 +						  &dlp.d_secsize) == -1)
  		errx(1, "Cannot get sector size, %s", strerror(errno));
  
  	    dlp.d_secperunit = ms / dlp.d_secsize;
  
 -	    if (bpb->bpbSecPerTrack == 0 && ioctl(fd, DIOCGFWSECTORS, &dlp.d_nsectors) == -1) {
 +	    if (bpb->bpbSecPerTrack == 0 && ioctl(fd, DIOCGFWSECTORS,
 +						  &dlp.d_nsectors) == -1) {
  		warnx("Cannot get number of sectors per track, %s", strerror(errno));
  		dlp.d_nsectors = 63;
  	    }
 -	    if (bpb->bpbHeads == 0 && ioctl(fd, DIOCGFWHEADS, &dlp.d_ntracks) == -1) {
 +	    if (bpb->bpbHeads == 0 &&
 +	        ioctl(fd, DIOCGFWHEADS, &dlp.d_ntracks) == -1) {
  		warnx("Cannot get number of heads, %s", strerror(errno));
  		if (dlp.d_secperunit <= 63*1*1024)
  		    dlp.d_ntracks = 1;
 @@ -859,7 +875,8 @@ getdiskinfo(int fd, const char *fname, c
  static void
  print_bpb(struct bpb *bpb)
  {
 -    printf("BytesPerSec=%u SecPerClust=%u ResSectors=%u FATs=%u", bpb->bpbBytesPerSec, bpb->bpbSecPerClust, bpb->bpbResSectors,
 +    printf("BytesPerSec=%u SecPerClust=%u ResSectors=%u FATs=%u",
 +	   bpb->bpbBytesPerSec, bpb->bpbSecPerClust, bpb->bpbResSectors,
  	   bpb->bpbFATs);
      if (bpb->bpbRootDirEnts)
  	printf(" RootDirEnts=%u", bpb->bpbRootDirEnts);
 @@ -868,11 +885,13 @@ print_bpb(struct bpb *bpb)
      printf(" Media=%#x", bpb->bpbMedia);
      if (bpb->bpbFATsecs)
  	printf(" FATsecs=%u", bpb->bpbFATsecs);
 -    printf(" SecPerTrack=%u Heads=%u HiddenSecs=%u", bpb->bpbSecPerTrack, bpb->bpbHeads, bpb->bpbHiddenSecs);
 +    printf(" SecPerTrack=%u Heads=%u HiddenSecs=%u", bpb->bpbSecPerTrack,
 +	   bpb->bpbHeads, bpb->bpbHiddenSecs);
      if (bpb->bpbHugeSectors)
  	printf(" HugeSectors=%u", bpb->bpbHugeSectors);
      if (!bpb->bpbFATsecs) {
 -	printf(" FATsecs=%u RootCluster=%u", bpb->bpbBigFATsecs, bpb->bpbRootClust);
 +	printf(" FATsecs=%u RootCluster=%u", bpb->bpbBigFATsecs,
 +	       bpb->bpbRootClust);
  	printf(" FSInfo=");
  	printf(bpb->bpbFSInfo == MAXU16 ? "%#x" : "%u", bpb->bpbFSInfo);
  	printf(" Backup=");
 @@ -919,6 +938,7 @@ argtooff(const char *arg, const char *ms
      char *s;
      off_t x;
  
 +    errno = 0;
      x = strtoll(arg, &s, 0);
      /* allow at most one extra char */
      if (errno || x < 0 || (s[0] && s[1]) )
 @@ -929,30 +949,30 @@ argtooff(const char *arg, const char *ms
  	    errx(1, "%s: bad %s", arg, msg);
  	    /* notreached */
  	
 -	case 's':	/* sector */
 +	case 's':		/* sector */
  	case 'S':
 -	    x <<= 9;	/* times 512 */
 +	    x <<= 9;		/* times 512 */
  	    break;
  
 -	case 'k':	/* kilobyte */
 +	case 'k':		/* kilobyte */
  	case 'K':
 -	    x <<= 10;	/* times 1024 */
 +	    x <<= 10;		/* times 1024 */
  	    break;
  
 -	case 'm':	/* megabyte */
 +	case 'm':		/* megabyte */
  	case 'M':
 -	    x <<= 20;	/* times 1024*1024 */
 +	    x <<= 20;		/* times 1024*1024 */
  	    break;
  
 -	case 'g':	/* gigabyte */
 +	case 'g':		/* gigabyte */
  	case 'G':
 -	    x <<= 30;	/* times 1024*1024*1024 */
 +	    x <<= 30;		/* times 1024*1024*1024 */
  	    break;
  
 -	case 'p':	/* partition start */
 -	case 'P':	/* partition start */
 -	case 'l':	/* partition length */
 -	case 'L':	/* partition length */
 +	case 'p':		/* partition start */
 +	case 'P':
 +	case 'l':		/* partition length */
 +	case 'L':
  	    errx(1, "%s: not supported yet %s", arg, msg);
  	    /* notreached */
  	}
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
>Unformatted:
