Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F151906439
D19262.id54115.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
9 KB
Referenced Files
None
Subscribers
None
D19262.id54115.diff
View Options
Index: stand/common/disk.h
===================================================================
--- stand/common/disk.h
+++ stand/common/disk.h
@@ -32,13 +32,13 @@
*
* Whole disk access:
*
- * d_slice = -1
- * d_partition = -1
+ * d_slice = D_SLICENONE
+ * d_partition = <doesn't matter>
*
* Whole MBR slice:
*
* d_slice = MBR slice number (typically 1..4)
- * d_partition = -1
+ * d_partition = D_PARTNONE
*
* BSD disklabel partition within an MBR slice:
*
@@ -47,7 +47,7 @@
*
* BSD disklabel partition on the true dedicated disk:
*
- * d_slice = -1
+ * d_slice = D_SLICENONE
* d_partition = disklabel partition (typically 0..19)
*
* GPT partition:
@@ -56,8 +56,8 @@
* d_partition = 255
*
* For both MBR and GPT, to automatically find the 'best' slice or partition,
- * set d_slice to zero. This uses the partition type to decide which partition
- * to use according to the following list of preferences:
+ * set d_slice to D_SLICEWILD. This uses the partition type to decide which
+ * partition to use according to the following list of preferences:
*
* FreeBSD (active)
* FreeBSD (inactive)
@@ -80,6 +80,12 @@
#ifndef _DISK_H
#define _DISK_H
+
+#define D_SLICENONE -1
+#define D_SLICEWILD 0
+#define D_PARTNONE -1
+#define D_PARTWILD -2
+#define D_PARTISGPT 255
struct disk_devdesc {
struct devdesc dd; /* Must be first. */
Index: stand/common/disk.c
===================================================================
--- stand/common/disk.c
+++ stand/common/disk.c
@@ -129,15 +129,8 @@
dev.dd.d_dev = pa->dev->dd.d_dev;
dev.dd.d_unit = pa->dev->dd.d_unit;
dev.d_slice = part->index;
- dev.d_partition = -1;
+ dev.d_partition = D_PARTNONE;
if (disk_open(&dev, partsize, sectsize) == 0) {
- /*
- * disk_open() for partition -1 on a bsd slice assumes
- * you want the first bsd partition. Reset things so
- * that we're looking at the start of the raw slice.
- */
- dev.d_partition = -1;
- dev.d_offset = part->start;
table = ptable_open(&dev, partsize, sectsize, ptblread);
if (table != NULL) {
sprintf(line, " %s%s", pa->prefix, pname);
@@ -244,8 +237,8 @@
*/
memcpy(&partdev, dev, sizeof(partdev));
partdev.d_offset = 0;
- partdev.d_slice = -1;
- partdev.d_partition = -1;
+ partdev.d_slice = D_SLICENONE;
+ partdev.d_partition = D_PARTNONE;
dev->d_offset = 0;
table = NULL;
@@ -373,9 +366,9 @@
char *cp;
cp = buf + sprintf(buf, "%s%d", dev->dd.d_dev->dv_name, dev->dd.d_unit);
- if (dev->d_slice >= 0) {
+ if (dev->d_slice > D_SLICENONE) {
#ifdef LOADER_GPT_SUPPORT
- if (dev->d_partition == 255) {
+ if (dev->d_partition == D_PARTISGPT) {
sprintf(cp, "p%d:", dev->d_slice);
return (buf);
} else
@@ -384,7 +377,7 @@
cp += sprintf(cp, "s%d", dev->d_slice);
#endif
}
- if (dev->d_partition >= 0)
+ if (dev->d_partition > D_PARTNONE)
cp += sprintf(cp, "%c", dev->d_partition + 'a');
strcat(cp, ":");
return (buf);
@@ -398,7 +391,9 @@
char *cp;
np = devspec;
- unit = slice = partition = -1;
+ unit = -1;
+ slice = -1;
+ partition = D_PARTWILD;
if (*np != '\0' && *np != ':') {
unit = strtol(np, &cp, 10);
if (cp == np)
Index: stand/efi/libefi/efipart.c
===================================================================
--- stand/efi/libefi/efipart.c
+++ stand/efi/libefi/efipart.c
@@ -813,8 +813,8 @@
pd->pd_blkio = blkio;
pd_dev.dd.d_dev = dev;
pd_dev.dd.d_unit = pd->pd_unit;
- pd_dev.d_slice = -1;
- pd_dev.d_partition = -1;
+ pd_dev.d_slice = D_SLICENONE;
+ pd_dev.d_partition = D_PARTNONE;
ret = disk_open(&pd_dev, blkio->Media->BlockSize *
(blkio->Media->LastBlock + 1),
blkio->Media->BlockSize);
Index: stand/efi/loader/main.c
===================================================================
--- stand/efi/loader/main.c
+++ stand/efi/loader/main.c
@@ -217,12 +217,12 @@
currdev.dd.d_dev = dp->pd_devsw;
if (dp->pd_parent == NULL) {
currdev.dd.d_unit = dp->pd_unit;
- currdev.d_slice = -1;
- currdev.d_partition = -1;
+ currdev.d_slice = D_SLICENONE;
+ currdev.d_partition = D_PARTNONE;
} else {
currdev.dd.d_unit = dp->pd_parent->pd_unit;
currdev.d_slice = dp->pd_unit;
- currdev.d_partition = 255; /* Assumes GPT */
+ currdev.d_partition = D_PARTISGPT; /* XXX Assumes GPT */
}
set_currdev_devdesc((struct devdesc *)&currdev);
} else {
Index: stand/i386/libi386/biosdisk.c
===================================================================
--- stand/i386/libi386/biosdisk.c
+++ stand/i386/libi386/biosdisk.c
@@ -691,8 +691,8 @@
devd.dd.d_dev = dev;
devd.dd.d_unit = i;
- devd.d_slice = -1;
- devd.d_partition = -1;
+ devd.d_slice = D_SLICENONE;
+ devd.d_partition = D_PARTNONE;
if (disk_open(&devd,
bd->bd_sectorsize * bd->bd_sectors,
bd->bd_sectorsize) == 0) {
@@ -745,8 +745,8 @@
disk.dd.d_dev = dev->dd.d_dev;
disk.dd.d_unit = dev->dd.d_unit;
- disk.d_slice = -1;
- disk.d_partition = -1;
+ disk.d_slice = D_SLICENONE;
+ disk.d_partition = D_PARTNONE;
disk.d_offset = 0;
size = bd->bd_sectors * bd->bd_sectorsize;
Index: stand/libsa/zfs/zfs.c
===================================================================
--- stand/libsa/zfs/zfs.c
+++ stand/libsa/zfs/zfs.c
@@ -588,7 +588,7 @@
int slice = dev->d_slice;
free(dev);
- if (partition != -1 && slice != -1) {
+ if (partition != D_PARTNONE && slice != -1) {
ret = zfs_probe(pa.fd, pool_guid);
if (ret == 0)
return (0);
Index: stand/mips/beri/loader/beri_disk_cfi.c
===================================================================
--- stand/mips/beri/loader/beri_disk_cfi.c
+++ stand/mips/beri/loader/beri_disk_cfi.c
@@ -129,8 +129,8 @@
return (ret);
dev.dd.d_dev = &beri_cfi_disk;
dev.dd.d_unit = 0;
- dev.d_slice = -1;
- dev.d_partition = -1;
+ dev.d_slice = D_SLICENONE;
+ dev.d_partition = D_PARTNONE;
if (disk_open(&dev, cfi_get_mediasize(), cfi_get_sectorsize()) == 0) {
snprintf(line, sizeof(line), " cfi%d", 0);
ret = disk_print(&dev, line, verbose);
Index: stand/mips/beri/loader/beri_disk_sdcard.c
===================================================================
--- stand/mips/beri/loader/beri_disk_sdcard.c
+++ stand/mips/beri/loader/beri_disk_sdcard.c
@@ -135,8 +135,8 @@
return (ret);
dev.dd.d_dev = &beri_sdcard_disk;
dev.dd.d_unit = 0;
- dev.d_slice = -1;
- dev.d_partition = -1;
+ dev.d_slice = D_SLICENONE;
+ dev.d_partition = D_PARTNONE;
if (disk_open(&dev, altera_sdcard_get_mediasize(),
altera_sdcard_get_sectorsize()) == 0) {
snprintf(line, sizeof(line), " sdcard%d", 0);
Index: stand/uboot/common/main.c
===================================================================
--- stand/uboot/common/main.c
+++ stand/uboot/common/main.c
@@ -213,8 +213,8 @@
*type = DEV_TYP_NONE;
*unit = -1;
- *slice = 0;
- *partition = -1;
+ *slice = D_SLICEWILD;
+ *partition = D_PARTWILD;
devstr = ub_env_get("loaderdev");
if (devstr == NULL) {
@@ -295,7 +295,7 @@
if (p == endp) {
*type = DEV_TYP_NONE;
*unit = -1;
- *slice = 0;
+ *slice = D_SLICEWILD;
return;
}
@@ -309,7 +309,7 @@
if (*p != '.') {
*type = DEV_TYP_NONE;
*unit = -1;
- *slice = 0;
+ *slice = D_SLICEWILD;
return;
}
@@ -329,8 +329,8 @@
/* Junk beyond partition number. */
*type = DEV_TYP_NONE;
*unit = -1;
- *slice = 0;
- *partition = -1;
+ *slice = D_SLICEWILD;
+ *partition = D_PARTWILD;
}
static void
@@ -339,12 +339,12 @@
char slice[32];
char partition[32];
- if (currdev.d_disk.d_slice > 0)
+ if (currdev.d_disk.d_slice > D_SLICEWILD)
sprintf(slice, "%d", currdev.d_disk.d_slice);
else
strcpy(slice, "<auto>");
- if (currdev.d_disk.d_partition >= 0)
+ if (currdev.d_disk.d_partition > D_PARTNONE)
sprintf(partition, "%d", currdev.d_disk.d_partition);
else
strcpy(partition, "<auto>");
Index: stand/uboot/lib/disk.c
===================================================================
--- stand/uboot/lib/disk.c
+++ stand/uboot/lib/disk.c
@@ -254,8 +254,8 @@
for (i = 0; i < stor_info_no; i++) {
dev.dd.d_dev = &uboot_storage;
dev.dd.d_unit = i;
- dev.d_slice = -1;
- dev.d_partition = -1;
+ dev.d_slice = D_SLICENONE;
+ dev.d_partition = D_PARTNONE;
snprintf(line, sizeof(line), "\tdisk%d (%s)\n", i,
ub_stor_type(SI(&dev).type));
if ((ret = pager_output(line)) != 0)
Index: stand/usb/storage/umass_loader.c
===================================================================
--- stand/usb/storage/umass_loader.c
+++ stand/usb/storage/umass_loader.c
@@ -196,8 +196,8 @@
return (ret);
dev.d_dev = &umass_disk;
dev.d_unit = 0;
- dev.d_slice = -1;
- dev.d_partition = -1;
+ dev.d_slice = D_SLICENONE;
+ dev.d_partition = D_PARTNONE;
if (umass_disk_open_sub(&dev) == 0) {
ret = disk_print(&dev, " umass0", verbose);
Index: stand/userboot/userboot/main.c
===================================================================
--- stand/userboot/userboot/main.c
+++ stand/userboot/userboot/main.c
@@ -240,15 +240,15 @@
if (userboot_disk_maxunit > 0) {
dev.dd.d_dev = &userboot_disk;
dev.dd.d_unit = 0;
- dev.d_slice = 0;
- dev.d_partition = 0;
+ dev.d_slice = D_SLICEWILD;
+ dev.d_partition = D_PARTWILD;
/*
* If we cannot auto-detect the partition type then
* access the disk as a raw device.
*/
if (dev.dd.d_dev->dv_open(NULL, &dev)) {
- dev.d_slice = -1;
- dev.d_partition = -1;
+ dev.d_slice = D_SLICENONE;
+ dev.d_partition = D_PARTNONE;
}
dd = &dev.dd;
} else {
Index: stand/userboot/userboot/userboot_disk.c
===================================================================
--- stand/userboot/userboot/userboot_disk.c
+++ stand/userboot/userboot/userboot_disk.c
@@ -137,8 +137,8 @@
break;
dev.dd.d_dev = &userboot_disk;
dev.dd.d_unit = i;
- dev.d_slice = -1;
- dev.d_partition = -1;
+ dev.d_slice = D_SLICENONE;
+ dev.d_partition = D_PARTNONE;
if (disk_open(&dev, ud_info[i].mediasize,
ud_info[i].sectorsize) == 0) {
snprintf(line, sizeof(line), " disk%d", i);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Apr 12, 11:37 AM (1 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31308528
Default Alt Text
D19262.id54115.diff (9 KB)
Attached To
Mode
D19262: Distinguish between "no partition" and "choose best partition" with a constant.
Attached
Detach File
Event Timeline
Log In to Comment