Signed-off-by: Kevin O'Connor kevin@koconnor.net --- src/block.c | 27 ++++----------------------- src/hw/blockcmd.c | 19 +++++++++++++++++++ src/hw/blockcmd.h | 1 + 3 files changed, 24 insertions(+), 23 deletions(-)
diff --git a/src/block.c b/src/block.c index c6d53c1..43af305 100644 --- a/src/block.c +++ b/src/block.c @@ -468,25 +468,6 @@ fill_edd(u16 seg, struct int13dpt_s *param_far, struct drive_s *drive_gf) ****************************************************************/
int VISIBLE32FLAT -process_scsi_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 VISIBLE32FLAT process_atapi_op(struct disk_op_s *op) { switch (op->command) { @@ -494,7 +475,7 @@ process_atapi_op(struct disk_op_s *op) case CMD_FORMAT: return DISK_RET_EWRITEPROTECT; default: - return process_scsi_op(op); + return scsi_process_op(op); } }
@@ -545,13 +526,13 @@ process_op(struct disk_op_s *op) case DTYPE_LSI_SCSI: case DTYPE_ESP_SCSI: case DTYPE_MEGASAS: - ret = process_scsi_op(op); + ret = scsi_process_op(op); break; case DTYPE_USB_32: case DTYPE_UAS_32: case DTYPE_PVSCSI: ; - extern void _cfunc32flat_process_scsi_op(void); - ret = call32(_cfunc32flat_process_scsi_op + extern void _cfunc32flat_scsi_process_op(void); + ret = call32(_cfunc32flat_scsi_process_op , (u32)MAKE_FLATPTR(GET_SEG(SS), op), DISK_RET_EPARAM); break; default: 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);