Browse Source

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>
pull/259/head
Mark Cave-Ayland 2 years ago
committed by Kevin Wolf
parent
commit
7552488444
  1. 12
      hw/ide/core.c
  2. 12
      hw/ide/ioport.c
  3. 3
      include/hw/ide/internal.h

12
hw/ide/core.c

@ -81,6 +81,18 @@ static const char *IDE_DMA_CMD_str(enum ide_dma_cmd enval)
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)
{
int i, v;

12
hw/ide/ioport.c

@ -28,18 +28,6 @@
#include "hw/ide/internal.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 ret;

3
include/hw/ide/internal.h

@ -354,6 +354,9 @@ enum ide_dma_cmd {
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) \
((s)->dma_cmd == IDE_DMA_READ)

Loading…
Cancel
Save