[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 09/11] hw/rx/rx62n: Use qdev_prop_set_array()
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 09/11] hw/rx/rx62n: Use qdev_prop_set_array() |
Date: |
Fri, 22 Sep 2023 15:59:55 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) |
Kevin Wolf <kwolf@redhat.com> writes:
> Instead of manually setting "foo-len" and "foo[i]" properties, build a
> QList and use the new qdev_prop_set_array() helper to set the whole
> array property with a single call.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
> hw/rx/rx62n.c | 19 ++++++++++---------
> 1 file changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/hw/rx/rx62n.c b/hw/rx/rx62n.c
> index 3e887a0fc7..6990096642 100644
> --- a/hw/rx/rx62n.c
> +++ b/hw/rx/rx62n.c
> @@ -28,6 +28,7 @@
> #include "hw/sysbus.h"
> #include "hw/qdev-properties.h"
> #include "sysemu/sysemu.h"
> +#include "qapi/qmp/qlist.h"
> #include "qom/object.h"
>
> /*
> @@ -130,22 +131,22 @@ static void register_icu(RX62NState *s)
> {
> int i;
> SysBusDevice *icu;
> + QList *ipr_map, *trigger_level;
>
> object_initialize_child(OBJECT(s), "icu", &s->icu, TYPE_RX_ICU);
> icu = SYS_BUS_DEVICE(&s->icu);
> - qdev_prop_set_uint32(DEVICE(icu), "len-ipr-map", NR_IRQS);
> +
> + ipr_map = qlist_new();
> for (i = 0; i < NR_IRQS; i++) {
> - char propname[32];
> - snprintf(propname, sizeof(propname), "ipr-map[%d]", i);
> - qdev_prop_set_uint32(DEVICE(icu), propname, ipr_table[i]);
> + qlist_append_int(ipr_map, ipr_table[i]);
> }
> - qdev_prop_set_uint32(DEVICE(icu), "len-trigger-level",
> - ARRAY_SIZE(levelirq));
> + qdev_prop_set_array(sysctl, "ipr-map", ipr_map);
../hw/rx/rx62n.c:143:25: error: ‘sysctl’ undeclared (first use in this
function); did you mean ‘syscall’?
Should be DEVICE(icu), I guess.
> +
> + trigger_level = qlist_new();
> for (i = 0; i < ARRAY_SIZE(levelirq); i++) {
> - char propname[32];
> - snprintf(propname, sizeof(propname), "trigger-level[%d]", i);
> - qdev_prop_set_uint32(DEVICE(icu), propname, levelirq[i]);
> + qlist_append_int(trigger_level, levelirq[i]);
> }
> + qdev_prop_set_array(sysctl, "trigger-level", trigger_level);
Again.
>
> for (i = 0; i < NR_IRQS; i++) {
> s->irq[i] = qdev_get_gpio_in(DEVICE(icu), i);
- [PATCH 07/11] hw/arm/virt: Use qdev_prop_set_array(), (continued)
- [PATCH 07/11] hw/arm/virt: Use qdev_prop_set_array(), Kevin Wolf, 2023/09/08
- [PATCH 11/11] qdev: Rework array properties based on list visitor, Kevin Wolf, 2023/09/08
- [PATCH 09/11] hw/rx/rx62n: Use qdev_prop_set_array(), Kevin Wolf, 2023/09/08
- [PATCH 08/11] hw/arm/xlnx-versal: Use qdev_prop_set_array(), Kevin Wolf, 2023/09/08
- [PATCH 10/11] qom: Add object_property_set_default_list(), Kevin Wolf, 2023/09/08