ide/ioport: move ide_portio_list[] and ide_portio_list2[] definitions to IDE core

These definitions are present in ioport.c which is currently only available when
CONFIG_IDE_ISA is enabled. Move them to the IDE core so that they can be made
available to PCI IDE controllers that support switching to legacy mode.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-ID: <20231116103355.588580-2-mark.cave-ayland@ilande.co.uk>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Mark Cave-Ayland 2023-11-16 10:33:52 +00:00 committed by Kevin Wolf
parent 8f37120383
commit 7552488444
3 changed files with 15 additions and 12 deletions

View File

@ -81,6 +81,18 @@ static const char *IDE_DMA_CMD_str(enum ide_dma_cmd enval)
static void ide_dummy_transfer_stop(IDEState *s); static void ide_dummy_transfer_stop(IDEState *s);
const MemoryRegionPortio ide_portio_list[] = {
{ 0, 8, 1, .read = ide_ioport_read, .write = ide_ioport_write },
{ 0, 1, 2, .read = ide_data_readw, .write = ide_data_writew },
{ 0, 1, 4, .read = ide_data_readl, .write = ide_data_writel },
PORTIO_END_OF_LIST(),
};
const MemoryRegionPortio ide_portio2_list[] = {
{ 0, 1, 1, .read = ide_status_read, .write = ide_ctrl_write },
PORTIO_END_OF_LIST(),
};
static void padstr(char *str, const char *src, int len) static void padstr(char *str, const char *src, int len)
{ {
int i, v; int i, v;

View File

@ -28,18 +28,6 @@
#include "hw/ide/internal.h" #include "hw/ide/internal.h"
#include "trace.h" #include "trace.h"
static const MemoryRegionPortio ide_portio_list[] = {
{ 0, 8, 1, .read = ide_ioport_read, .write = ide_ioport_write },
{ 0, 1, 2, .read = ide_data_readw, .write = ide_data_writew },
{ 0, 1, 4, .read = ide_data_readl, .write = ide_data_writel },
PORTIO_END_OF_LIST(),
};
static const MemoryRegionPortio ide_portio2_list[] = {
{ 0, 1, 1, .read = ide_status_read, .write = ide_ctrl_write },
PORTIO_END_OF_LIST(),
};
int ide_init_ioport(IDEBus *bus, ISADevice *dev, int iobase, int iobase2) int ide_init_ioport(IDEBus *bus, ISADevice *dev, int iobase, int iobase2)
{ {
int ret; int ret;

View File

@ -354,6 +354,9 @@ enum ide_dma_cmd {
extern const char *IDE_DMA_CMD_lookup[IDE_DMA__COUNT]; extern const char *IDE_DMA_CMD_lookup[IDE_DMA__COUNT];
extern const MemoryRegionPortio ide_portio_list[];
extern const MemoryRegionPortio ide_portio2_list[];
#define ide_cmd_is_read(s) \ #define ide_cmd_is_read(s) \
((s)->dma_cmd == IDE_DMA_READ) ((s)->dma_cmd == IDE_DMA_READ)