summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/machine/idectrl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/machine/idectrl.h')
-rw-r--r--src/emu/machine/idectrl.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/emu/machine/idectrl.h b/src/emu/machine/idectrl.h
new file mode 100644
index 00000000000..0112d6d71f4
--- /dev/null
+++ b/src/emu/machine/idectrl.h
@@ -0,0 +1,37 @@
+/***************************************************************************
+
+ Generic (PC-style) IDE controller implementation
+
+***************************************************************************/
+
+#include "harddisk.h"
+
+
+#define MAX_IDE_CONTROLLERS 1
+
+struct ide_interface
+{
+ void (*interrupt)(int state);
+};
+
+int ide_controller_init(int which, struct ide_interface *intf);
+int ide_controller_init_custom(int which, struct ide_interface *intf, chd_file *diskhandle);
+void ide_controller_reset(int which);
+UINT8 *ide_get_features(int which);
+
+void ide_set_master_password(int which, UINT8 *password);
+void ide_set_user_password(int which, UINT8 *password);
+
+int ide_bus_0_r(int select, int offset);
+void ide_bus_0_w(int select, int offset, int data);
+
+int ide_controller_0_r(int reg);
+void ide_controller_0_w(int reg, int data);
+
+READ32_HANDLER( ide_controller32_0_r );
+WRITE32_HANDLER( ide_controller32_0_w );
+READ32_HANDLER( ide_bus_master32_0_r );
+WRITE32_HANDLER( ide_bus_master32_0_w );
+
+READ16_HANDLER( ide_controller16_0_r );
+WRITE16_HANDLER( ide_controller16_0_w );