summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/machine/idectrl.h
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2011-09-06 12:32:34 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2011-09-06 12:32:34 +0000
commit9be96922f22c4806609dbb45ceb2a9053e6d8ad9 (patch)
tree9769e3b1b01776b8098b7a477a49aa081b3401ac /src/emu/machine/idectrl.h
parentc6ab853a145bdb7948355d6b7686d4cc959c46af (diff)
Various changes and improvements to the Chihiro emulation [Samuele Zannoli]
* modifies the ide device (idectrl.c) so it supports cases where it is not connected to an hard disk, but to some different hardware * adds PC devices 8259 pic, 8253 pit, ide controller * adds "chihiro" command with subcommands "jamdis", "dump_string", "dump_process", "dump_list", "help" * updates the smbus controller and adds stubs for the pic16lc, cx25871, eeprom smbus devices * updates the memory map for the newly added devices * fixes the size of the "others" region * adds hack for the missing dump of the smbus eeprom
Diffstat (limited to 'src/emu/machine/idectrl.h')
-rw-r--r--src/emu/machine/idectrl.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/emu/machine/idectrl.h b/src/emu/machine/idectrl.h
index 3b27e8588aa..43c121ec6b1 100644
--- a/src/emu/machine/idectrl.h
+++ b/src/emu/machine/idectrl.h
@@ -22,6 +22,13 @@
/***************************************************************************
TYPE DEFINITIONS
***************************************************************************/
+typedef struct _ide_hardware ide_hardware;
+struct _ide_hardware
+{
+ void (*get_info)(device_t *device, UINT8 *buffer, UINT16 &cylinders, UINT8 &sectors, UINT8 &heads);
+ int (*read_sector)(device_t *device, UINT32 lba, void *buffer);
+ int (*write_sector)(device_t *device, UINT32 lba, const void *buffer);
+};
typedef struct _ide_config ide_config;
struct _ide_config
@@ -31,6 +38,7 @@ struct _ide_config
const char *slave; /* name of slave region (defaults to NULL) */
const char *bmcpu; /* name of bus master CPU */
UINT32 bmspace; /* address space of bus master transfer */
+ const ide_hardware *hardware; /* connected to hardware that is not an hard disk */
};
@@ -51,6 +59,8 @@ struct _ide_config
MCFG_DEVICE_CONFIG_DATAPTR(ide_config, bmcpu, _cpu) \
MCFG_DEVICE_CONFIG_DATA32(ide_config, bmspace, AS_##_space)
+#define MCFG_IDE_CONNECTED_TO(_hardware) \
+ MCFG_DEVICE_CONFIG_DATAPTR(ide_config, hardware, _hardware) \
/***************************************************************************