summaryrefslogtreecommitdiff
path: root/stand/mips
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2018-03-12 21:39:49 +0000
committerWarner Losh <imp@FreeBSD.org>2018-03-12 21:39:49 +0000
commitde04d704a98a7d2e9e57ebd83d2dd7a19fc11dab (patch)
tree8b2a7c70182f66162f89a183d74cd3d07bb9ffa6 /stand/mips
parentf264386b3233a7eba03e0afe0e01e39c509d597d (diff)
downloadsrc-test2-de04d704a98a7d2e9e57ebd83d2dd7a19fc11dab.tar.gz
src-test2-de04d704a98a7d2e9e57ebd83d2dd7a19fc11dab.zip
Use the actual struct devdesc at the start of all *_devdesc structs
The current system is fragile and requires very careful layout of all *_devdesc structures. It also makes it hard to change the base devdesc. Take a page from CAM and put the 'header' in all the derived classes and adjust the code to match. For OFW, move the iHandle h_handle out of a slot conflicting with d_opendata. Due to quirks in the alignment rules, this worked. However changing the code to use d_opendata storage now that it's a pointer is hard, so just have a separate field for it. All other cleanups were to make the *_devdesc structures match where they'd taken some liberties that were none-the-less compatible enough to work.
Notes
Notes: svn path=/head/; revision=330809
Diffstat (limited to 'stand/mips')
-rw-r--r--stand/mips/beri/loader/beri_disk_cfi.c6
-rw-r--r--stand/mips/beri/loader/beri_disk_sdcard.c6
-rw-r--r--stand/mips/beri/loader/devicename.c10
3 files changed, 11 insertions, 11 deletions
diff --git a/stand/mips/beri/loader/beri_disk_cfi.c b/stand/mips/beri/loader/beri_disk_cfi.c
index a21947fdfec6..76b7bb7a9a76 100644
--- a/stand/mips/beri/loader/beri_disk_cfi.c
+++ b/stand/mips/beri/loader/beri_disk_cfi.c
@@ -98,7 +98,7 @@ beri_cfi_disk_open(struct open_file *f, ...)
dev = va_arg(ap, struct disk_devdesc *);
va_end(ap);
- if (dev->d_unit != 0)
+ if (dev->dd.d_unit != 0)
return (EIO);
return (disk_open(dev, cfi_get_mediasize(), cfi_get_sectorsize()));
}
@@ -127,8 +127,8 @@ beri_cfi_disk_print(int verbose)
ret = pager_output(line);
if (ret != 0)
return (ret);
- dev.d_dev = &beri_cfi_disk;
- dev.d_unit = 0;
+ dev.dd.d_dev = &beri_cfi_disk;
+ dev.dd.d_unit = 0;
dev.d_slice = -1;
dev.d_partition = -1;
if (disk_open(&dev, cfi_get_mediasize(), cfi_get_sectorsize()) == 0) {
diff --git a/stand/mips/beri/loader/beri_disk_sdcard.c b/stand/mips/beri/loader/beri_disk_sdcard.c
index 266fb4a813f1..f577eaf55289 100644
--- a/stand/mips/beri/loader/beri_disk_sdcard.c
+++ b/stand/mips/beri/loader/beri_disk_sdcard.c
@@ -103,7 +103,7 @@ beri_sdcard_disk_open(struct open_file *f, ...)
return (ENXIO);
}
- if (dev->d_unit != 0)
+ if (dev->dd.d_unit != 0)
return (EIO);
return (disk_open(dev, altera_sdcard_get_mediasize(),
altera_sdcard_get_sectorsize()));
@@ -133,8 +133,8 @@ beri_sdcard_disk_print(int verbose)
ret = pager_output(line);
if (ret != 0)
return (ret);
- dev.d_dev = &beri_sdcard_disk;
- dev.d_unit = 0;
+ dev.dd.d_dev = &beri_sdcard_disk;
+ dev.dd.d_unit = 0;
dev.d_slice = -1;
dev.d_partition = -1;
if (disk_open(&dev, altera_sdcard_get_mediasize(),
diff --git a/stand/mips/beri/loader/devicename.c b/stand/mips/beri/loader/devicename.c
index 968c946e82d8..4160bf66fb29 100644
--- a/stand/mips/beri/loader/devicename.c
+++ b/stand/mips/beri/loader/devicename.c
@@ -139,7 +139,7 @@ beri_arch_parsedev(struct disk_devdesc **dev, const char *devspec,
goto fail;
}
- idev->d_unit = unit;
+ idev->dd.d_unit = unit;
if (path != NULL)
*path = (*cp == 0) ? cp : cp + 1;
break;
@@ -148,8 +148,8 @@ beri_arch_parsedev(struct disk_devdesc **dev, const char *devspec,
err = EINVAL;
goto fail;
}
- idev->d_dev = dv;
- idev->d_type = dv->dv_type;
+ idev->dd.d_dev = dv;
+ idev->dd.d_type = dv->dv_type;
if (dev == NULL) {
free(idev);
} else {
@@ -175,7 +175,7 @@ beri_arch_fmtdev(void *vdev)
break;
case DEVT_CD:
- sprintf(buf, "%s%d:", dev->d_dev->dv_name, dev->d_unit);
+ sprintf(buf, "%s%d:", dev->dd.d_dev->dv_name, dev->dd.d_unit);
break;
case DEVT_DISK:
@@ -183,7 +183,7 @@ beri_arch_fmtdev(void *vdev)
case DEVT_NET:
case DEVT_ZFS:
- sprintf(buf, "%s%d:", dev->d_dev->dv_name, dev->d_unit);
+ sprintf(buf, "%s%d:", dev->dd.d_dev->dv_name, dev->dd.d_unit);
break;
}
return(buf);