[SeaBIOS] [PATCH] block: Move drive setup to new function block_setup()

Kevin O'Connor kevin at koconnor.net
Wed Feb 3 17:06:41 CET 2016


Move the list of drive setup calls from post.c to a new function in
block.c.

Signed-off-by: Kevin O'Connor <kevin at 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
-- 
2.5.0




More information about the SeaBIOS mailing list