diff options
author | Warner Losh <imp@FreeBSD.org> | 2018-03-12 21:39:49 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2018-03-12 21:39:49 +0000 |
commit | de04d704a98a7d2e9e57ebd83d2dd7a19fc11dab (patch) | |
tree | 8b2a7c70182f66162f89a183d74cd3d07bb9ffa6 /stand/mips | |
parent | f264386b3233a7eba03e0afe0e01e39c509d597d (diff) | |
download | src-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.c | 6 | ||||
-rw-r--r-- | stand/mips/beri/loader/beri_disk_sdcard.c | 6 | ||||
-rw-r--r-- | stand/mips/beri/loader/devicename.c | 10 |
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); |