From: KONRAD Frederic <frederic.konrad@adacore.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, mark.cave-ayland@ilande.co.uk,
chouteau@adacore.com, frederic.konrad@adacore.com,
philmd@redhat.com, atar4qemu@gmail.com
Subject: [Qemu-devel] [PATCH v3 2/7] grlib, irqmp: get rid of the old-style create function
Date: Wed, 15 May 2019 14:31:28 +0200 [thread overview]
Message-ID: <1557923493-4836-3-git-send-email-frederic.konrad@adacore.com> (raw)
In-Reply-To: <1557923493-4836-1-git-send-email-frederic.konrad@adacore.com>
Suggested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>
---
hw/intc/grlib_irqmp.c | 3 +--
hw/sparc/leon3.c | 12 ++++++++++--
include/hw/sparc/grlib.h | 31 ++-----------------------------
3 files changed, 13 insertions(+), 33 deletions(-)
diff --git a/hw/intc/grlib_irqmp.c b/hw/intc/grlib_irqmp.c
index d6f9cb3..20accb6 100644
--- a/hw/intc/grlib_irqmp.c
+++ b/hw/intc/grlib_irqmp.c
@@ -3,7 +3,7 @@
*
* (Multiprocessor and extended interrupt not supported)
*
- * Copyright (c) 2010-2011 AdaCore
+ * Copyright (c) 2010-2019 AdaCore
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -47,7 +47,6 @@
#define FORCE_OFFSET 0x80
#define EXTENDED_OFFSET 0xC0
-#define TYPE_GRLIB_IRQMP "grlib,irqmp"
#define GRLIB_IRQMP(obj) OBJECT_CHECK(IRQMP, (obj), TYPE_GRLIB_IRQMP)
typedef struct IRQMPState IRQMPState;
diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
index f438718..3430693 100644
--- a/hw/sparc/leon3.c
+++ b/hw/sparc/leon3.c
@@ -47,6 +47,8 @@
#define MAX_PILS 16
+#define LEON3_IRQMP_OFFSET (0x80000200)
+
typedef struct ResetData {
SPARCCPU *cpu;
uint32_t entry; /* save kernel entry in case of reset */
@@ -121,6 +123,7 @@ static void leon3_generic_hw_init(MachineState *machine)
int bios_size;
int prom_size;
ResetData *reset_info;
+ DeviceState *dev;
/* Init CPU */
cpu = SPARC_CPU(cpu_create(machine->cpu_type));
@@ -135,9 +138,14 @@ static void leon3_generic_hw_init(MachineState *machine)
qemu_register_reset(main_cpu_reset, reset_info);
/* Allocate IRQ manager */
- grlib_irqmp_create(0x80000200, env, &cpu_irqs, MAX_PILS, &leon3_set_pil_in);
-
+ dev = qdev_create(NULL, TYPE_GRLIB_IRQMP);
+ qdev_prop_set_ptr(dev, "set_pil_in", leon3_set_pil_in);
+ qdev_prop_set_ptr(dev, "set_pil_in_opaque", env);
+ qdev_init_nofail(dev);
+ sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, LEON3_IRQMP_OFFSET);
+ env->irq_manager = dev;
env->qemu_irq_ack = leon3_irq_manager;
+ cpu_irqs = qemu_allocate_irqs(grlib_irqmp_set_irq, dev, MAX_PILS);
/* Allocate RAM */
if (ram_size > 1 * GiB) {
diff --git a/include/hw/sparc/grlib.h b/include/hw/sparc/grlib.h
index 61a345c..bef371a 100644
--- a/include/hw/sparc/grlib.h
+++ b/include/hw/sparc/grlib.h
@@ -1,7 +1,7 @@
/*
* QEMU GRLIB Components
*
- * Copyright (c) 2010-2011 AdaCore
+ * Copyright (c) 2010-2019 AdaCore
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -33,6 +33,7 @@
*/
/* IRQMP */
+#define TYPE_GRLIB_IRQMP "grlib,irqmp"
typedef void (*set_pil_in_fn) (void *opaque, uint32_t pil_in);
@@ -40,34 +41,6 @@ void grlib_irqmp_set_irq(void *opaque, int irq, int level);
void grlib_irqmp_ack(DeviceState *dev, int intno);
-static inline
-DeviceState *grlib_irqmp_create(hwaddr base,
- CPUSPARCState *env,
- qemu_irq **cpu_irqs,
- uint32_t nr_irqs,
- set_pil_in_fn set_pil_in)
-{
- DeviceState *dev;
-
- assert(cpu_irqs != NULL);
-
- dev = qdev_create(NULL, "grlib,irqmp");
- qdev_prop_set_ptr(dev, "set_pil_in", set_pil_in);
- qdev_prop_set_ptr(dev, "set_pil_in_opaque", env);
-
- qdev_init_nofail(dev);
-
- env->irq_manager = dev;
-
- sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
-
- *cpu_irqs = qemu_allocate_irqs(grlib_irqmp_set_irq,
- dev,
- nr_irqs);
-
- return dev;
-}
-
/* GPTimer */
static inline
--
1.8.3.1
next prev parent reply other threads:[~2019-05-15 12:36 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-15 12:31 [Qemu-devel] [PATCH v3 0/7] Leon3 patches KONRAD Frederic
2019-05-15 12:31 ` [Qemu-devel] [PATCH v3 1/7] leon3: fix the error message when no bios are provided KONRAD Frederic
2019-05-15 12:31 ` KONRAD Frederic [this message]
2019-05-15 12:31 ` [Qemu-devel] [PATCH v3 3/7] grlib, gptimer: get rid of the old-style create function KONRAD Frederic
2019-05-15 12:31 ` [Qemu-devel] [PATCH v3 4/7] grlib, apbuart: " KONRAD Frederic
2019-05-15 12:31 ` [Qemu-devel] [PATCH v3 5/7] leon3: add a little bootloader KONRAD Frederic
2019-05-17 10:27 ` Philippe Mathieu-Daudé
2019-05-15 12:31 ` [Qemu-devel] [PATCH v3 6/7] leon3: introduce the plug and play mechanism KONRAD Frederic
2019-05-15 12:31 ` [Qemu-devel] [PATCH v3 7/7] MAINTAINERS: add myself for leon3 KONRAD Frederic
2019-05-17 8:51 ` [Qemu-devel] [PATCH v3 0/7] Leon3 patches Mark Cave-Ayland
2019-05-17 9:18 ` KONRAD Frederic
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=1557923493-4836-3-git-send-email-frederic.konrad@adacore.com \
--to=frederic.konrad@adacore.com \
--cc=atar4qemu@gmail.com \
--cc=chouteau@adacore.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=peter.maydell@linaro.org \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).