Move the list of drive setup calls from post.c to a new function in block.c.
Signed-off-by: Kevin O'Connor kevin@koconnor.net --- src/block.c | 16 ++++++++++++++++ src/block.h | 1 + src/post.c | 22 ++-------------------- 3 files changed, 19 insertions(+), 20 deletions(-)
diff --git a/src/block.c b/src/block.c index b4530fc..b231c01 100644 --- a/src/block.c +++ b/src/block.c @@ -487,6 +487,22 @@ fill_edd(struct segoff_s edd, struct drive_s *drive_gf) * Disk driver dispatch ****************************************************************/
+void +block_setup(void) +{ + floppy_setup(); + ata_setup(); + ahci_setup(); + sdcard_setup(); + ramdisk_setup(); + virtio_blk_setup(); + virtio_scsi_setup(); + lsi_scsi_setup(); + esp_scsi_setup(); + megasas_setup(); + pvscsi_setup(); +} + // Fallback handler for command requests not implemented by drivers int default_process_op(struct disk_op_s *op) diff --git a/src/block.h b/src/block.h index 2ff359f..8f4c1aa 100644 --- a/src/block.h +++ b/src/block.h @@ -111,6 +111,7 @@ void map_hd_drive(struct drive_s *drive); void map_cd_drive(struct drive_s *drive); struct int13dpt_s; int fill_edd(struct segoff_s edd, struct drive_s *drive_gf); +void block_setup(void); int default_process_op(struct disk_op_s *op); int process_op(struct disk_op_s *op); int send_disk_op(struct disk_op_s *op); diff --git a/src/post.c b/src/post.c index e5fa4be..c82ab17 100644 --- a/src/post.c +++ b/src/post.c @@ -6,24 +6,17 @@ // This file may be distributed under the terms of the GNU LGPLv3 license.
#include "biosvar.h" // SET_BDA +#include "block.h" // block_setup #include "bregs.h" // struct bregs #include "config.h" // CONFIG_* #include "e820map.h" // e820_add #include "fw/paravirt.h" // qemu_cfg_preinit #include "fw/xen.h" // xen_preinit -#include "hw/ahci.h" // ahci_setup -#include "hw/ata.h" // ata_setup -#include "hw/esp-scsi.h" // esp_scsi_setup -#include "hw/lsi-scsi.h" // lsi_scsi_setup -#include "hw/megasas.h" // megasas_setup -#include "hw/pvscsi.h" // pvscsi_setup #include "hw/pic.h" // pic_setup #include "hw/ps2port.h" // ps2port_setup #include "hw/rtc.h" // rtc_write #include "hw/serialio.h" // serial_debug_preinit #include "hw/usb.h" // usb_setup -#include "hw/virtio-blk.h" // virtio_blk_setup -#include "hw/virtio-scsi.h" // virtio_scsi_setup #include "malloc.h" // malloc_init #include "memmap.h" // SYMBOL #include "output.h" // dprintf @@ -136,19 +129,8 @@ device_hardware_setup(void) ps2port_setup(); lpt_setup(); serial_setup(); - - floppy_setup(); - ata_setup(); - ahci_setup(); - sdcard_setup(); + block_setup(); cbfs_payload_setup(); - ramdisk_setup(); - virtio_blk_setup(); - virtio_scsi_setup(); - lsi_scsi_setup(); - esp_scsi_setup(); - megasas_setup(); - pvscsi_setup(); }
static void