aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlue Swirl <blauwirbel@gmail.com>2011-02-12 21:23:12 +0000
committerBlue Swirl <blauwirbel@gmail.com>2011-02-20 09:33:26 +0000
commitd288c7ba7beb7975fe4bc15b0b14b9fd14da0a03 (patch)
treee53d03368a5659c0b6a255073253972a6195344a
parent5bbdbb4676d17e782ae83055bac58e0751b25e4b (diff)
fdc: use FDriveType for floppy drive type
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
-rw-r--r--hw/fdc.c2
-rw-r--r--hw/fdc.h4
-rw-r--r--hw/pc.c19
3 files changed, 15 insertions, 10 deletions
diff --git a/hw/fdc.c b/hw/fdc.c
index 5874a666eb..c130cbacab 100644
--- a/hw/fdc.c
+++ b/hw/fdc.c
@@ -627,7 +627,7 @@ static void fdctrl_handle_tc(void *opaque, int irq, int level)
}
/* XXX: may change if moved to bdrv */
-int fdctrl_get_drive_type(FDCtrl *fdctrl, int drive_num)
+FDriveType fdctrl_get_drive_type(FDCtrl *fdctrl, int drive_num)
{
return fdctrl->drives[drive_num].drive;
}
diff --git a/hw/fdc.h b/hw/fdc.h
index 242730af8c..30ac970cc1 100644
--- a/hw/fdc.h
+++ b/hw/fdc.h
@@ -1,6 +1,8 @@
#ifndef HW_FDC_H
#define HW_FDC_H
+#include "blockdev.h"
+
/* fdc.c */
#define MAX_FD 2
@@ -11,6 +13,6 @@ FDCtrl *fdctrl_init_sysbus(qemu_irq irq, int dma_chann,
target_phys_addr_t mmio_base, DriveInfo **fds);
FDCtrl *sun4m_fdctrl_init(qemu_irq irq, target_phys_addr_t io_base,
DriveInfo **fds, qemu_irq *fdc_tc);
-int fdctrl_get_drive_type(FDCtrl *fdctrl, int drive_num);
+FDriveType fdctrl_get_drive_type(FDCtrl *fdctrl, int drive_num);
#endif
diff --git a/hw/pc.c b/hw/pc.c
index 56bf1d63f0..4e4e2ebed0 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -192,23 +192,24 @@ static void pic_irq_request(void *opaque, int irq, int level)
#define REG_EQUIPMENT_BYTE 0x14
-static int cmos_get_fd_drive_type(int fd0)
+static int cmos_get_fd_drive_type(FDriveType fd0)
{
int val;
switch (fd0) {
- case 0:
+ case FDRIVE_DRV_144:
/* 1.44 Mb 3"5 drive */
val = 4;
break;
- case 1:
+ case FDRIVE_DRV_288:
/* 2.88 Mb 3"5 drive */
val = 5;
break;
- case 2:
+ case FDRIVE_DRV_120:
/* 1.2 Mb 5"5 drive */
val = 2;
break;
+ case FDRIVE_DRV_NONE:
default:
val = 0;
break;
@@ -335,8 +336,8 @@ void pc_cmos_init(ram_addr_t ram_size, ram_addr_t above_4g_mem_size,
BusState *idebus0, BusState *idebus1,
FDCtrl *floppy_controller, ISADevice *s)
{
- int val;
- int fd0, fd1, nb;
+ int val, nb;
+ FDriveType fd0, fd1;
static pc_cmos_init_late_arg arg;
/* various important CMOS locations needed by PC/Bochs bios */
@@ -387,10 +388,12 @@ void pc_cmos_init(ram_addr_t ram_size, ram_addr_t above_4g_mem_size,
val = 0;
nb = 0;
- if (fd0 < 3)
+ if (fd0 < FDRIVE_DRV_NONE) {
nb++;
- if (fd1 < 3)
+ }
+ if (fd1 < FDRIVE_DRV_NONE) {
nb++;
+ }
switch (nb) {
case 0:
break;