aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ata/ata-disk.c
diff options
context:
space:
mode:
authorSøren Schmidt <sos@FreeBSD.org>2005-05-16 13:07:27 +0000
committerSøren Schmidt <sos@FreeBSD.org>2005-05-16 13:07:27 +0000
commit6667b30d15254872b686d582b2430e2e9098aacd (patch)
tree6f0fc5c74cd330db252bdb9572d9fd9b43828619 /sys/dev/ata/ata-disk.c
parentb0c77ed9fb4ec679fdeed5ac29dc7fd33a9934b2 (diff)
downloadsrc-6667b30d15254872b686d582b2430e2e9098aacd.tar.gz
src-6667b30d15254872b686d582b2430e2e9098aacd.zip
Change the way ioctls are issue to ATA.
The most prominent part is that its now possible to issue ata_requests directly to say acd0, instead of going through the cumbersome /dev/ata device.
Notes
Notes: svn path=/head/; revision=146266
Diffstat (limited to 'sys/dev/ata/ata-disk.c')
-rw-r--r--sys/dev/ata/ata-disk.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/dev/ata/ata-disk.c b/sys/dev/ata/ata-disk.c
index 64ba57904462..64a41726aeba 100644
--- a/sys/dev/ata/ata-disk.c
+++ b/sys/dev/ata/ata-disk.c
@@ -61,6 +61,7 @@ static void ad_done(struct ata_request *);
static void ad_describe(device_t dev);
static int ad_version(u_int16_t);
static disk_strategy_t ad_strategy;
+static disk_ioctl_t ad_ioctl;
static dumper_t ad_dump;
/* local vars */
@@ -137,6 +138,7 @@ ad_attach(device_t dev)
/* create the disk device */
adp->disk = disk_alloc();
adp->disk->d_strategy = ad_strategy;
+ adp->disk->d_ioctl = ad_ioctl;
adp->disk->d_dump = ad_dump;
adp->disk->d_name = "ad";
adp->disk->d_drv1 = dev;
@@ -283,6 +285,12 @@ ad_done(struct ata_request *request)
}
static int
+ad_ioctl(struct disk *disk, u_long cmd, void *data, int flag, struct thread *td)
+{
+ return ata_device_ioctl(disk->d_drv1, cmd, data);
+}
+
+static int
ad_dump(void *arg, void *virtual, vm_offset_t physical,
off_t offset, size_t length)
{