Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sbin/fdisk Put #endif in correct place - fixes PR/42500
details: https://anonhg.NetBSD.org/src/rev/05653062d400
branches: trunk
changeset: 750306:05653062d400
user: dsl <dsl%NetBSD.org@localhost>
date: Wed Dec 23 18:50:40 2009 +0000
description:
Put #endif in correct place - fixes PR/42500
Update usage() for -A, and rename one of the variables for clarity.
diffstat:
sbin/fdisk/fdisk.c | 86 +++++++++++++++++++++++++++--------------------------
1 files changed, 44 insertions(+), 42 deletions(-)
diffs (truncated from 315 to 300 lines):
diff -r d8acb53d90a5 -r 05653062d400 sbin/fdisk/fdisk.c
--- a/sbin/fdisk/fdisk.c Wed Dec 23 18:31:00 2009 +0000
+++ b/sbin/fdisk/fdisk.c Wed Dec 23 18:50:40 2009 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: fdisk.c,v 1.129 2009/12/22 21:55:12 dsl Exp $ */
+/* $NetBSD: fdisk.c,v 1.130 2009/12/23 18:50:40 dsl Exp $ */
/*
* Mach Operating System
@@ -39,7 +39,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: fdisk.c,v 1.129 2009/12/22 21:55:12 dsl Exp $");
+__RCSID("$NetBSD: fdisk.c,v 1.130 2009/12/23 18:50:40 dsl Exp $");
#endif /* not lint */
#define MBRPTYPENAMES
@@ -216,7 +216,7 @@
/* Alignment of partition, and offset if first sector unusable */
unsigned int ptn_alignment; /* default dos_cylindersectors */
-unsigned int ptn_offset; /* default dos_sectors */
+unsigned int ptn_0_offset; /* default dos_sectors */
int fd = -1, wfd = -1, *rfd = &fd;
char *disk_file = NULL;
@@ -248,6 +248,7 @@
int boot_installed; /* 1 if we've copied code into the mbr */
#if (defined(__i386__) || defined(__x86_64__)) && !HAVE_NBTOOL_CONFIG_H
+#define USE_DISKLIST
struct disklist *dl;
#endif
@@ -267,9 +268,9 @@
void get_bios_geometry(void);
void get_extended_ptn(void);
static void get_ptn_alignmemt(void);
-#if (defined(__i386__) || defined(__x86_64__)) && !HAVE_NBTOOL_CONFIG_H
+#if defined(USE_DISKLIST)
void get_diskname(const char *, char *, size_t);
-#endif /* (defined(__i386__) || defined(__x86_64__)) && !HAVE_NBTOOL_CONFIG_H */
+#endif
int change_part(int, int, int, daddr_t, daddr_t, char *);
void print_geometry(void);
int first_active(void);
@@ -418,12 +419,12 @@
break;
case 'A': /* Partition alignment[/offset] */
if (sscanf(optarg, "%u/%u%n", &ptn_alignment,
- &ptn_offset, &n) < 1
+ &ptn_0_offset, &n) < 1
|| optarg[n] != 0
- || ptn_offset > ptn_alignment)
+ || ptn_0_offset > ptn_alignment)
errx(1, "Bad argument to the -A flag.");
- if (ptn_offset == 0)
- ptn_offset = ptn_alignment;
+ if (ptn_0_offset == 0)
+ ptn_0_offset = ptn_alignment;
break;
case 'c': /* file/directory containing boot code */
if (strchr(optarg, '/') != NULL &&
@@ -600,7 +601,8 @@
int indent = 7 + (int)strlen(getprogname()) + 1;
(void)fprintf(stderr, "usage: %s [-afiluvBS] "
- "[-b cylinders/heads/sectors] \\\n"
+ "[-A ptn_alignment[/ptn_0_offset]] \\\n"
+ "%*s[-b cylinders/heads/sectors] \\\n"
"%*s[-0123 | -E num "
"[-s id/start/size[/bootmenu]]] \\\n"
"%*s[-t disktab] [-T disktype] \\\n"
@@ -616,7 +618,7 @@
"\t-F treat device as a regular file\n"
"\t-S output as shell defines\n"
"\t-r and -w access 'file' for non-destructive testing\n",
- getprogname(), indent, "", indent, "", indent, "");
+ getprogname(), indent, "", indent, "", indent, "", indent, "");
exit(1);
}
@@ -801,8 +803,8 @@
indent, "", start, size);
if (size != 0) {
printf(" (%u MB, Cyls ", SEC_TO_MB(size));
- if (v_flag == 0 && le32toh(partp->mbrp_start) == ptn_offset)
- pr_cyls(start - ptn_offset, 0);
+ if (v_flag == 0 && le32toh(partp->mbrp_start) == ptn_0_offset)
+ pr_cyls(start - ptn_0_offset, 0);
else
pr_cyls(start, 0);
printf("-");
@@ -1132,7 +1134,7 @@
ext.num_ptn = 0;
}
-#if (defined(__i386__) || defined(__x86_64__)) && !HAVE_NBTOOL_CONFIG_H
+#if defined(USE_DISKLIST)
void
get_diskname(const char *fullname, char *diskname, size_t size)
{
@@ -1174,6 +1176,7 @@
memcpy(diskname, p, len);
diskname[len] = 0;
}
+#endif
static void
get_ptn_alignmemt(void)
@@ -1183,7 +1186,7 @@
/* Default to using 'traditional' cylinder alignment */
ptn_alignment = dos_cylindersectors;
- ptn_offset = dos_sectors;
+ ptn_0_offset = dos_sectors;
if (partp->mbrp_type != 0) {
/* Try to copy alignment of first partition */
@@ -1195,14 +1198,14 @@
if (ptn_0_base <= 2048
&& !(ptn_0_base & (ptn_0_base - 1))) {
/* ptn_base is a power of 2, use it */
- ptn_offset = ptn_0_base;
+ ptn_0_offset = ptn_0_base;
}
}
} else {
/* Use 1MB alignment for large disks */
if (disksectors > 2048 * 1024 * 128) {
ptn_alignment = 2048;
- ptn_offset = 2048;
+ ptn_0_offset = 2048;
}
}
}
@@ -1210,7 +1213,7 @@
void
get_bios_geometry(void)
{
-#if (defined(__i386__) || defined(__x86_64__)) && !HAVE_NBTOOL_CONFIG_H
+#if defined(USE_DISKLIST)
int mib[2], i;
size_t len;
struct biosdisk_info *bip;
@@ -1258,7 +1261,6 @@
/* Allright, allright, make a stupid guess.. */
intuit_translated_geometry();
}
-#endif /* (defined(__i386__) || defined(__x86_64__)) && !HAVE_NBTOOL_CONFIG_H */
#ifdef BOOTSEL
daddr_t
@@ -1484,7 +1486,7 @@
daddr_t *off;
int num_bios_disks;
-#if (defined(__i386__) || defined(__x86_64__)) && !HAVE_NBTOOL_CONFIG_H
+#if defined(USE_DISKLIST)
if (dl != NULL) {
num_bios_disks = dl->dl_nbiosdisks;
if (num_bios_disks > MAX_BIOS_DISKS)
@@ -1588,7 +1590,7 @@
dos_sectors > MAXSECTOR) {
h1 = MAXHEAD - 1;
c1 = MAXCYL - 1;
-#if (defined(__i386__) || defined(__x86_64__)) && !HAVE_NBTOOL_CONFIG_H
+#if defined(USE_DISKLIST)
if (dl != NULL) {
/* BIOS may use 256 heads or 1024 cylinders */
for (i = 0; i < dl->dl_nbiosdisks; i++) {
@@ -1766,8 +1768,8 @@
partp = &ext.ptn[part - 1].mbr_parts[1];
ext.ptn[part].mbr_parts[1] = *partp;
/* and prev onto us */
- partp->mbrp_start = htole32(start - ptn_offset - ext.base);
- partp->mbrp_size = htole32(size + ptn_offset);
+ partp->mbrp_start = htole32(start - ptn_0_offset - ext.base);
+ partp->mbrp_size = htole32(size + ptn_0_offset);
}
partp->mbrp_type = 5; /* as used by win98 */
partp->mbrp_flag = 0;
@@ -1791,7 +1793,7 @@
if (start == 0)
return "Sector zero is reserved for the MBR";
#if 0
- if (start < ptn_offset)
+ if (start < ptn_0_offset)
/* This is just a convention, not a requirement */
return "Track zero is reserved for the BIOS";
#endif
@@ -1893,7 +1895,7 @@
}
} else {
/* must create an empty slot */
- add_ext_ptn(start, ptn_offset);
+ add_ext_ptn(start, ptn_0_offset);
ext.ptn[0].mbr_parts[1].mbrp_start = htole32(ext.base
- start);
}
@@ -1918,8 +1920,8 @@
return "Nested extended partitions are not allowed";
/* allow one track at start for extended partition header */
- start -= ptn_offset;
- size += ptn_offset;
+ start -= ptn_0_offset;
+ size += ptn_0_offset;
if (start < ext.base || start + size > ext.limit)
return "Outside bounds of extended partition";
@@ -1934,7 +1936,7 @@
+ le32toh(ext.ptn[p].mbr_parts[0].mbrp_size);
if (p == 0)
p_s += le32toh(ext.ptn[p].mbr_parts[0].mbrp_start)
- - ptn_offset;
+ - ptn_0_offset;
if (start < p_e && start + size > p_s) {
if (!f_flag)
return "Overlaps another extended partition";
@@ -2020,23 +2022,23 @@
if (ext.ptn[p].mbr_parts[0].mbrp_type == 0)
continue;
n_s = ext_offset(p);
- if (n_s > start + ptn_offset)
+ if (n_s > start + ptn_0_offset)
break;
start = ext_offset(p)
+ le32toh(ext.ptn[p].mbr_parts[0].mbrp_start)
+ le32toh(ext.ptn[p].mbr_parts[0].mbrp_size);
}
- if (ext.limit - start <= ptn_offset) {
+ if (ext.limit - start <= ptn_0_offset) {
printf("No space in extended partition\n");
return 0;
}
- start += ptn_offset;
+ start += ptn_0_offset;
}
if (!s_flag && sysid == 0 && !extended) {
/* same for non-extended partition */
/* first see if old start is free */
- if (start < ptn_offset)
+ if (start < ptn_0_offset)
start = 0;
for (p = 0; start != 0 && p < MBR_PART_COUNT; p++) {
if (mboot.mbr_parts[p].mbrp_type == 0)
@@ -2048,7 +2050,7 @@
}
if (start == 0) {
/* Look for first gap */
- start = ptn_offset;
+ start = ptn_0_offset;
for (p = 0; p < MBR_PART_COUNT; p++) {
if (mboot.mbr_parts[p].mbrp_type == 0)
continue;
@@ -2131,9 +2133,9 @@
if (size == 0 || size > lim)
size = lim;
fl = DEC_SEC;
- if (start % ptn_alignment == ptn_offset)
+ if (start % ptn_alignment == ptn_0_offset)
fl |= DEC_RND_DOWN;
- if (start == 2 * ptn_offset)
+ if (start == 2 * ptn_0_offset)
fl |= DEC_RND_DOWN | DEC_RND_DOWN_2;
size = decimal("size", size, fl, 0, lim);
#ifdef BOOTSEL
@@ -2200,7 +2202,7 @@
if (extended) {
if (part != -1)
delete_ext_ptn(part);
- if (start == ext.base + ptn_offset)
+ if (start == ext.base + ptn_0_offset)
/* First one must have been free */
part = 0;
else
@@ -2309,7 +2311,7 @@
dos_cylinders, dos_heads, dos_sectors, dos_cylindersectors,
dos_disksectors);
printf("Partitions aligned to %d sector boundaries, offset %d\n\n",
- ptn_alignment, ptn_offset);
+ ptn_alignment, ptn_0_offset);
}
/* Find the first active partition, else return MBR_PART_COUNT */
@@ -2365,7 +2367,7 @@
if (!yesno("Do you want to change our idea of what BIOS thinks?"))
return;
-#if (defined(__i386__) || defined(__x86_64__)) && !HAVE_NBTOOL_CONFIG_H
+#if defined(USE_DISKLIST)
if (dl != NULL) {
struct biosdisk_info *bip;
int i;
@@ -2775,13 +2777,13 @@
acc *= ptn_alignment;
/* adjustments for cylinder boundary */
Home |
Main Index |
Thread Index |
Old Index