aboutsummaryrefslogtreecommitdiff
path: root/src/block.h
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2015-07-07 09:53:54 -0400
committerKevin O'Connor <kevin@koconnor.net>2015-07-14 14:40:07 -0400
commit4dbe82905992f6c6b87ec79ce6b568c57304b0e5 (patch)
treecabd8bc35e9d2d80399714767f687bbdd6761c6c /src/block.h
parent85c72c6febbf7f4654c9ac57a8506dc5e1a5cba1 (diff)
downloadseabios-hppa-4dbe82905992f6c6b87ec79ce6b568c57304b0e5.zip
seabios-hppa-4dbe82905992f6c6b87ec79ce6b568c57304b0e5.tar.gz
seabios-hppa-4dbe82905992f6c6b87ec79ce6b568c57304b0e5.tar.bz2
block: Route scsi style commands through 'struct disk_op_s'
Support sending scsi style "command data block" commands (cdbcmd) through the 'struct disk_op_s' command request structure. And change the blockcmd.c and cdrom.c code to route these commands through the process_op() code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/block.h')
-rw-r--r--src/block.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/block.h b/src/block.h
index 2fa52bd..702f357 100644
--- a/src/block.h
+++ b/src/block.h
@@ -9,11 +9,19 @@
****************************************************************/
struct disk_op_s {
- u64 lba;
void *buf_fl;
struct drive_s *drive_gf;
- u16 count;
u8 command;
+ u16 count;
+ union {
+ // Commands: READ, WRITE, VERIFY, SEEK, FORMAT
+ u64 lba;
+ // Commands: SCSI
+ struct {
+ u16 blocksize;
+ void *cdbcmd;
+ };
+ };
};
#define CMD_RESET 0x00
@@ -23,6 +31,7 @@ struct disk_op_s {
#define CMD_FORMAT 0x05
#define CMD_SEEK 0x07
#define CMD_ISREADY 0x10
+#define CMD_SCSI 0x20
/****************************************************************