aboutsummaryrefslogtreecommitdiff
path: root/src/hw
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2014-12-29 09:45:15 -0500
committerKevin O'Connor <kevin@koconnor.net>2014-12-29 09:45:15 -0500
commitf0a22eb69ba62f937e5fb236d1a8ad9291ff81d6 (patch)
tree17a8f3f6cfa7117db44891423f09b2094f2f15d1 /src/hw
parentfeeb1c240a7ba7e064076cf533b35d4a4288e903 (diff)
downloadseabios-f0a22eb69ba62f937e5fb236d1a8ad9291ff81d6.zip
seabios-f0a22eb69ba62f937e5fb236d1a8ad9291ff81d6.tar.gz
seabios-f0a22eb69ba62f937e5fb236d1a8ad9291ff81d6.tar.bz2
scsi: Move process_scsi_op() to hw/blockcmd.c and rename
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/hw')
-rw-r--r--src/hw/blockcmd.c19
-rw-r--r--src/hw/blockcmd.h1
2 files changed, 20 insertions, 0 deletions
diff --git a/src/hw/blockcmd.c b/src/hw/blockcmd.c
index bbcc08f..ad8814c 100644
--- a/src/hw/blockcmd.c
+++ b/src/hw/blockcmd.c
@@ -165,6 +165,25 @@ cdb_write(struct disk_op_s *op)
* Main SCSI commands
****************************************************************/
+int VISIBLE32FLAT
+scsi_process_op(struct disk_op_s *op)
+{
+ switch (op->command) {
+ case CMD_READ:
+ return cdb_read(op);
+ case CMD_WRITE:
+ return cdb_write(op);
+ case CMD_FORMAT:
+ case CMD_RESET:
+ case CMD_ISREADY:
+ case CMD_VERIFY:
+ case CMD_SEEK:
+ return DISK_RET_SUCCESS;
+ default:
+ return DISK_RET_EPARAM;
+ }
+}
+
int
scsi_is_ready(struct disk_op_s *op)
{
diff --git a/src/hw/blockcmd.h b/src/hw/blockcmd.h
index 8bacfcf..429b669 100644
--- a/src/hw/blockcmd.h
+++ b/src/hw/blockcmd.h
@@ -111,6 +111,7 @@ int cdb_inquiry(struct disk_op_s *op, struct cdbres_inquiry *data);
int cdb_read(struct disk_op_s *op);
int cdb_write(struct disk_op_s *op);
+int scsi_process_op(struct disk_op_s *op);
int scsi_is_ready(struct disk_op_s *op);
struct drive_s;
int scsi_drive_setup(struct drive_s *drive, const char *s, int prio);