Now we've converted all the callsites to directly create the QOM UIC
device themselves, the ppcuic_init() function is unused and can be
removed. The enum defining PPCUIC symbolic constants can be moved
to the ppc-uic.h header where it more naturally belongs.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
include/hw/intc/ppc-uic.h | 7 +++++++
include/hw/ppc/ppc4xx.h | 9 ---------
hw/ppc/ppc4xx_devs.c | 38 --------------------------------------
3 files changed, 7 insertions(+), 47 deletions(-)
diff --git a/include/hw/intc/ppc-uic.h b/include/hw/intc/ppc-uic.h
index e614e2ffd80..22dd5e5ac2c 100644
--- a/include/hw/intc/ppc-uic.h
+++ b/include/hw/intc/ppc-uic.h
@@ -47,6 +47,13 @@ OBJECT_DECLARE_SIMPLE_TYPE(PPCUIC, PPC_UIC)
#define UIC_MAX_IRQ 32
+/* Symbolic constants for the sysbus IRQ outputs */
+enum {
+ PPCUIC_OUTPUT_INT = 0,
+ PPCUIC_OUTPUT_CINT = 1,
+ PPCUIC_OUTPUT_NB,
+};
+
struct PPCUIC {
/*< private >*/
SysBusDevice parent_obj;
diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h
index cc19c8da5be..980f964b5a9 100644
--- a/include/hw/ppc/ppc4xx.h
+++ b/include/hw/ppc/ppc4xx.h
@@ -33,15 +33,6 @@ PowerPCCPU *ppc4xx_init(const char *cpu_model,
clk_setup_t *cpu_clk, clk_setup_t *tb_clk,
uint32_t sysclk);
-/* PowerPC 4xx universal interrupt controller */
-enum {
- PPCUIC_OUTPUT_INT = 0,
- PPCUIC_OUTPUT_CINT = 1,
- PPCUIC_OUTPUT_NB,
-};
-qemu_irq *ppcuic_init (CPUPPCState *env, qemu_irq *irqs,
- uint32_t dcr_base, int has_ssr, int has_vr);
-
void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks,
MemoryRegion ram_memories[],
hwaddr ram_bases[], hwaddr ram_sizes[],
diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
index ffe4cf43e88..fe9d4f7155e 100644
--- a/hw/ppc/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -77,44 +77,6 @@ PowerPCCPU *ppc4xx_init(const char *cpu_type,
return cpu;
}
-/*****************************************************************************/
-/* "Universal" Interrupt controller */
-
-qemu_irq *ppcuic_init (CPUPPCState *env, qemu_irq *irqs,
- uint32_t dcr_base, int has_ssr, int has_vr)
-{
- DeviceState *uicdev = qdev_new(TYPE_PPC_UIC);
- SysBusDevice *uicsbd = SYS_BUS_DEVICE(uicdev);
- qemu_irq *uic_irqs;
- int i;
-
- qdev_prop_set_uint32(uicdev, "dcr-base", dcr_base);
- qdev_prop_set_bit(uicdev, "use-vectors", has_vr);
- object_property_set_link(OBJECT(uicdev), "cpu", OBJECT(env_cpu(env)),
- &error_fatal);
- sysbus_realize_and_unref(uicsbd, &error_fatal);
-
- sysbus_connect_irq(uicsbd, PPCUIC_OUTPUT_INT, irqs[PPCUIC_OUTPUT_INT]);
- sysbus_connect_irq(uicsbd, PPCUIC_OUTPUT_CINT, irqs[PPCUIC_OUTPUT_CINT]);
-
- /*
- * Return an allocated array of the UIC's input IRQ lines.
- * This is an ugly temporary API to retain compatibility with
- * the ppcuic_init() interface from the pre-QOM-conversion UIC.
- * None of the callers free this array, so it is leaked -- but
- * so was the array allocated by qemu_allocate_irqs() in the
- * old code.
- *
- * The callers should just instantiate the UIC and wire it up
- * themselves rather than passing qemu_irq* in and out of this function.
- */
- uic_irqs = g_new0(qemu_irq, UIC_MAX_IRQ);
- for (i = 0; i < UIC_MAX_IRQ; i++) {
- uic_irqs[i] = qdev_get_gpio_in(uicdev, i);
- }
- return uic_irqs;
-}
-
/*****************************************************************************/
/* SDRAM controller */
typedef struct ppc4xx_sdram_t ppc4xx_sdram_t;
--
2.20.1
On Sat, Dec 12, 2020 at 12:15:37AM +0000, Peter Maydell wrote:
> Now we've converted all the callsites to directly create the QOM UIC
> device themselves, the ppcuic_init() function is unused and can be
> removed. The enum defining PPCUIC symbolic constants can be moved
> to the ppc-uic.h header where it more naturally belongs.
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> include/hw/intc/ppc-uic.h | 7 +++++++
> include/hw/ppc/ppc4xx.h | 9 ---------
> hw/ppc/ppc4xx_devs.c | 38 --------------------------------------
> 3 files changed, 7 insertions(+), 47 deletions(-)
>
> diff --git a/include/hw/intc/ppc-uic.h b/include/hw/intc/ppc-uic.h
> index e614e2ffd80..22dd5e5ac2c 100644
> --- a/include/hw/intc/ppc-uic.h
> +++ b/include/hw/intc/ppc-uic.h
> @@ -47,6 +47,13 @@ OBJECT_DECLARE_SIMPLE_TYPE(PPCUIC, PPC_UIC)
>
> #define UIC_MAX_IRQ 32
>
> +/* Symbolic constants for the sysbus IRQ outputs */
> +enum {
> + PPCUIC_OUTPUT_INT = 0,
> + PPCUIC_OUTPUT_CINT = 1,
> + PPCUIC_OUTPUT_NB,
> +};
> +
> struct PPCUIC {
> /*< private >*/
> SysBusDevice parent_obj;
> diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h
> index cc19c8da5be..980f964b5a9 100644
> --- a/include/hw/ppc/ppc4xx.h
> +++ b/include/hw/ppc/ppc4xx.h
> @@ -33,15 +33,6 @@ PowerPCCPU *ppc4xx_init(const char *cpu_model,
> clk_setup_t *cpu_clk, clk_setup_t *tb_clk,
> uint32_t sysclk);
>
> -/* PowerPC 4xx universal interrupt controller */
> -enum {
> - PPCUIC_OUTPUT_INT = 0,
> - PPCUIC_OUTPUT_CINT = 1,
> - PPCUIC_OUTPUT_NB,
> -};
> -qemu_irq *ppcuic_init (CPUPPCState *env, qemu_irq *irqs,
> - uint32_t dcr_base, int has_ssr, int has_vr);
> -
> void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks,
> MemoryRegion ram_memories[],
> hwaddr ram_bases[], hwaddr ram_sizes[],
> diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
> index ffe4cf43e88..fe9d4f7155e 100644
> --- a/hw/ppc/ppc4xx_devs.c
> +++ b/hw/ppc/ppc4xx_devs.c
> @@ -77,44 +77,6 @@ PowerPCCPU *ppc4xx_init(const char *cpu_type,
> return cpu;
> }
>
> -/*****************************************************************************/
> -/* "Universal" Interrupt controller */
> -
> -qemu_irq *ppcuic_init (CPUPPCState *env, qemu_irq *irqs,
> - uint32_t dcr_base, int has_ssr, int has_vr)
> -{
> - DeviceState *uicdev = qdev_new(TYPE_PPC_UIC);
> - SysBusDevice *uicsbd = SYS_BUS_DEVICE(uicdev);
> - qemu_irq *uic_irqs;
> - int i;
> -
> - qdev_prop_set_uint32(uicdev, "dcr-base", dcr_base);
> - qdev_prop_set_bit(uicdev, "use-vectors", has_vr);
> - object_property_set_link(OBJECT(uicdev), "cpu", OBJECT(env_cpu(env)),
> - &error_fatal);
> - sysbus_realize_and_unref(uicsbd, &error_fatal);
> -
> - sysbus_connect_irq(uicsbd, PPCUIC_OUTPUT_INT, irqs[PPCUIC_OUTPUT_INT]);
> - sysbus_connect_irq(uicsbd, PPCUIC_OUTPUT_CINT, irqs[PPCUIC_OUTPUT_CINT]);
> -
> - /*
> - * Return an allocated array of the UIC's input IRQ lines.
> - * This is an ugly temporary API to retain compatibility with
> - * the ppcuic_init() interface from the pre-QOM-conversion UIC.
> - * None of the callers free this array, so it is leaked -- but
> - * so was the array allocated by qemu_allocate_irqs() in the
> - * old code.
> - *
> - * The callers should just instantiate the UIC and wire it up
> - * themselves rather than passing qemu_irq* in and out of this function.
> - */
> - uic_irqs = g_new0(qemu_irq, UIC_MAX_IRQ);
> - for (i = 0; i < UIC_MAX_IRQ; i++) {
> - uic_irqs[i] = qdev_get_gpio_in(uicdev, i);
> - }
> - return uic_irqs;
> -}
> -
> /*****************************************************************************/
> /* SDRAM controller */
> typedef struct ppc4xx_sdram_t ppc4xx_sdram_t;
> --
> 2.20.1
>
© 2016 - 2026 Red Hat, Inc.