[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