On 2013-05-06 16:59, Paolo Bonzini wrote: > Il 06/05/2013 16:55, Andreas Färber ha scritto: >> Am 06.05.2013 16:26, schrieb Jan Kiszka: >>> Move isa_is_ioport_assigned to the ISA core and implement it via a >>> memory region lookup. As all IO ports are now directly or indirectly >>> registered via the memory API, this becomes possible and will finally >>> allow us to drop the ioport tables. >>> >>> Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> >>> --- >>> hw/acpi/piix4.c | 6 +++--- >>> hw/isa/isa-bus.c | 11 +++++++++++ >>> hw/isa/lpc_ich9.c | 8 ++++---- >>> include/exec/ioport.h | 1 - >>> include/hw/isa/isa.h | 2 ++ >>> ioport.c | 7 ------- >>> 6 files changed, 20 insertions(+), 15 deletions(-) >>> >>> diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c >>> index c4af1cc..5955217 100644 >>> --- a/hw/acpi/piix4.c >>> +++ b/hw/acpi/piix4.c >>> @@ -386,10 +386,10 @@ static void piix4_pm_machine_ready(Notifier *n, void >>> *opaque) >>> uint8_t *pci_conf; >>> >>> pci_conf = s->dev.config; >>> - pci_conf[0x5f] = (isa_is_ioport_assigned(0x378) ? 0x80 : 0) | 0x10; >>> + pci_conf[0x5f] = (isa_is_ioport_assigned(NULL, 0x378) ? 0x80 : 0) | >>> 0x10; >>> pci_conf[0x63] = 0x60; >>> - pci_conf[0x67] = (isa_is_ioport_assigned(0x3f8) ? 0x08 : 0) | >>> - (isa_is_ioport_assigned(0x2f8) ? 0x90 : 0); >>> + pci_conf[0x67] = (isa_is_ioport_assigned(NULL, 0x3f8) ? 0x08 : 0) | >>> + (isa_is_ioport_assigned(NULL, 0x2f8) ? 0x90 : 0); >>> >>> } >>> >> >> Is there really no way to access the ISABus from this device? Would be >> nice to get rid of global ISA variables and not introduce more >> dependencies. :) > > There's always a way to find the ISABus via QOM: > > ISABus *isa_bus = (ISABus *) object_resolve_path_type("", TYPE_ISA_BUS, > NULL);
Err, in what way is this better? It also assumes that there is only one. Jan -- Siemens AG, Corporate Technology, CT RTC ITP SDP-DE Corporate Competence Center Embedded Linux