summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/arch/alpha/alpha/disksubr.c44
-rw-r--r--sys/arch/amd64/amd64/disksubr.c22
-rw-r--r--sys/arch/arm/arm/disksubr.c25
-rw-r--r--sys/arch/aviion/aviion/disksubr.c25
-rw-r--r--sys/arch/hp300/hp300/disksubr.c27
-rw-r--r--sys/arch/hppa/hppa/disksubr.c55
-rw-r--r--sys/arch/hppa64/hppa64/disksubr.c61
-rw-r--r--sys/arch/i386/i386/disksubr.c16
-rw-r--r--sys/arch/landisk/landisk/disksubr.c27
-rw-r--r--sys/arch/luna88k/luna88k/disksubr.c39
-rw-r--r--sys/arch/mac68k/mac68k/disksubr.c58
-rw-r--r--sys/arch/macppc/macppc/disksubr.c20
-rw-r--r--sys/arch/mips64/mips64/disksubr.c40
-rw-r--r--sys/arch/mvme68k/mvme68k/disksubr.c130
-rw-r--r--sys/arch/mvme88k/mvme88k/disksubr.c39
-rw-r--r--sys/arch/mvmeppc/mvmeppc/disksubr.c25
-rw-r--r--sys/arch/sparc/sparc/disksubr.c105
-rw-r--r--sys/arch/sparc64/sparc64/disksubr.c71
-rw-r--r--sys/arch/vax/vax/disksubr.c43
-rw-r--r--sys/sys/disklabel.h4
20 files changed, 283 insertions, 593 deletions
diff --git a/sys/arch/alpha/alpha/disksubr.c b/sys/arch/alpha/alpha/disksubr.c
index 479879eb215..2e0dbec03da 100644
--- a/sys/arch/alpha/alpha/disksubr.c
+++ b/sys/arch/alpha/alpha/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.73 2007/06/05 00:38:12 deraadt Exp $ */
+/* $OpenBSD: disksubr.c,v 1.74 2007/06/06 16:42:01 deraadt Exp $ */
/* $NetBSD: disksubr.c,v 1.21 1996/05/03 19:42:03 christos Exp $ */
/*
@@ -57,12 +57,8 @@ char *readdoslabel(struct buf *, void (*)(struct buf *),
* Try to read a standard BSD disklabel at a certain sector.
*/
char *
-readbsdlabel(bp, strat, cyl, sec, off, lp, spoofonly)
- struct buf *bp;
- void (*strat)(struct buf *);
- int cyl, sec, off;
- struct disklabel *lp;
- int spoofonly;
+readbsdlabel(struct buf *bp, void (*strat)(struct buf *),
+ int cyl, int sec, int off, struct disklabel *lp, int spoofonly)
{
struct disklabel *dlp;
char *msg = NULL;
@@ -124,12 +120,8 @@ readbsdlabel(bp, strat, cyl, sec, off, lp, spoofonly)
* Returns null on success and an error string on failure.
*/
char *
-readdisklabel(dev, strat, lp, osdep, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep, int spoofonly)
{
struct buf *bp = NULL;
char *msg = "no disk label";
@@ -208,14 +200,9 @@ done:
* MBR is valid.
*/
char *
-readdoslabel(bp, strat, lp, osdep, partoffp, cylp, spoofonly)
- struct buf *bp;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int *partoffp;
- int *cylp;
- int spoofonly;
+readdoslabel(struct buf *bp, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep,
+ int *partoffp, int *cylp, int spoofonly)
{
struct dos_partition dp[NDOSPART], *dp2;
struct partition *pp;
@@ -403,10 +390,8 @@ notfat:
* before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, osdep)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *osdep;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *osdep)
{
int i;
struct partition *opp, *npp;
@@ -436,7 +421,7 @@ setdisklabel(olp, nlp, openmask, osdep)
/* XXX missing check if other dos partitions will be overwritten */
while (openmask != 0) {
- i = ffs((long)openmask) - 1;
+ i = ffs(openmask) - 1;
openmask &= ~(1 << i);
if (nlp->d_npartitions <= i)
return (EBUSY);
@@ -466,11 +451,8 @@ setdisklabel(olp, nlp, openmask, osdep)
* Write disk label back to device after modification.
*/
int
-writedisklabel(dev, strat, lp, osdep)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep)
{
char *msg = "no disk label";
struct buf *bp;
diff --git a/sys/arch/amd64/amd64/disksubr.c b/sys/arch/amd64/amd64/disksubr.c
index a0a19e0d6d8..47e36a46727 100644
--- a/sys/arch/amd64/amd64/disksubr.c
+++ b/sys/arch/amd64/amd64/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.37 2007/06/05 00:38:13 deraadt Exp $ */
+/* $OpenBSD: disksubr.c,v 1.38 2007/06/06 16:42:03 deraadt Exp $ */
/* $NetBSD: disksubr.c,v 1.21 1996/05/03 19:42:03 christos Exp $ */
/*
@@ -66,13 +66,13 @@
bios_diskinfo_t *bios_getdiskinfo(dev_t dev);
char *
-readdisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp,
- struct cpu_disklabel *osdep, int spoofonly)
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep, int spoofonly)
{
struct dos_partition dp[NDOSPART], *dp2;
+ struct partition *pp;
struct disklabel *dlp;
bios_diskinfo_t *pdi;
- struct partition *pp;
unsigned long extoff = 0;
unsigned int fattest;
struct buf *bp = NULL;
@@ -143,7 +143,7 @@ readdisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp,
bp->b_flags = B_BUSY | B_READ;
bp->b_cylinder = part_blkno / lp->d_secpercyl;
(*strat)(bp);
-
+
/* if successful, wander through dos partition table */
if (biowait(bp)) {
msg = "dos partition I/O error";
@@ -216,9 +216,9 @@ donot:
case DOSPTYP_FAT12:
case DOSPTYP_FAT16S:
case DOSPTYP_FAT16B:
- case DOSPTYP_FAT32:
case DOSPTYP_FAT32L:
case DOSPTYP_FAT16L:
+ case DOSPTYP_FAT32:
pp->p_fstype = FS_MSDOS;
n++;
break;
@@ -269,7 +269,7 @@ donot:
}
notfat:
- /* Don't read the on-disk label if we are in spoofed-only mode. */
+ /* don't read the on-disk label if we are in spoofed-only mode */
if (spoofonly)
goto done;
@@ -325,8 +325,8 @@ done:
* before setting it.
*/
int
-setdisklabel(struct disklabel *olp, struct disklabel *nlp, u_long openmask,
- struct cpu_disklabel *osdep)
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *osdep)
{
int i;
struct partition *opp, *npp;
@@ -380,8 +380,8 @@ setdisklabel(struct disklabel *olp, struct disklabel *nlp, u_long openmask,
* XXX cannot handle OpenBSD partitions in extended partitions!
*/
int
-writedisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp,
- struct cpu_disklabel *osdep)
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep)
{
struct dos_partition dp[NDOSPART], *dp2;
struct disklabel *dlp;
diff --git a/sys/arch/arm/arm/disksubr.c b/sys/arch/arm/arm/disksubr.c
index 6fc8947caab..2e7b9b3024e 100644
--- a/sys/arch/arm/arm/disksubr.c
+++ b/sys/arch/arm/arm/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.32 2007/06/05 00:38:14 deraadt Exp $ */
+/* $OpenBSD: disksubr.c,v 1.33 2007/06/06 16:42:04 deraadt Exp $ */
/* $NetBSD: disksubr.c,v 1.21 1996/05/03 19:42:03 christos Exp $ */
/*
@@ -60,12 +60,8 @@
* Returns null on success and an error string on failure.
*/
char *
-readdisklabel(dev, strat, lp, osdep, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep, int spoofonly)
{
struct dos_partition dp[NDOSPART], *dp2;
struct partition *pp;
@@ -120,7 +116,7 @@ readdisklabel(dev, strat, lp, osdep, spoofonly)
bp->b_flags = B_BUSY | B_READ;
bp->b_cylinder = part_blkno / lp->d_secpercyl;
(*strat)(bp);
-
+
/* if successful, wander through dos partition table */
if (biowait(bp)) {
msg = "dos partition I/O error";
@@ -301,10 +297,8 @@ done:
* before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, osdep)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *osdep;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *osdep)
{
int i;
struct partition *opp, *npp;
@@ -358,11 +352,8 @@ setdisklabel(olp, nlp, openmask, osdep)
* XXX cannot handle OpenBSD partitions in extended partitions!
*/
int
-writedisklabel(dev, strat, lp, osdep)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep)
{
struct dos_partition dp[NDOSPART], *dp2;
struct disklabel *dlp;
diff --git a/sys/arch/aviion/aviion/disksubr.c b/sys/arch/aviion/aviion/disksubr.c
index 625a03e3ee2..02f6b44b5d7 100644
--- a/sys/arch/aviion/aviion/disksubr.c
+++ b/sys/arch/aviion/aviion/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.23 2007/06/05 00:38:14 deraadt Exp $ */
+/* $OpenBSD: disksubr.c,v 1.24 2007/06/06 16:42:06 deraadt Exp $ */
/* $NetBSD: disksubr.c,v 1.21 1996/05/03 19:42:03 christos Exp $ */
/*
@@ -60,12 +60,8 @@
* Returns null on success and an error string on failure.
*/
char *
-readdisklabel(dev, strat, lp, osdep, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep, int spoofonly)
{
struct dos_partition dp[NDOSPART], *dp2;
struct partition *pp;
@@ -120,7 +116,7 @@ readdisklabel(dev, strat, lp, osdep, spoofonly)
bp->b_flags = B_BUSY | B_READ;
bp->b_cylinder = part_blkno / lp->d_secpercyl;
(*strat)(bp);
-
+
/* if successful, wander through dos partition table */
if (biowait(bp)) {
msg = "dos partition I/O error";
@@ -301,10 +297,8 @@ done:
* before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, osdep)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *osdep;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *osdep)
{
int i;
struct partition *opp, *npp;
@@ -358,11 +352,8 @@ setdisklabel(olp, nlp, openmask, osdep)
* XXX cannot handle OpenBSD partitions in extended partitions!
*/
int
-writedisklabel(dev, strat, lp, osdep)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep)
{
struct dos_partition dp[NDOSPART], *dp2;
struct disklabel *dlp;
diff --git a/sys/arch/hp300/hp300/disksubr.c b/sys/arch/hp300/hp300/disksubr.c
index 64f0be6fdff..b9eb0e4cd4a 100644
--- a/sys/arch/hp300/hp300/disksubr.c
+++ b/sys/arch/hp300/hp300/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.31 2007/06/05 02:38:36 krw Exp $ */
+/* $OpenBSD: disksubr.c,v 1.32 2007/06/06 16:42:06 deraadt Exp $ */
/* $NetBSD: disksubr.c,v 1.9 1997/04/01 03:12:13 scottr Exp $ */
/*
@@ -52,12 +52,8 @@
* string on failure.
*/
char *
-readdisklabel(dev, strat, lp, osdep, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep, int spoofonly)
{
struct buf *bp = NULL;
struct disklabel *dlp;
@@ -133,10 +129,8 @@ done:
* Check new disk label for sensibility before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, osdep)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *osdep;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *osdep)
{
int i;
struct partition *opp, *npp;
@@ -144,7 +138,7 @@ setdisklabel(olp, nlp, openmask, osdep)
if (nlp->d_magic != DISKMAGIC || nlp->d_magic2 != DISKMAGIC ||
dkcksum(nlp) != 0)
return (EINVAL);
- while ((i = ffs((long)openmask)) != 0) {
+ while ((i = ffs(openmask)) != 0) {
i--;
openmask &= ~(1 << i);
if (nlp->d_npartitions <= i)
@@ -174,11 +168,8 @@ setdisklabel(olp, nlp, openmask, osdep)
* Write disk label back to device after modification.
*/
int
-writedisklabel(dev, strat, lp, osdep)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep)
{
struct buf *bp;
struct disklabel *dlp;
@@ -260,7 +251,7 @@ bounds_check_with_label(struct buf *bp, struct disklabel *lp,
/* Otherwise, truncate request. */
bp->b_bcount = sz << DEV_BSHIFT;
}
-
+
/* Overwriting disk label? */
if (bp->b_blkno + blockpersec(DL_GETPOFFSET(p), lp) <= labelsector &&
(bp->b_flags & B_READ) == 0 && !wlabel) {
diff --git a/sys/arch/hppa/hppa/disksubr.c b/sys/arch/hppa/hppa/disksubr.c
index 09711c3afa4..75d0aafe7d5 100644
--- a/sys/arch/hppa/hppa/disksubr.c
+++ b/sys/arch/hppa/hppa/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.53 2007/06/05 00:38:15 deraadt Exp $ */
+/* $OpenBSD: disksubr.c,v 1.54 2007/06/06 16:42:06 deraadt Exp $ */
/*
* Copyright (c) 1999 Michael Shalayeff
@@ -61,12 +61,8 @@ char *readliflabel(struct buf *, void (*)(struct buf *),
* Try to read a standard BSD disklabel at a certain sector.
*/
char *
-readbsdlabel(bp, strat, cyl, sec, off, lp, spoofonly)
- struct buf *bp;
- void (*strat)(struct buf *);
- int cyl, sec, off;
- struct disklabel *lp;
- int spoofonly;
+readbsdlabel(struct buf *bp, void (*strat)(struct buf *),
+ int cyl, int sec, int off, struct disklabel *lp, int spoofonly)
{
struct disklabel *dlp;
char *msg = NULL;
@@ -128,12 +124,8 @@ readbsdlabel(bp, strat, cyl, sec, off, lp, spoofonly)
* Returns null on success and an error string on failure.
*/
char *
-readdisklabel(dev, strat, lp, osdep, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep, int spoofonly)
{
struct buf *bp = NULL;
char *msg = "no disk label";
@@ -211,14 +203,9 @@ done:
* MBR is valid.
*/
char *
-readdoslabel(bp, strat, lp, osdep, partoffp, cylp, spoofonly)
- struct buf *bp;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int *partoffp;
- int *cylp;
- int spoofonly;
+readdoslabel(struct buf *bp, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep,
+ int *partoffp, int *cylp, int spoofonly)
{
struct dos_partition dp[NDOSPART], *dp2;
struct partition *pp;
@@ -402,14 +389,9 @@ notfat:
}
char *
-readliflabel (bp, strat, lp, osdep, partoffp, cylp, spoofonly)
- struct buf *bp;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int *partoffp;
- int *cylp;
- int spoofonly;
+readliflabel(struct buf *bp, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep,
+ int *partoffp, int *cylp, int spoofonly)
{
int fsoff;
@@ -568,10 +550,8 @@ readliflabel (bp, strat, lp, osdep, partoffp, cylp, spoofonly)
* before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, osdep)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *osdep;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *osdep)
{
int i;
struct partition *opp, *npp;
@@ -601,7 +581,7 @@ setdisklabel(olp, nlp, openmask, osdep)
/* XXX missing check if other dos partitions will be overwritten */
while (openmask != 0) {
- i = ffs((long)openmask) - 1;
+ i = ffs(openmask) - 1;
openmask &= ~(1 << i);
if (nlp->d_npartitions <= i)
return (EBUSY);
@@ -631,11 +611,8 @@ setdisklabel(olp, nlp, openmask, osdep)
* Write disk label back to device after modification.
*/
int
-writedisklabel(dev, strat, lp, osdep)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep)
{
char *msg = "no disk label";
struct buf *bp;
diff --git a/sys/arch/hppa64/hppa64/disksubr.c b/sys/arch/hppa64/hppa64/disksubr.c
index d5bb99c2c7f..37f6050133c 100644
--- a/sys/arch/hppa64/hppa64/disksubr.c
+++ b/sys/arch/hppa64/hppa64/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.36 2007/06/05 00:38:15 deraadt Exp $ */
+/* $OpenBSD: disksubr.c,v 1.37 2007/06/06 16:42:06 deraadt Exp $ */
/*
* Copyright (c) 1999 Michael Shalayeff
@@ -61,12 +61,8 @@ char *readliflabel(struct buf *, void (*)(struct buf *),
* Try to read a standard BSD disklabel at a certain sector.
*/
char *
-readbsdlabel(bp, strat, cyl, sec, off, lp, spoofonly)
- struct buf *bp;
- void (*strat)(struct buf *);
- int cyl, sec, off;
- struct disklabel *lp;
- int spoofonly;
+readbsdlabel(struct buf *bp, void (*strat)(struct buf *),
+ int cyl, int sec, int off, struct disklabel *lp, int spoofonly)
{
struct disklabel *dlp;
char *msg = NULL;
@@ -128,12 +124,8 @@ readbsdlabel(bp, strat, cyl, sec, off, lp, spoofonly)
* Returns null on success and an error string on failure.
*/
char *
-readdisklabel(dev, strat, lp, osdep, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep, int spoofonly)
{
struct buf *bp = NULL;
char *msg = "no disk label";
@@ -183,6 +175,10 @@ readdisklabel(dev, strat, lp, osdep, spoofonly)
if (msg && iso_disklabelspoof(dev, strat, lp) == 0)
msg = NULL;
#endif
+#if defined(UDF)
+ if (msg && udf_disklabelspoof(dev, strat, lp) == 0)
+ msg = NULL;
+#endif
/* If there was an error, still provide a decent fake one. */
if (msg)
@@ -207,14 +203,9 @@ done:
* MBR is valid.
*/
char *
-readdoslabel(bp, strat, lp, osdep, partoffp, cylp, spoofonly)
- struct buf *bp;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int *partoffp;
- int *cylp;
- int spoofonly;
+readdoslabel(struct buf *bp, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep,
+ int *partoffp, int *cylp, int spoofonly)
{
struct dos_partition dp[NDOSPART], *dp2;
struct partition *pp;
@@ -398,14 +389,9 @@ notfat:
}
char *
-readliflabel (bp, strat, lp, osdep, partoffp, cylp, spoofonly)
- struct buf *bp;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int *partoffp;
- int *cylp;
- int spoofonly;
+readliflabel(struct buf *bp, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep,
+ int *partoffp, int *cylp, int spoofonly)
{
int fsoff;
@@ -564,10 +550,8 @@ readliflabel (bp, strat, lp, osdep, partoffp, cylp, spoofonly)
* before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, osdep)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *osdep;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *osdep)
{
int i;
struct partition *opp, *npp;
@@ -597,7 +581,7 @@ setdisklabel(olp, nlp, openmask, osdep)
/* XXX missing check if other dos partitions will be overwritten */
while (openmask != 0) {
- i = ffs((long)openmask) - 1;
+ i = ffs(openmask) - 1;
openmask &= ~(1 << i);
if (nlp->d_npartitions <= i)
return (EBUSY);
@@ -627,11 +611,8 @@ setdisklabel(olp, nlp, openmask, osdep)
* Write disk label back to device after modification.
*/
int
-writedisklabel(dev, strat, lp, osdep)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep)
{
char *msg = "no disk label";
struct buf *bp;
@@ -652,7 +633,7 @@ writedisklabel(dev, strat, lp, osdep)
dl = *lp;
msg = readliflabel(bp, strat, &dl, &cdl, &partoff, &cyl, 0);
labeloffset = HPPA_LABELOFFSET;
- if (msg) {
+ if (msg) {
dl = *lp;
msg = readdoslabel(bp, strat, &dl, &cdl, &partoff, &cyl, 0);
labeloffset = I386_LABELOFFSET;
diff --git a/sys/arch/i386/i386/disksubr.c b/sys/arch/i386/i386/disksubr.c
index e233087352a..ef955d27a98 100644
--- a/sys/arch/i386/i386/disksubr.c
+++ b/sys/arch/i386/i386/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.77 2007/06/05 00:38:15 deraadt Exp $ */
+/* $OpenBSD: disksubr.c,v 1.78 2007/06/06 16:42:06 deraadt Exp $ */
/* $NetBSD: disksubr.c,v 1.21 1996/05/03 19:42:03 christos Exp $ */
/*
@@ -66,8 +66,8 @@
bios_diskinfo_t *bios_getdiskinfo(dev_t dev);
char *
-readdisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp,
- struct cpu_disklabel *osdep, int spoofonly)
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep, int spoofonly)
{
struct dos_partition dp[NDOSPART], *dp2;
struct partition *pp;
@@ -216,9 +216,9 @@ donot:
case DOSPTYP_FAT12:
case DOSPTYP_FAT16S:
case DOSPTYP_FAT16B:
- case DOSPTYP_FAT32:
case DOSPTYP_FAT32L:
case DOSPTYP_FAT16L:
+ case DOSPTYP_FAT32:
pp->p_fstype = FS_MSDOS;
n++;
break;
@@ -325,8 +325,8 @@ done:
* before setting it.
*/
int
-setdisklabel(struct disklabel *olp, struct disklabel *nlp, u_long openmask,
- struct cpu_disklabel *osdep)
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *osdep)
{
int i;
struct partition *opp, *npp;
@@ -380,8 +380,8 @@ setdisklabel(struct disklabel *olp, struct disklabel *nlp, u_long openmask,
* XXX cannot handle OpenBSD partitions in extended partitions!
*/
int
-writedisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp,
- struct cpu_disklabel *osdep)
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep)
{
struct dos_partition dp[NDOSPART], *dp2;
struct disklabel *dlp;
diff --git a/sys/arch/landisk/landisk/disksubr.c b/sys/arch/landisk/landisk/disksubr.c
index 9e88527ccee..74f6161b793 100644
--- a/sys/arch/landisk/landisk/disksubr.c
+++ b/sys/arch/landisk/landisk/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.20 2007/06/05 00:38:16 deraadt Exp $ */
+/* $OpenBSD: disksubr.c,v 1.21 2007/06/06 16:42:06 deraadt Exp $ */
/* $NetBSD: disksubr.c,v 1.21 1996/05/03 19:42:03 christos Exp $ */
/*
@@ -60,12 +60,8 @@
* Returns null on success and an error string on failure.
*/
char *
-readdisklabel(dev, strat, lp, osdep, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep, int spoofonly)
{
struct dos_partition dp[NDOSPART], *dp2;
struct partition *pp;
@@ -90,7 +86,7 @@ readdisklabel(dev, strat, lp, osdep, spoofonly)
lp->d_npartitions = RAW_PART + 1;
for (i = 0; i < RAW_PART; i++) {
DL_SETPSIZE(&lp->d_partitions[i], 0);
- DL_SETPSIZE(&lp->d_partitions[i], 0);
+ DL_SETPOFFSET(&lp->d_partitions[i], 0);
}
if (DL_GETPSIZE(&lp->d_partitions[i]) == 0)
DL_SETPSIZE(&lp->d_partitions[i], DL_GETDSIZE(lp));
@@ -120,7 +116,7 @@ readdisklabel(dev, strat, lp, osdep, spoofonly)
bp->b_flags = B_BUSY | B_READ;
bp->b_cylinder = part_blkno / lp->d_secpercyl;
(*strat)(bp);
-
+
/* if successful, wander through dos partition table */
if (biowait(bp)) {
msg = "dos partition I/O error";
@@ -301,10 +297,8 @@ done:
* before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, osdep)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *osdep;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *osdep)
{
int i;
struct partition *opp, *npp;
@@ -358,11 +352,8 @@ setdisklabel(olp, nlp, openmask, osdep)
* XXX cannot handle OpenBSD partitions in extended partitions!
*/
int
-writedisklabel(dev, strat, lp, osdep)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep)
{
struct dos_partition dp[NDOSPART], *dp2;
struct disklabel *dlp;
diff --git a/sys/arch/luna88k/luna88k/disksubr.c b/sys/arch/luna88k/luna88k/disksubr.c
index 8ff3bb18ac7..298c516f1dd 100644
--- a/sys/arch/luna88k/luna88k/disksubr.c
+++ b/sys/arch/luna88k/luna88k/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.16 2007/06/05 02:38:36 krw Exp $ */
+/* $OpenBSD: disksubr.c,v 1.17 2007/06/06 16:42:06 deraadt Exp $ */
/* $NetBSD: disksubr.c,v 1.12 2002/02/19 17:09:44 wiz Exp $ */
/*
@@ -37,7 +37,7 @@
*
* Credits:
* This file was based mostly on the i386/disksubr.c file:
- * @(#)ufs_disksubr.c 7.16 (Berkeley) 5/4/91
+ * @(#)ufs_disksubr.c 7.16 (Berkeley) 5/4/91
* The functions: disklabel_sun_to_bsd, disklabel_bsd_to_sun
* were originally taken from arch/sparc/scsi/sun_disklabel.c
* (which was written by Theo de Raadt) and then substantially
@@ -112,12 +112,8 @@ int disklabel_bsd_to_om(struct disklabel *, char *);
* Returns null on success and an error string on failure.
*/
char *
-readdisklabel(dev, strat, lp, clp, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *clp;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *clp, int spoofonly)
{
struct buf *bp = NULL;
struct disklabel *dlp;
@@ -186,7 +182,7 @@ readdisklabel(dev, strat, lp, clp, spoofonly)
dlp = (struct disklabel *)(clp->cd_block + LABELOFFSET);
if (dlp->d_magic == DISKMAGIC && dlp->d_magic2 == DISKMAGIC) {
if (dkcksum(dlp) == 0) {
- *lp = *dlp; /* struct assignment */
+ *lp = *dlp; /* struct assignment */
msg = NULL;
goto done;
}
@@ -218,10 +214,8 @@ done:
* before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, clp)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *clp;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *clp)
{
struct partition *opp, *npp;
int i;
@@ -265,11 +259,8 @@ setdisklabel(olp, nlp, openmask, clp)
* Current label is already in clp->cd_block[]
*/
int
-writedisklabel(dev, strat, lp, clp)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *clp;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *clp)
{
struct buf *bp;
struct disklabel *dlp;
@@ -277,7 +268,7 @@ writedisklabel(dev, strat, lp, clp)
/* implant OpenBSD disklabel at LABELOFFSET. */
dlp = (struct disklabel *)(clp->cd_block + LABELOFFSET);
- *dlp = *lp; /* struct assignment */
+ *dlp = *lp; /* struct assignment */
error = disklabel_bsd_to_om(lp, clp->cd_block);
if (error)
@@ -292,7 +283,7 @@ writedisklabel(dev, strat, lp, clp)
bp->b_blkno = LABELSECTOR;
bp->b_cylinder = 0;
bp->b_bcount = lp->d_secsize;
- bp->b_flags |= B_WRITE;
+ bp->b_flags = B_WRITE;
(*strat)(bp);
error = biowait(bp);
brelse(bp);
@@ -382,9 +373,7 @@ sun_fstypes[8] = {
* The BSD label is cleared out before this is called.
*/
char *
-disklabel_om_to_bsd(cp, lp)
- char *cp;
- struct disklabel *lp;
+disklabel_om_to_bsd(char *cp, struct disklabel *lp)
{
struct sun_disklabel *sl;
struct partition *npp;
@@ -481,9 +470,7 @@ disklabel_om_to_bsd(cp, lp)
* Returns zero or error code.
*/
int
-disklabel_bsd_to_om(lp, cp)
- struct disklabel *lp;
- char *cp;
+disklabel_bsd_to_om(struct disklabel *lp, char *cp)
{
struct sun_disklabel *sl;
struct partition *npp;
diff --git a/sys/arch/mac68k/mac68k/disksubr.c b/sys/arch/mac68k/mac68k/disksubr.c
index a1b6cb6a606..976e0cd8d94 100644
--- a/sys/arch/mac68k/mac68k/disksubr.c
+++ b/sys/arch/mac68k/mac68k/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.38 2007/06/05 00:38:16 deraadt Exp $ */
+/* $OpenBSD: disksubr.c,v 1.39 2007/06/06 16:42:06 deraadt Exp $ */
/* $NetBSD: disksubr.c,v 1.22 1997/11/26 04:18:20 briggs Exp $ */
/*
@@ -104,9 +104,8 @@ char *read_mac_label(char *, struct disklabel *, struct cpu_disklabel *);
* Find an entry in the disk label that is unused and return it
* or -1 if no entry
*/
-int
-getFreeLabelEntry(lp)
- struct disklabel *lp;
+int
+getFreeLabelEntry(struct disklabel *lp)
{
int i;
@@ -122,9 +121,8 @@ getFreeLabelEntry(lp)
/*
* figure out what the type of the given part is and return it
*/
-int
-whichType(part)
- struct partmapentry *part;
+int
+whichType(struct partmapentry *part)
{
struct blockzeroblock *bzb;
@@ -176,10 +174,7 @@ whichType(part)
* of part types.
*/
int
-fixPartTable(partTable, size, base)
- struct partmapentry *partTable;
- long size;
- char *base;
+fixPartTable(struct partmapentry *partTable, long size, char *base)
{
int i;
struct partmapentry *pmap;
@@ -207,7 +202,7 @@ fixPartTable(partTable, size, base)
return NUM_PARTS_PROBED;
}
-void
+void
setPart(struct partmapentry *part, struct disklabel *lp, int fstype, int slot)
{
DL_SETPSIZE(&lp->d_partitions[slot], part->pmPartBlkCnt);
@@ -216,13 +211,9 @@ setPart(struct partmapentry *part, struct disklabel *lp, int fstype, int slot)
part->pmPartType[0] = '\0';
}
-int
-getNamedType(part, num_parts, lp, type, alt, maxslot)
- struct partmapentry *part;
- int num_parts;
- struct disklabel *lp;
- int type, alt;
- int *maxslot;
+int
+getNamedType(struct partmapentry *part, int num_parts, struct disklabel *lp,
+ int type, int alt, int *maxslot)
{
struct blockzeroblock *bzb;
int i;
@@ -274,7 +265,7 @@ skip:
* A: root
* B: Swap
* C: Whole disk
- *
+ *
* AKB -- I added to Mike's original algorithm by searching for a bzbCluster
* of zero for root, first. This allows A/UX to live on cluster 1 and
* NetBSD to live on cluster 0--regardless of the actual order on the
@@ -349,7 +340,7 @@ read_mac_label(char *dlbuf, struct disklabel *lp, struct cpu_disklabel *osdep)
* routine. The label must be partly set up before this: secpercyl and
* anything required in the strategy routine (e.g., sector size) must be
* filled in before calling us. Returns null on success and an error
- * string on failure.
+ * string on failure.
*
* This will read sector zero. If this contains what looks like a valid
* Macintosh boot sector, we attempt to fill in the disklabel structure.
@@ -357,12 +348,8 @@ read_mac_label(char *dlbuf, struct disklabel *lp, struct cpu_disklabel *osdep)
* then we assume that it's a real disklabel and return it.
*/
char *
-readdisklabel(dev, strat, lp, osdep, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep, int spoofonly)
{
struct buf *bp = NULL;
char *msg = NULL;
@@ -444,10 +431,8 @@ done:
* Check new disk label for sensibility before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, osdep)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *osdep;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *osdep)
{
int i;
struct partition *opp, *npp;
@@ -467,7 +452,7 @@ setdisklabel(olp, nlp, openmask, osdep)
dkcksum(nlp) != 0)
return (EINVAL);
- while ((i = ffs((long)openmask)) != 0) {
+ while ((i = ffs(openmask)) != 0) {
i--;
openmask &= ~(1 << i);
if (nlp->d_npartitions <= i)
@@ -500,11 +485,8 @@ setdisklabel(olp, nlp, openmask, osdep)
* refuse to write a disklabel if the media has a MacOS signature.
*/
int
-writedisklabel(dev, strat, lp, osdep)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep)
{
struct buf *bp;
struct disklabel *dlp;
@@ -540,7 +522,7 @@ writedisklabel(dev, strat, lp, osdep)
error = EINVAL;
goto done;
}
-
+
dlp = (struct disklabel *)(bp->b_data + LABELOFFSET);
bcopy(lp, dlp, sizeof(struct disklabel));
bp->b_flags = B_BUSY | B_WRITE;
diff --git a/sys/arch/macppc/macppc/disksubr.c b/sys/arch/macppc/macppc/disksubr.c
index 92320bff4e8..c4792457d20 100644
--- a/sys/arch/macppc/macppc/disksubr.c
+++ b/sys/arch/macppc/macppc/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.42 2007/06/05 00:38:17 deraadt Exp $ */
+/* $OpenBSD: disksubr.c,v 1.43 2007/06/06 16:42:06 deraadt Exp $ */
/* $NetBSD: disksubr.c,v 1.21 1996/05/03 19:42:03 christos Exp $ */
/*
@@ -350,8 +350,7 @@ notfat:
found_disklabel:
for (dlp = (struct disklabel *)bp->b_data;
- dlp <= (struct disklabel *)(bp->b_data +
- lp->d_secsize - sizeof(*dlp));
+ dlp <= (struct disklabel *)(bp->b_data + lp->d_secsize - sizeof(*dlp));
dlp = (struct disklabel *)((char *)dlp + sizeof(long))) {
if (dlp->d_magic != DISKMAGIC || dlp->d_magic2 != DISKMAGIC) {
if (msg == NULL)
@@ -389,8 +388,8 @@ done:
* before setting it.
*/
int
-setdisklabel(struct disklabel *olp, struct disklabel *nlp, u_long openmask,
- struct cpu_disklabel *osdep)
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *osdep)
{
int i;
struct partition *opp, *npp;
@@ -444,8 +443,8 @@ setdisklabel(struct disklabel *olp, struct disklabel *nlp, u_long openmask,
* XXX cannot handle OpenBSD partitions in extended partitions!
*/
int
-writedisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp,
- struct cpu_disklabel *osdep)
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep)
{
struct dos_partition dp[NDOSPART], *dp2;
struct disklabel *dlp;
@@ -481,6 +480,7 @@ writedisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp,
/* do dos partitions in the process of getting disklabel? */
dospartoff = 0;
cyl = LABELSECTOR / lp->d_secpercyl;
+
/* read master boot record */
bp->b_blkno = DOSBBSECTOR;
bp->b_bcount = lp->d_secsize;
@@ -495,8 +495,7 @@ writedisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp,
bcopy(bp->b_data + DOSPARTOFF, dp, sizeof(dp));
for (dp2=dp, i=0; i < NDOSPART && ourpart == -1; i++, dp2++)
- if (letoh32(dp2->dp_size) && dp2->dp_typ ==
- DOSPTYP_OPENBSD)
+ if (letoh32(dp2->dp_size) && dp2->dp_typ == DOSPTYP_OPENBSD)
ourpart = i;
if (ourpart != -1) {
@@ -521,8 +520,7 @@ writedisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp,
if ((error = biowait(bp)) != 0)
goto done;
for (dlp = (struct disklabel *)bp->b_data;
- dlp <= (struct disklabel *)(bp->b_data + lp->d_secsize -
- sizeof(*dlp));
+ dlp <= (struct disklabel *)(bp->b_data + lp->d_secsize - sizeof(*dlp));
dlp = (struct disklabel *)((char *)dlp + sizeof(long))) {
if (dlp->d_magic == DISKMAGIC && dlp->d_magic2 == DISKMAGIC &&
dkcksum(dlp) == 0) {
diff --git a/sys/arch/mips64/mips64/disksubr.c b/sys/arch/mips64/mips64/disksubr.c
index e24069bb02b..dd82015753a 100644
--- a/sys/arch/mips64/mips64/disksubr.c
+++ b/sys/arch/mips64/mips64/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.42 2007/06/05 00:38:17 deraadt Exp $ */
+/* $OpenBSD: disksubr.c,v 1.43 2007/06/06 16:42:06 deraadt Exp $ */
/*
* Copyright (c) 1999 Michael Shalayeff
@@ -62,12 +62,9 @@ void map_sgi_label(struct disklabel *, struct sgilabel *);
* Try to read a standard BSD disklabel at a certain sector.
*/
char *
-readbsdlabel(bp, strat, cyl, sec, off, lp, spoofonly)
- struct buf *bp;
- void (*strat)(struct buf *);
- int cyl, sec, off;
- struct disklabel *lp;
- int spoofonly;
+readbsdlabel(struct buf *bp, void (*strat)(struct buf *),
+ int cyl, int sec, int off, struct disklabel *lp,
+ int spoofonly;
{
struct disklabel *dlp;
char *msg = NULL;
@@ -129,12 +126,8 @@ readbsdlabel(bp, strat, cyl, sec, off, lp, spoofonly)
* Returns null on success and an error string on failure.
*/
char *
-readdisklabel(dev, strat, lp, osdep, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep, int spoofonly)
{
struct buf *bp = NULL;
char *msg = "no disk label";
@@ -169,7 +162,7 @@ readdisklabel(dev, strat, lp, osdep, spoofonly)
/* Fallback alternative XXX valid lp returned? */
fallbacklabel = *lp;
*lp = minilabel;
- }
+ }
if (msg) {
msg = readdoslabel(bp, strat, lp, osdep, 0, 0, spoofonly);
if (msg) {
@@ -406,7 +399,7 @@ notfat:
}
/*
- *
+ *
*/
char *
readsgilabel(bp, strat, lp, osdep, partoffp, cylp, spoofonly)
@@ -453,7 +446,7 @@ readsgilabel(bp, strat, lp, osdep, partoffp, cylp, spoofonly)
i = sizeof(struct sgilabel) / sizeof(int);
while(i--)
cs += *p++;
- if (cs != 0)
+ if (cs != 0)
return "sgilabel checksum error";
/* Set up partitions i-l if there is no BSD label. */
@@ -516,10 +509,8 @@ static struct {int m; int b;} maptab[] = {
* before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, osdep)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *osdep;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *osdep)
{
int i;
struct partition *opp, *npp;
@@ -549,7 +540,7 @@ setdisklabel(olp, nlp, openmask, osdep)
/* XXX missing check if other dos partitions will be overwritten */
while (openmask != 0) {
- i = ffs((long)openmask) - 1;
+ i = ffs(openmask) - 1;
openmask &= ~(1 << i);
if (nlp->d_npartitions <= i)
return (EBUSY);
@@ -579,11 +570,8 @@ setdisklabel(olp, nlp, openmask, osdep)
* Write disk label back to device after modification.
*/
int
-writedisklabel(dev, strat, lp, osdep)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep)
{
char *msg = "no disk label";
struct buf *bp;
diff --git a/sys/arch/mvme68k/mvme68k/disksubr.c b/sys/arch/mvme68k/mvme68k/disksubr.c
index 481689a60aa..2f11d83e071 100644
--- a/sys/arch/mvme68k/mvme68k/disksubr.c
+++ b/sys/arch/mvme68k/mvme68k/disksubr.c
@@ -1,9 +1,9 @@
-/* $OpenBSD: disksubr.c,v 1.44 2007/06/05 02:38:37 krw Exp $ */
+/* $OpenBSD: disksubr.c,v 1.45 2007/06/06 16:42:06 deraadt Exp $ */
/*
* Copyright (c) 1998 Steve Murphree, Jr.
* Copyright (c) 1995 Dale Rahn.
* All rights reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
@@ -34,10 +34,8 @@
#include <sys/disklabel.h>
#include <sys/disk.h>
-static void bsdtocpulabel(struct disklabel *lp,
- struct cpu_disklabel *clp);
-static void cputobsdlabel(struct disklabel *lp,
- struct cpu_disklabel *clp);
+void bsdtocpulabel(struct disklabel *, struct cpu_disklabel *);
+void cputobsdlabel(struct disklabel *, struct cpu_disklabel *);
/*
* Attempt to read a disk label from a device
@@ -45,16 +43,12 @@ static void cputobsdlabel(struct disklabel *lp,
* The label must be partly set up before this:
* secpercyl and anything required in the strategy routine
* (e.g., sector size) must be filled in before calling us.
- * Returns null on success and an error string on failure.
+ * Returns NULL on success and an error string on failure.
*/
char *
-readdisklabel(dev, strat, lp, clp, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *clp;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *clp, int spoofonly)
{
struct buf *bp = NULL;
char *msg = NULL;
@@ -141,10 +135,8 @@ done:
* before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, clp)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *clp;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *clp)
{
int i;
struct partition *opp, *npp;
@@ -164,7 +156,7 @@ setdisklabel(olp, nlp, openmask, clp)
dkcksum(nlp) != 0)
return (EINVAL);
- while ((i = ffs((long)openmask)) != 0) {
+ while ((i = ffs(openmask)) != 0) {
i--;
openmask &= ~(1 << i);
if (nlp->d_npartitions <= i)
@@ -185,8 +177,8 @@ setdisklabel(olp, nlp, openmask, clp)
}
}
- nlp->d_checksum = 0;
- nlp->d_checksum = dkcksum(nlp);
+ nlp->d_checksum = 0;
+ nlp->d_checksum = dkcksum(nlp);
*olp = *nlp;
return (0);
}
@@ -195,11 +187,8 @@ setdisklabel(olp, nlp, openmask, clp)
* Write disk label back to device after modification.
*/
int
-writedisklabel(dev, strat, lp, clp)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *clp;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *clp)
{
struct buf *bp;
int error;
@@ -250,10 +239,9 @@ writedisklabel(dev, strat, lp, clp)
bp->b_flags = B_INVAL | B_AGE | B_READ;
brelse(bp);
}
- return (error);
+ return (error);
}
-
int
bounds_check_with_label(struct buf *bp, struct disklabel *lp,
struct cpu_disklabel *osdep, int wlabel)
@@ -309,10 +297,8 @@ bad:
}
-static void
-bsdtocpulabel(lp, clp)
- struct disklabel *lp;
- struct cpu_disklabel *clp;
+void
+bsdtocpulabel(struct disklabel *lp, struct cpu_disklabel *clp)
{
char *tmot = "MOTOROLA";
char *id = "M68K";
@@ -382,86 +368,8 @@ bsdtocpulabel(lp, clp)
}
}
-struct cpu_disklabel_old {
- /* VID */
- u_char vid_id[4];
- u_char vid_0[16];
- u_int vid_oss;
- u_short vid_osl;
- u_char vid_1[4];
- u_short vid_osa_u;
- u_short vid_osa_l;
- u_char vid_2[2];
- u_short partitions;
- u_char vid_vd[16];
- u_long bbsize;
- u_long magic1; /* 4 */
- u_short type; /* 2 */
- u_short subtype; /* 2 */
- u_char packname[16]; /* 16 */
- u_long flags; /* 4 */
- u_long drivedata[5]; /* 4 */
- u_long spare[5]; /* 4 */
- u_short checksum; /* 2 */
-
- u_long secpercyl; /* 4 */
- u_long secperunit; /* 4 */
- u_long headswitch; /* 4 */
-
- u_char vid_3[4];
- u_int vid_cas;
- u_char vid_cal;
- u_char vid_4_0[3];
- u_char vid_4[64];
- u_char vid_4_1[28];
- u_long sbsize;
- u_char vid_mot[8];
-
- /* CFG */
- u_char cfg_0[4];
- u_short cfg_atm;
- u_short cfg_prm;
- u_short cfg_atw;
- u_short cfg_rec;
-
- u_short sparespertrack;
- u_short sparespercyl;
- u_long acylinders;
- u_short rpm;
- u_short cylskew;
-
- u_char cfg_spt;
- u_char cfg_hds;
- u_short cfg_trk;
- u_char cfg_ilv;
- u_char cfg_sof;
- u_short cfg_psm;
- u_short cfg_shd;
- u_char cfg_2[2];
- u_short cfg_pcom;
- u_char cfg_3;
- u_char cfg_ssr;
- u_short cfg_rwcc;
- u_short cfg_ecc;
- u_short cfg_eatm;
- u_short cfg_eprm;
- u_short cfg_eatw;
- u_char cfg_gpb1;
- u_char cfg_gpb2;
- u_char cfg_gpb3;
- u_char cfg_gpb4;
- u_char cfg_ssc;
- u_char cfg_runit;
- u_short cfg_rsvc1;
- u_short cfg_rsvc2;
- u_long magic2;
- u_char cfg_4[192];
-};
-
-static void
-cputobsdlabel(lp, clp)
- struct disklabel *lp;
- struct cpu_disklabel *clp;
+void
+cputobsdlabel(struct disklabel *lp, struct cpu_disklabel *clp)
{
int i;
diff --git a/sys/arch/mvme88k/mvme88k/disksubr.c b/sys/arch/mvme88k/mvme88k/disksubr.c
index 0432df2d2c5..9a2a258aa4c 100644
--- a/sys/arch/mvme88k/mvme88k/disksubr.c
+++ b/sys/arch/mvme88k/mvme88k/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.40 2007/06/05 02:38:37 krw Exp $ */
+/* $OpenBSD: disksubr.c,v 1.41 2007/06/06 16:42:06 deraadt Exp $ */
/*
* Copyright (c) 1998 Steve Murphree, Jr.
* Copyright (c) 1995 Dale Rahn.
@@ -47,12 +47,8 @@ void cputobsdlabel(struct disklabel *, struct cpu_disklabel *);
*/
char *
-readdisklabel(dev, strat, lp, clp, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *clp;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *clp, int spoofonly)
{
struct buf *bp = NULL;
char *msg = NULL;
@@ -112,6 +108,7 @@ readdisklabel(dev, strat, lp, clp, spoofonly)
goto done;
}
#endif
+
if (clp->magic1 != DISKMAGIC || clp->magic2 != DISKMAGIC) {
msg = "no disk label";
goto done;
@@ -138,10 +135,8 @@ done:
* before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, clp)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *clp;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *clp)
{
int i;
struct partition *opp, *npp;
@@ -161,7 +156,7 @@ setdisklabel(olp, nlp, openmask, clp)
dkcksum(nlp) != 0)
return (EINVAL);
- while ((i = ffs((long)openmask)) != 0) {
+ while ((i = ffs(openmask)) != 0) {
i--;
openmask &= ~(1 << i);
if (nlp->d_npartitions <= i)
@@ -182,8 +177,8 @@ setdisklabel(olp, nlp, openmask, clp)
}
}
- nlp->d_checksum = 0;
- nlp->d_checksum = dkcksum(nlp);
+ nlp->d_checksum = 0;
+ nlp->d_checksum = dkcksum(nlp);
*olp = *nlp;
return (0);
}
@@ -192,11 +187,8 @@ setdisklabel(olp, nlp, openmask, clp)
* Write disk label back to device after modification.
*/
int
-writedisklabel(dev, strat, lp, clp)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *clp;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *clp)
{
struct buf *bp;
int error;
@@ -250,7 +242,6 @@ writedisklabel(dev, strat, lp, clp)
return (error);
}
-
int
bounds_check_with_label(struct buf *bp, struct disklabel *lp,
struct cpu_disklabel *osdep, int wlabel)
@@ -307,9 +298,7 @@ bad:
void
-bsdtocpulabel(lp, clp)
- struct disklabel *lp;
- struct cpu_disklabel *clp;
+bsdtocpulabel(struct disklabel *lp, struct cpu_disklabel *clp)
{
char *tmot = "MOTOROLA";
char *id = "M88K";
@@ -380,9 +369,7 @@ bsdtocpulabel(lp, clp)
}
void
-cputobsdlabel(lp, clp)
- struct disklabel *lp;
- struct cpu_disklabel *clp;
+cputobsdlabel(struct disklabel *lp, struct cpu_disklabel *clp)
{
int i;
diff --git a/sys/arch/mvmeppc/mvmeppc/disksubr.c b/sys/arch/mvmeppc/mvmeppc/disksubr.c
index f7498b32ebd..bef2fa99d68 100644
--- a/sys/arch/mvmeppc/mvmeppc/disksubr.c
+++ b/sys/arch/mvmeppc/mvmeppc/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.38 2007/06/05 00:38:17 deraadt Exp $ */
+/* $OpenBSD: disksubr.c,v 1.39 2007/06/06 16:42:06 deraadt Exp $ */
/* $NetBSD: disksubr.c,v 1.21 1996/05/03 19:42:03 christos Exp $ */
/*
@@ -63,12 +63,8 @@
* Returns null on success and an error string on failure.
*/
char *
-readdisklabel(dev, strat, lp, osdep, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep, int spoofonly)
{
struct dos_partition dp[NDOSPART], *dp2;
struct partition *pp;
@@ -123,7 +119,7 @@ readdisklabel(dev, strat, lp, osdep, spoofonly)
bp->b_flags = B_BUSY | B_READ;
bp->b_cylinder = part_blkno / lp->d_secpercyl;
(*strat)(bp);
-
+
/* if successful, wander through dos partition table */
if (biowait(bp)) {
msg = "dos partition I/O error";
@@ -304,10 +300,8 @@ done:
* before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, osdep)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *osdep;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *osdep)
{
int i;
struct partition *opp, *npp;
@@ -361,11 +355,8 @@ setdisklabel(olp, nlp, openmask, osdep)
* XXX cannot handle OpenBSD partitions in extended partitions!
*/
int
-writedisklabel(dev, strat, lp, osdep)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep)
{
struct dos_partition dp[NDOSPART], *dp2;
struct disklabel *dlp;
diff --git a/sys/arch/sparc/sparc/disksubr.c b/sys/arch/sparc/sparc/disksubr.c
index 52d93f284a6..23d2aade52c 100644
--- a/sys/arch/sparc/sparc/disksubr.c
+++ b/sys/arch/sparc/sparc/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.50 2007/06/05 02:38:37 krw Exp $ */
+/* $OpenBSD: disksubr.c,v 1.51 2007/06/06 16:42:06 deraadt Exp $ */
/* $NetBSD: disksubr.c,v 1.16 1996/04/28 20:25:59 thorpej Exp $ */
/*
@@ -39,22 +39,18 @@
#include <machine/cpu.h>
#include <machine/autoconf.h>
#include <dev/sun/disklabel.h>
+
#if defined(SUN4)
#include <machine/oldmon.h>
#endif
#include "cd.h"
-#if MAXPARTITIONS != 16
-#warn beware: Sun disklabel compatibility assumes MAXPARTITIONS == 16
-#endif
-
static char *disklabel_sun_to_bsd(char *, struct disklabel *);
static int disklabel_bsd_to_sun(struct disklabel *, char *);
-static __inline u_long sun_extended_sum(struct sun_disklabel *);
+static __inline u_int sun_extended_sum(struct sun_disklabel *);
#if NCD > 0
-/* XXX for comparison below. */
extern void cdstrategy(struct buf *);
#endif
@@ -71,12 +67,8 @@ extern void cdstrategy(struct buf *);
* Returns null on success and an error string on failure.
*/
char *
-readdisklabel(dev, strat, lp, clp, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *clp;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *clp, int spoofonly)
{
struct buf *bp = NULL;
struct disklabel *dlp;
@@ -108,6 +100,23 @@ readdisklabel(dev, strat, lp, clp, spoofonly)
if (spoofonly)
goto done;
+#if NCD > 0
+ if (strat == cdstrategy) {
+#if defined(CD9660)
+ if (iso_disklabelspoof(dev, strat, lp) == 0) {
+ msg = NULL;
+ goto done;
+ }
+#endif
+#if defined(UDF)
+ if (udf_disklabelspoof(dev, strat, lp) == 0) {
+ msg = NULL;
+ goto done;
+ }
+#endif
+ }
+#endif /* NCD > 0 */
+
/* obtain buffer to probe drive with */
bp = geteblk((int)lp->d_secsize);
@@ -130,32 +139,14 @@ readdisklabel(dev, strat, lp, clp, spoofonly)
goto done;
}
-#if NCD > 0
- if (strat == cdstrategy) {
-#if defined(CD9660)
- if (iso_disklabelspoof(dev, strat, lp) == 0) {
- msg = NULL;
- goto done;
- }
-#endif
-#if defined(UDF)
- if (udf_disklabelspoof(dev, strat, lp) == 0) {
- msg = NULL;
- goto done;
- }
-#endif
- }
-#endif /* NCD > 0 */
-
- /* Check for a Sun disk label (for PROM compatibility). */
- slp = (struct sun_disklabel *) clp->cd_block;
+ slp = (struct sun_disklabel *)clp->cd_block;
if (slp->sl_magic == SUN_DKMAGIC) {
msg = disklabel_sun_to_bsd(clp->cd_block, lp);
goto done;
}
/* Check for a native disk label (PROM can not boot it). */
- dlp = (struct disklabel *) (clp->cd_block + LABELOFFSET);
+ dlp = (struct disklabel *)(clp->cd_block + LABELOFFSET);
if (dlp->d_magic == DISKMAGIC) {
if (dkcksum(dlp)) {
msg = "disk label corrupted";
@@ -195,10 +186,8 @@ done:
* before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, clp)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *clp;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *clp)
{
int i;
struct partition *opp, *npp;
@@ -218,7 +207,7 @@ setdisklabel(olp, nlp, openmask, clp)
dkcksum(nlp) != 0)
return (EINVAL);
- while ((i = ffs((long)openmask)) != 0) {
+ while ((i = ffs(openmask)) != 0) {
i--;
openmask &= ~(1 << i);
if (nlp->d_npartitions <= i)
@@ -239,11 +228,8 @@ setdisklabel(olp, nlp, openmask, clp)
* Current label is already in clp->cd_block[]
*/
int
-writedisklabel(dev, strat, lp, clp)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *clp;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *clp)
{
struct buf *bp;
int error;
@@ -364,23 +350,20 @@ sun_fstypes[16] = {
* Given a struct sun_disklabel, assume it has an extended partition
* table and compute the correct value for sl_xpsum.
*/
-static __inline u_long
-sun_extended_sum(sl)
- struct sun_disklabel *sl;
+static __inline u_int
+sun_extended_sum(struct sun_disklabel *sl)
{
- u_long lsum;
- u_long *xp;
- u_long *ep;
+ u_int sum, *xp, *ep;
- xp = (u_long *) &sl->sl_xpmag;
- ep = (u_long *) &sl->sl_xxx1[0];
+ xp = (u_int *)&sl->sl_xpmag;
+ ep = (u_int *)&sl->sl_xxx1[0];
- lsum = 0;
+ sum = 0;
for (; xp < ep; xp++)
- lsum += *xp;
- return(lsum);
+ sum += *xp;
+ return (sum);
}
-
+
/*
* Given a SunOS disk label, set lp to a BSD disk label.
* Returns NULL on success, else an error string.
@@ -388,9 +371,7 @@ sun_extended_sum(sl)
* The BSD label is cleared out before this is called.
*/
static char *
-disklabel_sun_to_bsd(cp, lp)
- char *cp;
- struct disklabel *lp;
+disklabel_sun_to_bsd(char *cp, struct disklabel *lp)
{
struct sun_disklabel *sl;
struct partition *npp;
@@ -507,9 +488,7 @@ disklabel_sun_to_bsd(cp, lp)
* Returns zero or error code.
*/
static int
-disklabel_bsd_to_sun(lp, cp)
- struct disklabel *lp;
- char *cp;
+disklabel_bsd_to_sun(struct disklabel *lp, char *cp)
{
struct sun_disklabel *sl;
struct partition *npp;
@@ -603,9 +582,7 @@ disklabel_bsd_to_sun(lp, cp)
* Return -1 if not found.
*/
int
-isbad(bt, cyl, trk, sec)
- struct dkbad *bt;
- int cyl, trk, sec;
+isbad(struct dkbad *bt, int cyl, int trk, int sec)
{
int i;
long blk, bblk;
diff --git a/sys/arch/sparc64/sparc64/disksubr.c b/sys/arch/sparc64/sparc64/disksubr.c
index 3d81c93090a..bffd4adbc90 100644
--- a/sys/arch/sparc64/sparc64/disksubr.c
+++ b/sys/arch/sparc64/sparc64/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.29 2007/06/05 02:38:37 krw Exp $ */
+/* $OpenBSD: disksubr.c,v 1.30 2007/06/06 16:42:06 deraadt Exp $ */
/* $NetBSD: disksubr.c,v 1.13 2000/12/17 22:39:18 pk Exp $ */
/*
@@ -37,23 +37,18 @@
#include <sys/disklabel.h>
#include <sys/disk.h>
-#include <scsi/scsi_all.h>
-#include <scsi/scsiconf.h>
-
-#include <dev/sun/disklabel.h>
-
-#include <machine/autoconf.h>
#include <machine/cpu.h>
+#include <machine/autoconf.h>
+#include <dev/sun/disklabel.h>
#include <dev/sbus/sbusvar.h>
+
#include "cd.h"
static char *disklabel_sun_to_bsd(char *, struct disklabel *);
static int disklabel_bsd_to_sun(struct disklabel *, char *);
static __inline u_int sun_extended_sum(struct sun_disklabel *);
-extern struct device *bootdv;
-
#if NCD > 0
extern void cdstrategy(struct buf *);
#endif
@@ -71,12 +66,8 @@ extern void cdstrategy(struct buf *);
* Returns null on success and an error string on failure.
*/
char *
-readdisklabel(dev, strat, lp, clp, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *clp;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *clp, int spoofonly)
{
struct buf *bp = NULL;
struct disklabel *dlp;
@@ -133,7 +124,7 @@ readdisklabel(dev, strat, lp, clp, spoofonly)
bp->b_blkno = LABELSECTOR;
bp->b_cylinder = 0;
bp->b_bcount = lp->d_secsize;
- bp->b_flags |= B_BUSY | B_READ;
+ bp->b_flags = B_BUSY | B_READ;
(*strat)(bp);
/* if successful, locate disk label within block and validate */
@@ -147,14 +138,14 @@ readdisklabel(dev, strat, lp, clp, spoofonly)
goto done;
}
- slp = (struct sun_disklabel *) clp->cd_block;
+ slp = (struct sun_disklabel *)clp->cd_block;
if (slp->sl_magic == SUN_DKMAGIC) {
msg = disklabel_sun_to_bsd(clp->cd_block, lp);
goto done;
}
/* Check for a native disk label (PROM can not boot it). */
- dlp = (struct disklabel *) (clp->cd_block + LABELOFFSET);
+ dlp = (struct disklabel *)(clp->cd_block + LABELOFFSET);
if (dlp->d_magic == DISKMAGIC) {
if (dkcksum(dlp)) {
msg = "disk label corrupted";
@@ -166,7 +157,7 @@ readdisklabel(dev, strat, lp, clp, spoofonly)
}
#if defined(CD9660)
- if (iso_disklabelspoof(dev, strat, lp) == NULL) {
+ if (iso_disklabelspoof(dev, strat, lp) == 0) {
msg = NULL;
goto done;
}
@@ -194,10 +185,8 @@ done:
* before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, clp)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *clp;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *clp)
{
int i;
struct partition *opp, *npp;
@@ -217,7 +206,7 @@ setdisklabel(olp, nlp, openmask, clp)
dkcksum(nlp) != 0)
return (EINVAL);
- while ((i = ffs((long)openmask)) != 0) {
+ while ((i = ffs(openmask)) != 0) {
i--;
openmask &= ~(1 << i);
if (nlp->d_npartitions <= i)
@@ -238,16 +227,15 @@ setdisklabel(olp, nlp, openmask, clp)
* Current label is already in clp->cd_block[]
*/
int
-writedisklabel(dev, strat, lp, clp)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *clp;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *clp)
{
struct buf *bp;
int error;
error = disklabel_bsd_to_sun(lp, clp->cd_block);
+ if (error)
+ return (error);
#if 0 /* XXX - Allow writing native disk labels? */
{
@@ -266,7 +254,7 @@ writedisklabel(dev, strat, lp, clp)
bp->b_blkno = LABELSECTOR;
bp->b_cylinder = 0;
bp->b_bcount = lp->d_secsize;
- bp->b_flags |= B_WRITE;
+ bp->b_flags = B_WRITE;
(*strat)(bp);
error = biowait(bp);
brelse(bp);
@@ -354,7 +342,7 @@ sun_fstypes[16] = {
FS_BSDFFS, /* m */
FS_BSDFFS, /* n */
FS_BSDFFS, /* o */
- FS_BSDFFS, /* p */
+ FS_BSDFFS /* p */
};
/*
@@ -362,20 +350,17 @@ sun_fstypes[16] = {
* table and compute the correct value for sl_xpsum.
*/
static __inline u_int
-sun_extended_sum(sl)
- struct sun_disklabel *sl;
+sun_extended_sum(struct sun_disklabel *sl)
{
- u_int lsum;
- u_int *xp;
- u_int *ep;
+ u_int sum, *xp, *ep;
xp = (u_int *)&sl->sl_xpmag;
ep = (u_int *)&sl->sl_xxx1[0];
- lsum = 0;
+ sum = 0;
for (; xp < ep; xp++)
- lsum += *xp;
- return(lsum);
+ sum += *xp;
+ return (sum);
}
/*
@@ -385,9 +370,7 @@ sun_extended_sum(sl)
* The BSD label is cleared out before this is called.
*/
static char *
-disklabel_sun_to_bsd(cp, lp)
- char *cp;
- struct disklabel *lp;
+disklabel_sun_to_bsd(char *cp, struct disklabel *lp)
{
struct sun_disklabel *sl;
struct partition *npp;
@@ -504,9 +487,7 @@ disklabel_sun_to_bsd(cp, lp)
* Returns zero or error code.
*/
static int
-disklabel_bsd_to_sun(lp, cp)
- struct disklabel *lp;
- char *cp;
+disklabel_bsd_to_sun(struct disklabel *lp, char *cp)
{
struct sun_disklabel *sl;
struct partition *npp;
diff --git a/sys/arch/vax/vax/disksubr.c b/sys/arch/vax/vax/disksubr.c
index be54a5f28c4..c6116937153 100644
--- a/sys/arch/vax/vax/disksubr.c
+++ b/sys/arch/vax/vax/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.41 2007/06/05 02:38:37 krw Exp $ */
+/* $OpenBSD: disksubr.c,v 1.42 2007/06/06 16:42:07 deraadt Exp $ */
/* $NetBSD: disksubr.c,v 1.21 1999/06/30 18:48:06 ragge Exp $ */
/*
@@ -95,7 +95,7 @@ bounds_check_with_label(struct buf *bp, struct disklabel *lp,
}
/* calculate cylinder for disksort to order transfers with */
- bp->b_cylinder = (bp->b_blkno + DL_GETPOFFSET(p)) / lp->d_secpercyl;
+ bp->b_cylinder = (bp->b_blkno + DL_GETPOFFSET(p)) / lp->d_secpercyl;
return (1);
bad:
@@ -112,12 +112,8 @@ bad:
* Returns null on success and an error string on failure.
*/
char *
-readdisklabel(dev, strat, lp, osdep, spoofonly)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
- int spoofonly;
+readdisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep, int spoofonly)
{
struct buf *bp = NULL;
struct disklabel *dlp;
@@ -192,10 +188,8 @@ done:
* before setting it.
*/
int
-setdisklabel(olp, nlp, openmask, osdep)
- struct disklabel *olp, *nlp;
- u_long openmask;
- struct cpu_disklabel *osdep;
+setdisklabel(struct disklabel *olp, struct disklabel *nlp,
+ u_int openmask, struct cpu_disklabel *osdep)
{
int i;
struct partition *opp, *npp;
@@ -210,12 +204,12 @@ setdisklabel(olp, nlp, openmask, osdep)
*olp = *nlp;
return (0);
}
-
+
if (nlp->d_magic != DISKMAGIC || nlp->d_magic2 != DISKMAGIC ||
dkcksum(nlp) != 0)
return (EINVAL);
- while ((i = ffs((long)openmask)) != 0) {
+ while ((i = ffs(openmask)) != 0) {
i--;
openmask &= ~(1 << i);
if (nlp->d_npartitions <= i)
@@ -246,11 +240,8 @@ setdisklabel(olp, nlp, openmask, osdep)
* Always allow writing of disk label; even if the disk is unlabeled.
*/
int
-writedisklabel(dev, strat, lp, osdep)
- dev_t dev;
- void (*strat)(struct buf *);
- struct disklabel *lp;
- struct cpu_disklabel *osdep;
+writedisklabel(dev_t dev, void (*strat)(struct buf *),
+ struct disklabel *lp, struct cpu_disklabel *osdep)
{
struct buf *bp;
struct disklabel *dlp;
@@ -277,13 +268,12 @@ done:
return (error);
}
-/*
+/*
* Print out the name of the device; ex. TK50, RA80. DEC uses a common
* disk type encoding scheme for most of its disks.
- */
-void
-disk_printtype(unit, type)
- int unit, type;
+ */
+void
+disk_printtype(int unit, int type)
{
printf(" drive %d: %c%c", unit, (int)MSCP_MID_CHAR(2, type),
(int)MSCP_MID_CHAR(1, type));
@@ -298,10 +288,7 @@ disk_printtype(unit, type)
* also map it in.
*/
void
-disk_reallymapin(bp, map, reg, flag)
- struct buf *bp;
- pt_entry_t *map;
- int reg, flag;
+disk_reallymapin(struct buf *bp, pt_entry_t *map, int reg, int flag)
{
struct proc *p;
volatile pt_entry_t *io;
diff --git a/sys/sys/disklabel.h b/sys/sys/disklabel.h
index acf54d87283..7f01f32096e 100644
--- a/sys/sys/disklabel.h
+++ b/sys/sys/disklabel.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: disklabel.h,v 1.35 2007/06/05 00:38:24 deraadt Exp $ */
+/* $OpenBSD: disklabel.h,v 1.36 2007/06/06 16:42:07 deraadt Exp $ */
/* $NetBSD: disklabel.h,v 1.41 1996/05/10 23:07:37 mark Exp $ */
/*
@@ -400,7 +400,7 @@ void diskerr(struct buf *, char *, char *, int, int, struct disklabel *);
void disksort(struct buf *, struct buf *);
u_int dkcksum(struct disklabel *);
void disklabeltokernlabel(struct disklabel *);
-int setdisklabel(struct disklabel *, struct disklabel *, u_long,
+int setdisklabel(struct disklabel *, struct disklabel *, u_int,
struct cpu_disklabel *);
char *readdisklabel(dev_t, void (*)(struct buf *), struct disklabel *,
struct cpu_disklabel *, int);