blob: a8f6f7c85027de3d5c7463b7556fafdb7cf0ce71 [file] [log] [blame]
Isaku Yamahata845773a2010-05-14 16:29:15 +09001#ifndef HW_FDC_H
2#define HW_FDC_H
3
Markus Armbrusterdfc65f12012-05-11 17:22:19 +02004#include "qemu-common.h"
Blue Swirld288c7b2011-02-12 21:23:12 +00005
pbrook87ecb682007-11-17 17:14:51 +00006/* fdc.c */
7#define MAX_FD 2
pbrook87ecb682007-11-17 17:14:51 +00008
Markus Armbruster61a8d642012-07-10 11:12:27 +02009typedef enum FDriveType {
10 FDRIVE_DRV_144 = 0x00, /* 1.44 MB 3"5 drive */
11 FDRIVE_DRV_288 = 0x01, /* 2.88 MB 3"5 drive */
12 FDRIVE_DRV_120 = 0x02, /* 1.2 MB 5"25 drive */
13 FDRIVE_DRV_NONE = 0x03, /* No drive connected */
14} FDriveType;
15
Markus Armbrusterdfc65f12012-05-11 17:22:19 +020016ISADevice *fdctrl_init_isa(ISABus *bus, DriveInfo **fds);
Blue Swirl63ffb562011-02-05 16:32:23 +000017void fdctrl_init_sysbus(qemu_irq irq, int dma_chann,
Avi Kivitya8170e52012-10-23 12:30:10 +020018 hwaddr mmio_base, DriveInfo **fds);
19void sun4m_fdctrl_init(qemu_irq irq, hwaddr io_base,
Blue Swirl63ffb562011-02-05 16:32:23 +000020 DriveInfo **fds, qemu_irq *fdc_tc);
Markus Armbruster61a8d642012-07-10 11:12:27 +020021
22FDriveType isa_fdc_get_drive_type(ISADevice *fdc, int i);
Kevin Wolf34d42602011-10-20 16:37:26 +020023
Isaku Yamahata845773a2010-05-14 16:29:15 +090024#endif