summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_diskmbr.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1999-08-14 11:40:51 +0000
committerphk <phk@FreeBSD.org>1999-08-14 11:40:51 +0000
commit5f45261e990bb420f6394e615c3495668886dfe9 (patch)
tree66dfc8aa5c9515f4ec0197d4ad3f1c2445413016 /sys/kern/subr_diskmbr.c
parent5ff2615ae3524707b482556fcc6668d139f2cd67 (diff)
downloadFreeBSD-src-5f45261e990bb420f6394e615c3495668886dfe9.zip
FreeBSD-src-5f45261e990bb420f6394e615c3495668886dfe9.tar.gz
Spring cleaning around strategy and disklabels/slices:
Introduce BUF_STRATEGY(struct buf *, int flag) macro, and use it throughout. please see comment in sys/conf.h about the flag argument. Remove strategy argument from all the diskslice/label/bad144 implementations, it should be found from the dev_t. Remove bogus and unused strategy1 routines. Remove open/close arguments from dssize(). Pick them up from dev_t. Remove unused and unfinished setgeom support from diskslice/label/bad144 code.
Diffstat (limited to 'sys/kern/subr_diskmbr.c')
-rw-r--r--sys/kern/subr_diskmbr.c30
1 files changed, 13 insertions, 17 deletions
diff --git a/sys/kern/subr_diskmbr.c b/sys/kern/subr_diskmbr.c
index a7b6b24..d6be12a 100644
--- a/sys/kern/subr_diskmbr.c
+++ b/sys/kern/subr_diskmbr.c
@@ -35,7 +35,7 @@
*
* from: @(#)ufs_disksubr.c 7.16 (Berkeley) 5/4/91
* from: ufs_disksubr.c,v 1.8 1994/06/07 01:21:39 phk Exp $
- * $Id: diskslice_machdep.c,v 1.34 1999/05/11 19:54:10 phk Exp $
+ * $Id: diskslice_machdep.c,v 1.35 1999/06/26 02:47:09 mckusick Exp $
*/
#include <sys/param.h>
@@ -64,11 +64,10 @@ static struct dos_partition historical_bogus_partition_table[NDOSPART] = {
static int check_part __P((char *sname, struct dos_partition *dp,
u_long offset, int nsectors, int ntracks,
u_long mbr_offset));
-static void extended __P((char *dname, dev_t dev, d_strategy_t *strat,
- struct disklabel *lp, struct diskslices *ssp,
- u_long ext_offset, u_long ext_size,
- u_long base_ext_offset, int nsectors, int ntracks,
- u_long mbr_offset));
+static void extended __P((char *dname, dev_t dev, struct disklabel *lp,
+ struct diskslices *ssp, u_long ext_offset,
+ u_long ext_size, u_long base_ext_offset,
+ int nsectors, int ntracks, u_long mbr_offset));
static int
check_part(sname, dp, offset, nsectors, ntracks, mbr_offset )
@@ -151,10 +150,9 @@ check_part(sname, dp, offset, nsectors, ntracks, mbr_offset )
}
int
-dsinit(dname, dev, strat, lp, sspp)
+dsinit(dname, dev, lp, sspp)
char *dname;
dev_t dev;
- d_strategy_t *strat;
struct disklabel *lp;
struct diskslices **sspp;
{
@@ -182,7 +180,7 @@ reread_mbr:
bp->b_blkno = mbr_offset;
bp->b_bcount = lp->d_secsize;
bp->b_flags |= B_READ;
- (*strat)(bp);
+ BUF_STRATEGY(bp, 1);
if (biowait(bp) != 0) {
diskerr(bp, dname, "error reading primary partition table",
LOG_PRINTF, 0, (struct disklabel *)NULL);
@@ -328,7 +326,7 @@ reread_mbr:
for (dospart = 0; dospart < NDOSPART; dospart++, sp++)
if (sp->ds_type == DOSPTYP_EXTENDED ||
sp->ds_type == DOSPTYP_EXTENDEDX)
- extended(dname, bp->b_dev, strat, lp, ssp,
+ extended(dname, bp->b_dev, lp, ssp,
sp->ds_offset, sp->ds_size, sp->ds_offset,
max_nsectors, max_ntracks, mbr_offset);
@@ -341,12 +339,11 @@ done:
}
void
-extended(dname, dev, strat, lp, ssp, ext_offset, ext_size, base_ext_offset,
+extended(dname, dev, lp, ssp, ext_offset, ext_size, base_ext_offset,
nsectors, ntracks, mbr_offset)
char *dname;
dev_t dev;
struct disklabel *lp;
- d_strategy_t *strat;
struct diskslices *ssp;
u_long ext_offset;
u_long ext_size;
@@ -372,7 +369,7 @@ extended(dname, dev, strat, lp, ssp, ext_offset, ext_size, base_ext_offset,
bp->b_blkno = ext_offset;
bp->b_bcount = lp->d_secsize;
bp->b_flags |= B_READ;
- (*strat)(bp);
+ BUF_STRATEGY(bp, 1);
if (biowait(bp) != 0) {
diskerr(bp, dname, "error reading extended partition table",
LOG_PRINTF, 0, (struct disklabel *)NULL);
@@ -434,10 +431,9 @@ extended(dname, dev, strat, lp, ssp, ext_offset, ext_size, base_ext_offset,
/* If we found any more slices, recursively find all the subslices. */
for (dospart = 0; dospart < NDOSPART; dospart++)
if (ext_sizes[dospart] != 0)
- extended(dname, dev, strat, lp, ssp,
- ext_offsets[dospart], ext_sizes[dospart],
- base_ext_offset, nsectors, ntracks,
- mbr_offset);
+ extended(dname, dev, lp, ssp, ext_offsets[dospart],
+ ext_sizes[dospart], base_ext_offset,
+ nsectors, ntracks, mbr_offset);
done:
bp->b_flags |= B_INVAL | B_AGE;
OpenPOWER on IntegriCloud