summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sbin/disklabel/disklabel.c30
-rw-r--r--sbin/disklabel/editor.c12
2 files changed, 29 insertions, 13 deletions
diff --git a/sbin/disklabel/disklabel.c b/sbin/disklabel/disklabel.c
index 4436881b604..6e1cb67fe96 100644
--- a/sbin/disklabel/disklabel.c
+++ b/sbin/disklabel/disklabel.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disklabel.c,v 1.47 1997/11/25 00:36:22 millert Exp $ */
+/* $OpenBSD: disklabel.c,v 1.48 1998/02/19 20:43:36 deraadt Exp $ */
/* $NetBSD: disklabel.c,v 1.30 1996/03/14 19:49:24 ghudson Exp $ */
/*
@@ -44,7 +44,7 @@ static char copyright[] =
#endif /* not lint */
#ifndef lint
-static char rcsid[] = "$OpenBSD: disklabel.c,v 1.47 1997/11/25 00:36:22 millert Exp $";
+static char rcsid[] = "$OpenBSD: disklabel.c,v 1.48 1998/02/19 20:43:36 deraadt Exp $";
#endif /* not lint */
#include <sys/param.h>
@@ -411,7 +411,8 @@ writelabel(f, boot, lp)
*/
if (dosdp && pp->p_size &&
(dosdp->dp_typ == DOSPTYP_OPENBSD ||
- dosdp->dp_typ == DOSPTYP_386BSD)) {
+ dosdp->dp_typ == DOSPTYP_FREEBSD ||
+ dosdp->dp_typ == DOSPTYP_NETBSD)) {
sectoffset = get_le(&dosdp->dp_start) * lp->d_secsize;
} else {
if (dosdp) {
@@ -615,7 +616,17 @@ readmbr(f)
}
}
for (part = 0; part < NDOSPART; part++) {
- if (get_le(&dp[part].dp_size) && dp[part].dp_typ == DOSPTYP_386BSD) {
+ if (get_le(&dp[part].dp_size) && dp[part].dp_typ == DOSPTYP_FREEBSD) {
+ fprintf(stderr, "# using MBR partition %d: "
+ "type %02X off %d (0x%x) size %d (0x%x)\n", part,
+ dp[part].dp_typ,
+ get_le(&dp[part].dp_start), get_le(&dp[part].dp_start),
+ get_le(&dp[part].dp_size), get_le(&dp[part].dp_size));
+ return (&dp[part]);
+ }
+ }
+ for (part = 0; part < NDOSPART; part++) {
+ if (get_le(&dp[part].dp_size) && dp[part].dp_typ == DOSPTYP_NETBSD) {
fprintf(stderr, "# using MBR partition %d: "
"type %02X off %d (0x%x) size %d (0x%x)\n", part,
dp[part].dp_typ,
@@ -653,8 +664,9 @@ readlabel(f)
#ifdef DOSLABEL
if (dosdp && get_le(&dosdp->dp_size) &&
- (dosdp->dp_typ == DOSPTYP_386BSD ||
- dosdp->dp_typ == DOSPTYP_OPENBSD))
+ (dosdp->dp_typ == DOSPTYP_OPENBSD ||
+ (dosdp->dp_typ == DOSPTYP_FREEBSD ||
+ dosdp->dp_typ == DOSPTYP_NETBSD))
sectoffset = get_le(&dosdp->dp_start) * DEV_BSIZE;
#endif
if (verbose)
@@ -1554,8 +1566,10 @@ checklabel(lp)
if (lp->d_secperunit == 0)
lp->d_secperunit = lp->d_secpercyl * lp->d_ncylinders;
#ifdef i386__notyet
- if (dosdp && dosdp->dp_size && (dosdp->dp_typ == DOSPTYP_386BSD ||
- dosdp->dp_typ == DOSPTYP_OPENBSD)) {
+ if (dosdp && dosdp->dp_size &&
+ (dosdp->dp_typ == DOSPTYP_OPENBSD ||
+ dosdp->dp_typ == DOSPTYP_FREEBSD ||
+ dosdp->dp_typ == DOSPTYP_NETBSD)) {
&& lp->d_secperunit > dosdp->dp_start + dosdp->dp_size) {
warnx("exceeds DOS partition size");
errors++;
diff --git a/sbin/disklabel/editor.c b/sbin/disklabel/editor.c
index 88b6afb4d9a..fe8f84a2550 100644
--- a/sbin/disklabel/editor.c
+++ b/sbin/disklabel/editor.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: editor.c,v 1.29 1998/01/11 18:21:17 millert Exp $ */
+/* $OpenBSD: editor.c,v 1.30 1998/02/19 20:43:37 deraadt Exp $ */
/*
* Copyright (c) 1997 Todd C. Miller <Todd.Miller@courtesan.com>
@@ -31,7 +31,7 @@
*/
#ifndef lint
-static char rcsid[] = "$OpenBSD: editor.c,v 1.29 1998/01/11 18:21:17 millert Exp $";
+static char rcsid[] = "$OpenBSD: editor.c,v 1.30 1998/02/19 20:43:37 deraadt Exp $";
#endif /* not lint */
#include <sys/types.h>
@@ -1734,9 +1734,11 @@ find_bounds(lp)
ending_sector = lp->d_secperunit;
#ifdef DOSLABEL
- /* If we have an MBR, use values from the OpenBSD/386BSD parition. */
- if (dosdp && pp->p_size && (dosdp->dp_typ == DOSPTYP_OPENBSD ||
- dosdp->dp_typ == DOSPTYP_386BSD)) {
+ /* If we have an MBR, use values from the OpenBSD/FreeBSD parition. */
+ if (dosdp && pp->p_size &&
+ (dosdp->dp_typ == DOSPTYP_OPENBSD ||
+ dosdp->dp_typ == DOSPTYP_FREEBSD ||
+ dosdp->dp_typ == DOSPTYP_NETBSD)) {
starting_sector = get_le(&dosdp->dp_start);
ending_sector = starting_sector + get_le(&dosdp->dp_size);
printf("Treating sectors %u-%u as the OpenBSD portion of the "