summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/ata-all.c
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2002-03-27 10:58:59 +0000
committersos <sos@FreeBSD.org>2002-03-27 10:58:59 +0000
commit3bb9163271874f3cdba2326c16e8f35837a58e79 (patch)
tree5b9ce4d04b09ba6aec883cbbd6eb25e2cc767bfe /sys/dev/ata/ata-all.c
parentafeb63c358c75e735e779b5a81e44f8bbba5da78 (diff)
downloadFreeBSD-src-3bb9163271874f3cdba2326c16e8f35837a58e79.zip
FreeBSD-src-3bb9163271874f3cdba2326c16e8f35837a58e79.tar.gz
Add support for creating/deleting ATA RAID's.
This completes the ATA RAID support, since all functions to manipulate the RAID are accessible from FreeBSD, the BIOS on the ATA RAID cards are only nessesary for booting. I decided to allow for creation of ATA RAID's on any ATA controller, but please keep in mind the restrictions on that. Due to the BIOS not knowing what to do you can only boot from a RAID1 or the first disk in a SPAN, if its not located on a "real" ATA RAID controller like the Promise or Highpoint controllers. Sponsored by: Advanis
Diffstat (limited to 'sys/dev/ata/ata-all.c')
-rw-r--r--sys/dev/ata/ata-all.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c
index ef47133..2196c9b 100644
--- a/sys/dev/ata/ata-all.c
+++ b/sys/dev/ata/ata-all.c
@@ -303,10 +303,6 @@ ataioctl(dev_t dev, u_long cmd, caddr_t addr, int32_t flag, struct thread *td)
error = ata_reinit(ch);
return error;
-#ifdef DEV_ATADISK
- case ATAREBUILD:
- return ata_raid_rebuild(iocmd->channel);
-#endif
case ATAGMODE:
if (!device || !(ch = device_get_softc(device)))
return ENXIO;
@@ -367,6 +363,16 @@ ataioctl(dev_t dev, u_long cmd, caddr_t addr, int32_t flag, struct thread *td)
sizeof(struct ata_params));
return 0;
+#ifdef DEV_ATADISK
+ case ATARAIDREBUILD:
+ return ata_raid_rebuild(iocmd->channel);
+
+ case ATARAIDCREATE:
+ return ata_raid_create(&iocmd->u.raid_setup);
+
+ case ATARAIDDELETE:
+ return ata_raid_delete(iocmd->channel);
+#endif
#if defined(DEV_ATAPICD) || defined(DEV_ATAPIFD) || defined(DEV_ATAPIST)
case ATAPICMD: {
struct ata_device *atadev;
OpenPOWER on IntegriCloud