diff options
Diffstat (limited to 'sys/dev/ata/atapi-fd.c')
-rw-r--r-- | sys/dev/ata/atapi-fd.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/sys/dev/ata/atapi-fd.c b/sys/dev/ata/atapi-fd.c index be31d10..0cba39a 100644 --- a/sys/dev/ata/atapi-fd.c +++ b/sys/dev/ata/atapi-fd.c @@ -96,19 +96,21 @@ afd_attach(struct ata_device *atadev) atadev->flags |= ATA_D_MEDIA_CHANGED; /* lets create the disk device */ - fdp->disk.d_open = afd_open; - fdp->disk.d_close = afd_close; + fdp->disk = disk_alloc(); + fdp->disk->d_open = afd_open; + fdp->disk->d_close = afd_close; #ifdef notyet - fdp->disk.d_ioctl = afd_ioctl; + fdp->disk->d_ioctl = afd_ioctl; #endif - fdp->disk.d_strategy = afdstrategy; - fdp->disk.d_name = "afd"; - fdp->disk.d_drv1 = fdp; + fdp->disk->d_strategy = afdstrategy; + fdp->disk->d_name = "afd"; + fdp->disk->d_drv1 = fdp; if (atadev->channel->dma) - fdp->disk.d_maxsize = atadev->channel->dma->max_iosize; + fdp->disk->d_maxsize = atadev->channel->dma->max_iosize; else - fdp->disk.d_maxsize = DFLTPHYS; - disk_create(fdp->lun, &fdp->disk, DISKFLAG_NOGIANT, NULL, NULL); + fdp->disk->d_maxsize = DFLTPHYS; + fdp->disk->d_unit = fdp->lun; + disk_create(fdp->disk, DISK_VERSION); /* announce we are here */ afd_describe(fdp); @@ -122,7 +124,7 @@ afd_detach(struct ata_device *atadev) mtx_lock(&fdp->queue_mtx); bioq_flush(&fdp->queue, NULL, ENXIO); mtx_unlock(&fdp->queue_mtx); - disk_destroy(&fdp->disk); + disk_destroy(fdp->disk); ata_prtdev(atadev, "WARNING - removed from configuration\n"); ata_free_name(atadev); ata_free_lun(&afd_lun_map, fdp->lun); @@ -233,11 +235,11 @@ afd_open(struct disk *dp) fdp->device->flags &= ~ATA_D_MEDIA_CHANGED; - fdp->disk.d_sectorsize = fdp->cap.sector_size; - fdp->disk.d_mediasize = (off_t)fdp->cap.sector_size * fdp->cap.sectors * + fdp->disk->d_sectorsize = fdp->cap.sector_size; + fdp->disk->d_mediasize = (off_t)fdp->cap.sector_size * fdp->cap.sectors * fdp->cap.heads * fdp->cap.cylinders; - fdp->disk.d_fwsectors = fdp->cap.sectors; - fdp->disk.d_fwheads = fdp->cap.heads; + fdp->disk->d_fwsectors = fdp->cap.sectors; + fdp->disk->d_fwheads = fdp->cap.heads; return 0; } |