aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2016-02-03 11:00:17 -0500
committerKevin O'Connor <kevin@koconnor.net>2016-02-04 12:53:05 -0500
commit7c4807671f3c8aa56583395f93763aeb7aebf323 (patch)
tree7d066118244a39f52efb68059588f6ea3d381aaf
parent937ca6f78cd8611fa1cccb9c42b9184594b05de7 (diff)
downloadseabios-hppa-7c4807671f3c8aa56583395f93763aeb7aebf323.zip
seabios-hppa-7c4807671f3c8aa56583395f93763aeb7aebf323.tar.gz
seabios-hppa-7c4807671f3c8aa56583395f93763aeb7aebf323.tar.bz2
block: Move drive setup to new function block_setup()
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>
-rw-r--r--src/block.c17
-rw-r--r--src/block.h1
-rw-r--r--src/post.c22
3 files changed, 19 insertions, 21 deletions
diff --git a/src/block.c b/src/block.c
index b4530fc..515ac9d 100644
--- a/src/block.c
+++ b/src/block.c
@@ -9,7 +9,6 @@
#include "block.h" // process_op
#include "hw/ata.h" // process_ata_op
#include "hw/ahci.h" // process_ahci_op
-#include "hw/blockcmd.h" // cdb_*
#include "hw/esp-scsi.h" // esp_scsi_process_op
#include "hw/lsi-scsi.h" // lsi_scsi_process_op
#include "hw/megasas.h" // megasas_process_op
@@ -487,6 +486,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..2c4f12b 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
@@ -134,21 +127,10 @@ device_hardware_setup(void)
{
usb_setup();
ps2port_setup();
+ block_setup();
lpt_setup();
serial_setup();
-
- floppy_setup();
- ata_setup();
- ahci_setup();
- sdcard_setup();
cbfs_payload_setup();
- ramdisk_setup();
- virtio_blk_setup();
- virtio_scsi_setup();
- lsi_scsi_setup();
- esp_scsi_setup();
- megasas_setup();
- pvscsi_setup();
}
static void