All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bernhard Beschow <shentey@gmail.com>
To: qemu-devel@nongnu.org
Cc: "Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Aurelien Jarno" <aurelien@aurel32.net>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Eduardo Habkost" <eduardo@habkost.net>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
	"Ani Sinha" <ani@anisinha.ca>,
	"Igor Mammedov" <imammedo@redhat.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Bernhard Beschow" <shentey@gmail.com>
Subject: [PATCH 39/42] hw/isa/piix: Unexport PIIXState
Date: Thu,  1 Sep 2022 18:26:10 +0200	[thread overview]
Message-ID: <20220901162613.6939-40-shentey@gmail.com> (raw)
In-Reply-To: <20220901162613.6939-1-shentey@gmail.com>

The - deliberately exported - components can still be accessed
via QOM properties.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/isa/piix.c                 | 52 +++++++++++++++++++++++++++++++++
 include/hw/southbridge/piix.h | 54 -----------------------------------
 2 files changed, 52 insertions(+), 54 deletions(-)

diff --git a/hw/isa/piix.c b/hw/isa/piix.c
index e413d7e792..c503a6e836 100644
--- a/hw/isa/piix.c
+++ b/hw/isa/piix.c
@@ -26,20 +26,72 @@
 #include "qemu/osdep.h"
 #include "qemu/range.h"
 #include "qapi/error.h"
+#include "qom/object.h"
+#include "hw/acpi/piix4.h"
 #include "hw/dma/i8257.h"
+#include "hw/ide/pci.h"
 #include "hw/intc/i8259.h"
 #include "hw/southbridge/piix.h"
 #include "hw/timer/i8254.h"
 #include "hw/irq.h"
 #include "hw/qdev-properties.h"
 #include "hw/isa/isa.h"
+#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "hw/rtc/mc146818rtc.h"
+#include "hw/usb/hcd-uhci.h"
 #include "hw/xen/xen.h"
 #include "sysemu/runstate.h"
 #include "migration/vmstate.h"
 #include "hw/acpi/acpi_aml_interface.h"
 
+#define PIIX_NUM_PIRQS          4ULL    /* PIRQ[A-D] */
 #define XEN_PIIX_NUM_PIRQS      128ULL
 
+struct PIIXState {
+    PCIDevice dev;
+
+    /*
+     * bitmap to track pic levels.
+     * The pic level is the logical OR of all the PCI irqs mapped to it
+     * So one PIC level is tracked by PIIX_NUM_PIRQS bits.
+     *
+     * PIRQ is mapped to PIC pins, we track it by
+     * PIIX_NUM_PIRQS * ISA_NUM_IRQS = 64 bits with
+     * pic_irq * PIIX_NUM_PIRQS + pirq
+     */
+#if ISA_NUM_IRQS * PIIX_NUM_PIRQS > 64
+#error "unable to encode pic state in 64bit in pic_levels."
+#endif
+    uint64_t pic_levels;
+
+    /* This member isn't used. Just for save/load compatibility */
+    int32_t pci_irq_levels_vmstate[PIIX_NUM_PIRQS];
+    uint8_t pci_irq_reset_mappings[PIIX_NUM_PIRQS];
+
+    ISAPICState pic;
+    RTCState rtc;
+    PCIIDEState ide;
+    UHCIState uhci;
+    PIIX4PMState pm;
+
+    uint32_t smb_io_base;
+
+    /* Reset Control Register contents */
+    uint8_t rcr;
+
+    /* IO memory region for Reset Control Register (PIIX_RCR_IOPORT) */
+    MemoryRegion rcr_mem;
+
+    bool has_acpi;
+    bool has_usb;
+    bool smm_enabled;
+};
+typedef struct PIIXState PIIXState;
+
+DECLARE_INSTANCE_CHECKER(PIIXState, PIIX_PCI_DEVICE,
+                         TYPE_PIIX3_PCI_DEVICE)
+
 static void piix_set_irq_pic(PIIXState *piix, int pic_irq)
 {
     qemu_set_irq(piix->pic.in_irqs[pic_irq],
diff --git a/include/hw/southbridge/piix.h b/include/hw/southbridge/piix.h
index c9fa0f1aa6..0edc23710c 100644
--- a/include/hw/southbridge/piix.h
+++ b/include/hw/southbridge/piix.h
@@ -12,14 +12,6 @@
 #ifndef HW_SOUTHBRIDGE_PIIX_H
 #define HW_SOUTHBRIDGE_PIIX_H
 
-#include "hw/pci/pci.h"
-#include "qom/object.h"
-#include "hw/acpi/piix4.h"
-#include "hw/ide/pci.h"
-#include "hw/intc/i8259.h"
-#include "hw/rtc/mc146818rtc.h"
-#include "hw/usb/hcd-uhci.h"
-
 /* PIRQRC[A:D]: PIRQx Route Control Registers */
 #define PIIX_PIRQCA 0x60
 #define PIIX_PIRQCB 0x61
@@ -32,53 +24,7 @@
  */
 #define PIIX_RCR_IOPORT 0xcf9
 
-#define PIIX_NUM_PIRQS          4ULL    /* PIRQ[A-D] */
-
-struct PIIXState {
-    PCIDevice dev;
-
-    /*
-     * bitmap to track pic levels.
-     * The pic level is the logical OR of all the PCI irqs mapped to it
-     * So one PIC level is tracked by PIIX_NUM_PIRQS bits.
-     *
-     * PIRQ is mapped to PIC pins, we track it by
-     * PIIX_NUM_PIRQS * ISA_NUM_IRQS = 64 bits with
-     * pic_irq * PIIX_NUM_PIRQS + pirq
-     */
-#if ISA_NUM_IRQS * PIIX_NUM_PIRQS > 64
-#error "unable to encode pic state in 64bit in pic_levels."
-#endif
-    uint64_t pic_levels;
-
-    /* This member isn't used. Just for save/load compatibility */
-    int32_t pci_irq_levels_vmstate[PIIX_NUM_PIRQS];
-    uint8_t pci_irq_reset_mappings[PIIX_NUM_PIRQS];
-
-    ISAPICState pic;
-    RTCState rtc;
-    PCIIDEState ide;
-    UHCIState uhci;
-    PIIX4PMState pm;
-
-    uint32_t smb_io_base;
-
-    /* Reset Control Register contents */
-    uint8_t rcr;
-
-    /* IO memory region for Reset Control Register (PIIX_RCR_IOPORT) */
-    MemoryRegion rcr_mem;
-
-    bool has_acpi;
-    bool has_usb;
-    bool smm_enabled;
-};
-typedef struct PIIXState PIIXState;
-
 #define TYPE_PIIX3_PCI_DEVICE "pci-piix3"
-DECLARE_INSTANCE_CHECKER(PIIXState, PIIX_PCI_DEVICE,
-                         TYPE_PIIX3_PCI_DEVICE)
-
 #define TYPE_PIIX3_DEVICE "PIIX3"
 #define TYPE_PIIX3_XEN_DEVICE "PIIX3-xen"
 #define TYPE_PIIX4_PCI_DEVICE "piix4-isa"
-- 
2.37.3



  parent reply	other threads:[~2022-09-01 17:19 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-01 16:25 [PATCH 00/42] Consolidate PIIX south bridges Bernhard Beschow
2022-09-01 16:25 ` [PATCH 01/42] hw/i386/pc: Create DMA controllers in " Bernhard Beschow
2022-09-01 19:08   ` Philippe Mathieu-Daudé via
2022-09-01 16:25 ` [PATCH 02/42] hw/i386/pc: Create RTC " Bernhard Beschow
2022-09-01 16:25 ` [PATCH 03/42] hw/i386/pc: No need for rtc_state to be an out-parameter Bernhard Beschow
2022-09-01 16:25 ` [PATCH 04/42] hw/i386/pc_piix: Allow for setting properties before realizing PIIX3 south bridge Bernhard Beschow
2022-09-01 16:25 ` [PATCH 05/42] hw/isa/piix3: Create USB controller in host device Bernhard Beschow
2022-09-01 19:13   ` Philippe Mathieu-Daudé via
2022-09-18 21:46     ` Bernhard Beschow
2022-09-01 16:25 ` [PATCH 06/42] hw/isa/piix3: Create power management " Bernhard Beschow
2022-09-01 16:25 ` [PATCH 07/42] hw/intc/i8259: Introduce i8259 proxy "isa-pic" Bernhard Beschow
2022-09-18 19:38   ` Mark Cave-Ayland
2022-09-01 16:25 ` [PATCH 08/42] hw/isa/piix3: Create ISA PIC in host device Bernhard Beschow
2022-09-01 16:25 ` [PATCH 09/42] hw/isa/piix3: Create IDE controller " Bernhard Beschow
2022-09-01 16:25 ` [PATCH 10/42] hw/isa/piix3: Wire up ACPI interrupt internally Bernhard Beschow
2022-09-01 16:25 ` [PATCH 11/42] hw/isa/piix3: Remove extra ';' outside of functions Bernhard Beschow
2022-09-01 20:26   ` [PATCH 11/42] hw/isa/piix3: Remove extra '; ' " Philippe Mathieu-Daudé via
2022-09-01 16:25 ` [PATCH 12/42] hw/isa/piix3: Remove unused include Bernhard Beschow
2022-09-01 16:25 ` [PATCH 13/42] hw/isa/piix3: Add size constraints to rcr_ops Bernhard Beschow
2022-09-01 23:12   ` Philippe Mathieu-Daudé via
2022-09-01 16:25 ` [PATCH 14/42] hw/isa/piix3: Modernize reset handling Bernhard Beschow
2022-09-01 20:33   ` Philippe Mathieu-Daudé via
2022-09-18 19:44   ` Mark Cave-Ayland
2022-09-01 16:25 ` [PATCH 15/42] hw/isa/piix3: Prefer pci_address_space() over get_system_memory() Bernhard Beschow
2022-09-01 20:33   ` Philippe Mathieu-Daudé via
2022-09-01 16:25 ` [PATCH 16/42] hw/isa/piix3: Allow board to provide PCI interrupt routes Bernhard Beschow
2022-09-01 16:25 ` [PATCH 17/42] hw/isa/piix3: Resolve redundant PIIX_NUM_PIC_IRQS Bernhard Beschow
2022-09-01 16:25 ` [PATCH 18/42] hw/isa/piix3: Rename pci_piix3_props for sharing with PIIX4 Bernhard Beschow
2022-09-01 16:25 ` [PATCH 19/42] hw/isa/piix3: Rename piix3_reset() " Bernhard Beschow
2022-09-01 16:25 ` [PATCH 20/42] hw/isa/piix3: Prefix pci_slot_get_pirq() with "piix3_" Bernhard Beschow
2022-09-01 16:25 ` [PATCH 21/42] hw/isa/piix3: Rename typedef PIIX3State to PIIXState Bernhard Beschow
2022-09-01 16:25 ` [PATCH 22/42] hw/mips/malta: Reuse dev variable Bernhard Beschow
2022-09-01 20:53   ` Philippe Mathieu-Daudé via
2022-09-01 16:25 ` [PATCH 23/42] meson: Fix dependencies of piix4 southbridge Bernhard Beschow
2022-09-01 16:25 ` [PATCH 24/42] hw/isa/piix4: Add missing initialization Bernhard Beschow
2022-09-01 16:25 ` [PATCH 25/42] hw/isa/piix4: Move pci_ide_create_devs() call to board code Bernhard Beschow
2022-09-01 20:54   ` Philippe Mathieu-Daudé via
2022-09-01 16:25 ` [PATCH 26/42] hw/isa/piix4: Make PIIX4's ACPI and USB functions optional Bernhard Beschow
2022-09-18 20:10   ` Mark Cave-Ayland
2022-09-18 21:47     ` Bernhard Beschow
2022-09-01 16:25 ` [PATCH 27/42] hw/isa/piix4: Allow board to provide PCI interrupt routes Bernhard Beschow
2022-09-01 20:57   ` Philippe Mathieu-Daudé via
2022-09-01 16:25 ` [PATCH 28/42] hw/isa/piix4: Remove unused code Bernhard Beschow
2022-09-01 16:26 ` [PATCH 29/42] hw/isa/piix4: Use ISA PIC device Bernhard Beschow
2022-09-01 16:26 ` [PATCH 30/42] hw/isa/piix4: Reuse struct PIIXState from PIIX3 Bernhard Beschow
2022-09-01 16:26 ` [PATCH 31/42] hw/isa/piix4: Rename reset control operations to match PIIX3 Bernhard Beschow
2022-09-01 16:26 ` [PATCH 32/42] hw/isa/piix4: Rename wrongly named method Bernhard Beschow
2022-09-01 20:58   ` Philippe Mathieu-Daudé via
2022-09-01 16:26 ` [PATCH 33/42] hw/isa/piix4: Prefix pci_slot_get_pirq() with "piix4_" Bernhard Beschow
2022-09-01 16:26 ` [PATCH 34/42] hw/isa/piix3: Merge hw/isa/piix4.c Bernhard Beschow
2022-09-01 16:26 ` [PATCH 35/42] hw/isa/piix: Harmonize names of reset control memory regions Bernhard Beschow
2022-09-01 16:26 ` [PATCH 36/42] hw/isa/piix: Reuse PIIX3 base class' realize method in PIIX4 Bernhard Beschow
2022-09-01 16:26 ` [PATCH 37/42] hw/isa/piix: Rename functions to be shared for interrupt triggering Bernhard Beschow
2022-09-01 16:26 ` [PATCH 38/42] hw/isa/piix: Consolidate IRQ triggering Bernhard Beschow
2022-09-01 16:26 ` Bernhard Beschow [this message]
2022-09-18 20:21   ` [PATCH 39/42] hw/isa/piix: Unexport PIIXState Mark Cave-Ayland
2022-09-18 21:31     ` Bernhard Beschow
2022-09-01 16:26 ` [PATCH 40/42] hw/isa/piix: Share PIIX3 base class with PIIX4 Bernhard Beschow
2022-09-01 16:26 ` [PATCH 41/42] hw/isa/piix: Drop the "3" from the PIIX base class Bernhard Beschow
2022-09-01 16:26 ` [PATCH 42/42] hw/i386/acpi-build: Resolve PIIX ISA bridge rather than ACPI controller Bernhard Beschow
2022-09-01 21:05   ` Philippe Mathieu-Daudé via
2022-09-08 20:30     ` Bernhard Beschow
2022-09-08  8:39 ` [PATCH 00/42] Consolidate PIIX south bridges Bernhard Beschow
2022-09-18 20:22 ` Mark Cave-Ayland
2022-09-18 22:30   ` Bernhard Beschow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220901162613.6939-40-shentey@gmail.com \
    --to=shentey@gmail.com \
    --cc=ani@anisinha.ca \
    --cc=aurelien@aurel32.net \
    --cc=eduardo@habkost.net \
    --cc=f4bug@amsat.org \
    --cc=hpoussin@reactos.org \
    --cc=imammedo@redhat.com \
    --cc=jiaxun.yang@flygoat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.