This series implements some code reorganization in an attempt to simplify the disk driver command dispatch system. The series should have no user-visible changes - it's mostly just code reorg.
At the end of the series, the command dispatch for "scsi style" devices is removed in favor of a single dispatch system for all drives.
The series also makes the supported runtime modes (ie, 32bit or 16bit) of drivers more explicit.
This series is also available at: https://github.com/KevinOConnor/seabios/tree/testing
-Kevin
Kevin O'Connor (17): block: Split process_op() command dispatch up into multiple functions block: Introduce default_process_op() with common command handling codes block: Route scsi style commands through 'struct disk_op_s' blockcmd: Introduce scsi_fill_cmd() ata: Handle ATA ATAPI drives directly via 'struct disk_op_s' requests ahci: Handle AHCI ATAPI drives directly via 'struct disk_op_s' requests usb-msc: Handle USB drives directly via 'struct disk_op_s' requests usb-uas: Handle USB drives directly via 'struct disk_op_s' requests lsi-scsi: Handle LSI drives directly via 'struct disk_op_s' requests esp-scsi: Handle ESP drives directly via 'struct disk_op_s' requests megasas: Handle Megasas drives directly via 'struct disk_op_s' requests virtio-scsi: Handle virtio drives directly via 'struct disk_op_s' requests pvscsi: Move pvscsi_fill_req() code into pvscsi_cmd() pvscsi: Handle pvscsi drives directly via 'struct disk_op_s' requests blockcmd: Remove unused scsi_process_op() and cdb_cmd_data() blockcmd: Convert cdb_is_read() to scsi_is_read() block: Rename process_XXX_op() functions to XXX_process_op()
src/block.c | 152 +++++++++++++++++++++++++++++++-------------------- src/block.h | 14 ++++- src/cdrom.c | 15 ++--- src/hw/ahci.c | 29 ++++------ src/hw/ahci.h | 4 +- src/hw/ata.c | 17 +++--- src/hw/ata.h | 5 +- src/hw/blockcmd.c | 138 +++++++++++++++------------------------------- src/hw/blockcmd.h | 4 +- src/hw/esp-scsi.c | 33 +++++------ src/hw/esp-scsi.h | 2 +- src/hw/floppy.c | 2 +- src/hw/lsi-scsi.c | 32 +++++------ src/hw/lsi-scsi.h | 2 +- src/hw/megasas.c | 12 ++-- src/hw/megasas.h | 2 +- src/hw/pvscsi.c | 62 ++++++++------------- src/hw/pvscsi.h | 2 +- src/hw/ramdisk.c | 8 +-- src/hw/sdcard.c | 12 +--- src/hw/usb-msc.c | 14 +++-- src/hw/usb-msc.h | 2 +- src/hw/usb-uas.c | 6 +- src/hw/usb-uas.h | 2 +- src/hw/virtio-blk.c | 12 +--- src/hw/virtio-blk.h | 2 +- src/hw/virtio-scsi.c | 37 +++++-------- src/hw/virtio-scsi.h | 2 +- src/util.h | 8 +-- 29 files changed, 283 insertions(+), 349 deletions(-)