[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] hw/i2c/core.c: add the id property of i2c_slave
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH] hw/i2c/core.c: add the id property of i2c_slaver when created in the QEMUMachine's initialization |
Date: |
Fri, 15 Nov 2013 10:28:40 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) |
"Zhou Yuan" <address@hidden> writes:
> From: zhouy <address@hidden>
> Date: Fri, 15 Nov 2013 15:50:52 -0500
> Subject: [PATCH] add the id property of i2c_slaver when created in the
> QEMUMachine's initialization
>
> Signed-off-by: zhouy <address@hidden>
> ---
> qemu-master/hw/i2c/core.c | 8 +++++++-
> 1 files changed, 7 insertions(+), 1 deletions(-)
>
> diff --git a/qemu-master/hw/i2c/core.c b/qemu-master/hw/i2c/core.c
> index c97e7f7..ea3e59d 100644
> --- a/qemu-master/hw/i2c/core.c
> +++ b/qemu-master/hw/i2c/core.c
> @@ -213,10 +213,16 @@ static int i2c_slave_qdev_init(DeviceState *dev)
> DeviceState *i2c_create_slave(i2c_bus *bus, const char *name, uint8_t addr)
> {
> DeviceState *dev;
> -
> + static unsigned int seq_num;
> + char *id = g_malloc0(20);
> + snprintf(id, 20, "%s-%d", name, seq_num);
> dev = qdev_create(&bus->qbus, name);
> qdev_prop_set_uint8(dev, "address", addr);
> + dev->id = id;
> + object_property_add_child(container_get(qdev_get_machine(),
> "/peripheral"),
> + dev->id, OBJECT(dev), NULL);
> qdev_init_nofail(dev);
> + seq_num++;
> return dev;
> }
Why is this needed?
In general, property "id" / DeviceState member id is strictly for the
user, and should never be set automatically. Exceptions exist in
convenience options, mostly for historical reasons.