From 69871be503beb4ad5116fc617add85f2c5735eb5 Mon Sep 17 00:00:00 2001 From: Blue Swirl Date: Sat, 12 Feb 2011 21:23:12 +0000 Subject: [PATCH] fdc: use FDriveType for floppy drive type Signed-off-by: Blue Swirl --- hw/fdc.c | 2 +- hw/fdc.h | 4 +++- hw/pc.c | 19 +++++++++++-------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/hw/fdc.c b/hw/fdc.c index 5874a66..c130cba 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 242730a..30ac970 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 56bf1d6..4e4e2eb 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; -- 2.7.4