diff options
| author | Marius Strobl <marius@FreeBSD.org> | 2010-05-23 16:16:33 +0000 |
|---|---|---|
| committer | Marius Strobl <marius@FreeBSD.org> | 2010-05-23 16:16:33 +0000 |
| commit | 931e615af742f1115ff6d9d9cc701fb5d9af3ce1 (patch) | |
| tree | da00cfa1b8093da1b3db9a4d64e3ac6cd1f7f098 /sys/pc98 | |
| parent | f85c1a3579b7986ee240e7b6c4c83013a00654e7 (diff) | |
Notes
Diffstat (limited to 'sys/pc98')
| -rw-r--r-- | sys/pc98/include/md_var.h | 9 | ||||
| -rw-r--r-- | sys/pc98/pc98/pc98_machdep.c | 29 |
2 files changed, 23 insertions, 15 deletions
diff --git a/sys/pc98/include/md_var.h b/sys/pc98/include/md_var.h index 7ca6f3cc8cf1..5b1ebb35794e 100644 --- a/sys/pc98/include/md_var.h +++ b/sys/pc98/include/md_var.h @@ -41,13 +41,14 @@ extern int need_post_dma_flush; /* * The ad driver maps the IDE disk's actual geometry to the firmware's * notion of geometry. However, PC98 machines need to do something - * different sometimes, so override the hook so we can do so. We have to - * have a knowledge that a device_t is a struct device * here to avoid - * including too many things from this file. + * different sometimes, so override the hook so we can do so. */ struct disk; +void pc98_ata_disk_firmware_geom_adjust(struct disk *); +#define ata_disk_firmware_geom_adjust(disk) \ + pc98_ata_disk_firmware_geom_adjust(disk) +/* backwards compatibility shim */ struct device; void pc98_ad_firmware_geom_adjust(struct device *, struct disk *); -#define ad_firmware_geom_adjust(dev, dsk) pc98_ad_firmware_geom_adjust(dev, dsk) #endif /* !_PC98_INCLUDE_MD_VAR_H_ */ diff --git a/sys/pc98/pc98/pc98_machdep.c b/sys/pc98/pc98/pc98_machdep.c index 31bb756e1449..9683ada3a599 100644 --- a/sys/pc98/pc98/pc98_machdep.c +++ b/sys/pc98/pc98/pc98_machdep.c @@ -211,7 +211,7 @@ scsi_da_bios_params(struct ccb_calc_geometry *ccg) /* IDE BIOS compatible mode. */ static void -pc98_ad_geom_adjust_idebios(struct disk *disk) +pc98_ata_disk_geom_adjust_idebios(struct disk *disk) { if (disk->d_mediasize < MEDIASIZE_4_3G) { @@ -236,7 +236,7 @@ pc98_ad_geom_adjust_idebios(struct disk *disk) /* SCSI BIOS compatible mode. */ static void -pc98_ad_geom_adjust_scsibios(struct disk *disk) +pc98_ata_disk_geom_adjust_scsibios(struct disk *disk) { if (disk->d_mediasize < MEDIASIZE_8G) { @@ -261,13 +261,13 @@ pc98_ad_geom_adjust_scsibios(struct disk *disk) /* Compatible with the revision 1.28. */ static void -pc98_ad_geom_adjust_cyl16bit(struct disk *disk) +pc98_ata_disk_geom_adjust_cyl16bit(struct disk *disk) { off_t totsec = disk->d_mediasize / disk->d_sectorsize; off_t cyl = totsec / disk->d_fwsectors / disk->d_fwheads; - + /* - * It is impossible to have more than 65535 cylendars, so if + * It is impossible to have more than 65535 cylinders, so if * we have more then try to adjust. This is lame, but it is * only POC. */ @@ -289,7 +289,7 @@ pc98_ad_geom_adjust_cyl16bit(struct disk *disk) } void -pc98_ad_firmware_geom_adjust(device_t dev, struct disk *disk) +pc98_ata_disk_firmware_geom_adjust(struct disk *disk) { u_int oldsectors, oldheads; @@ -298,13 +298,13 @@ pc98_ad_firmware_geom_adjust(device_t dev, struct disk *disk) switch (ad_geom_method) { case AD_GEOM_ADJUST_COMPATIDE: - pc98_ad_geom_adjust_idebios(disk); + pc98_ata_disk_geom_adjust_idebios(disk); break; case AD_GEOM_ADJUST_COMPATSCSI: - pc98_ad_geom_adjust_scsibios(disk); + pc98_ata_disk_geom_adjust_scsibios(disk); break; case AD_GEOM_ADJUST_COMPATCYL16: - pc98_ad_geom_adjust_cyl16bit(disk); + pc98_ata_disk_geom_adjust_cyl16bit(disk); break; default: /* Do nothing. */ @@ -313,9 +313,16 @@ pc98_ad_firmware_geom_adjust(device_t dev, struct disk *disk) if (bootverbose && (oldsectors != disk->d_fwsectors || oldheads != disk->d_fwheads)) - device_printf(dev, - "geometry adjusted from [%dH/%dS] to [%dH/%dS]\n", + printf( + "%s%d: geometry adjusted from [%dH/%dS] to [%dH/%dS]\n", + disk->d_name, disk->d_unit, oldheads, oldsectors, disk->d_fwheads, disk->d_fwsectors); +} + +void +pc98_ad_firmware_geom_adjust(device_t dev __unused, struct disk *disk) +{ + pc98_ata_disk_firmware_geom_adjust(disk); } |
