aboutsummaryrefslogtreecommitdiff
path: root/src/ata.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2009-08-16 18:48:38 -0400
committerKevin O'Connor <kevin@koconnor.net>2009-08-16 18:48:38 -0400
commitaf5aabb09f2ee803ab25bdcd2c44522cdb49f5fe (patch)
tree574a46dc5fc24a4bef3a66586a5c9069c816fae0 /src/ata.c
parent48410fdcc11a72b2a463639c8a65f3a42e157a1b (diff)
downloadseabios-hppa-af5aabb09f2ee803ab25bdcd2c44522cdb49f5fe.zip
seabios-hppa-af5aabb09f2ee803ab25bdcd2c44522cdb49f5fe.tar.gz
seabios-hppa-af5aabb09f2ee803ab25bdcd2c44522cdb49f5fe.tar.bz2
Unify floppy and harddrive command routing.
Implement low-level floppy commands using the disk_op structure. The requests can then be filled using the regular disk_13xx functions.
Diffstat (limited to 'src/ata.c')
-rw-r--r--src/ata.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/ata.c b/src/ata.c
index 510951b..7a008eb 100644
--- a/src/ata.c
+++ b/src/ata.c
@@ -149,13 +149,18 @@ process_ata_misc_op(struct disk_op_s *op)
return 0;
switch (op->command) {
- default:
- return 0;
case CMD_RESET:
ata_reset(op->driveid);
return DISK_RET_SUCCESS;
case CMD_ISREADY:
return isready(op->driveid);
+ case CMD_FORMAT:
+ case CMD_VERIFY:
+ case CMD_SEEK:
+ return DISK_RET_SUCCESS;
+ default:
+ op->count = 0;
+ return DISK_RET_EPARAM;
}
}
@@ -449,6 +454,9 @@ process_atapi_op(struct disk_op_s *op)
case CMD_READ:
ret = cdrom_read(op);
break;
+ case CMD_FORMAT:
+ case CMD_WRITE:
+ return DISK_RET_EWRITEPROTECT;
default:
return process_ata_misc_op(op);
}