From: "Andreas Färber" <afaerber@suse.de>
To: Igor Mammedov <imammedo@redhat.com>
Cc: qemu-devel@nongnu.org, ehabkost@redhat.com
Subject: Re: [Qemu-devel] [PATCH 01/10] qdev: add qdev property for bool type
Date: Thu, 07 Mar 2013 15:05:05 +0100 [thread overview]
Message-ID: <51389E91.1020804@suse.de> (raw)
In-Reply-To: <1361754189-29809-2-git-send-email-imammedo@redhat.com>
Am 25.02.2013 02:03, schrieb Igor Mammedov:
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
I vaguely remember having written something like this long time ago for
ISA and for Vasilis... looks good except for minor nits.
> ---
> hw/qdev-properties.c | 33 +++++++++++++++++++++++++++++++++
> hw/qdev-properties.h | 10 ++++++++++
> 2 files changed, 43 insertions(+), 0 deletions(-)
>
> diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
> index a8a31f5..16ac814 100644
> --- a/hw/qdev-properties.c
> +++ b/hw/qdev-properties.c
> @@ -106,6 +106,39 @@ PropertyInfo qdev_prop_bit = {
> .set = set_bit,
> };
>
> +/* --- bool --- */
> +
> +static void get_bool(Object *obj, Visitor *v, void *opaque,
> + const char *name, Error **errp)
> +{
> + DeviceState *dev = DEVICE(obj);
> + Property *prop = opaque;
> + bool *ptr = qdev_get_prop_ptr(dev, prop);
> +
> + visit_type_bool(v, ptr, name, errp);
> +}
> +
> +static void set_bool(Object *obj, Visitor *v, void *opaque,
> + const char *name, Error **errp)
Indentation is off.
> +{
> + DeviceState *dev = DEVICE(obj);
> + Property *prop = opaque;
> + bool *ptr = qdev_get_prop_ptr(dev, prop);
> +
> + if (dev->realized) {
> + error_setg(errp, "Insufficient permission to perform this operation");
Should we be more specific here?
E.g., "Property '%s' cannot be changed once realized."
Andreas
> + return;
> + }
> +
> + visit_type_bool(v, ptr, name, errp);
> +}
> +
> +PropertyInfo qdev_prop_bool = {
> + .name = "boolean",
> + .get = get_bool,
> + .set = set_bool,
> +};
> +
> /* --- 8bit integer --- */
>
> static void get_uint8(Object *obj, Visitor *v, void *opaque,
> diff --git a/hw/qdev-properties.h b/hw/qdev-properties.h
> index 20c67f3..3915f7c 100644
> --- a/hw/qdev-properties.h
> +++ b/hw/qdev-properties.h
> @@ -6,6 +6,7 @@
> /*** qdev-properties.c ***/
>
> extern PropertyInfo qdev_prop_bit;
> +extern PropertyInfo qdev_prop_bool;
> extern PropertyInfo qdev_prop_uint8;
> extern PropertyInfo qdev_prop_uint16;
> extern PropertyInfo qdev_prop_uint32;
> @@ -51,6 +52,15 @@ extern PropertyInfo qdev_prop_pci_host_devaddr;
> .defval = (bool)_defval, \
> }
>
> +#define DEFINE_PROP_BOOL(_name, _state, _field, _defval) { \
> + .name = (_name), \
> + .info = &(qdev_prop_bool), \
> + .offset = offsetof(_state, _field) \
> + + type_check(bool, typeof_field(_state, _field)), \
> + .qtype = QTYPE_QBOOL, \
> + .defval = (bool)_defval, \
> + }
> +
> #define DEFINE_PROP_UINT8(_n, _s, _f, _d) \
> DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_uint8, uint8_t)
> #define DEFINE_PROP_UINT16(_n, _s, _f, _d) \
>
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
next parent reply other threads:[~2013-03-07 14:05 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1361754189-29809-1-git-send-email-imammedo@redhat.com>
[not found] ` <1361754189-29809-2-git-send-email-imammedo@redhat.com>
2013-03-07 14:05 ` Andreas Färber [this message]
2013-03-07 16:16 ` [Qemu-devel] [PATCH 01/10 v2] qdev: add qdev property for bool type Igor Mammedov
2013-04-09 13:56 ` Andreas Färber
2013-04-09 14:13 ` Igor Mammedov
2013-04-09 14:25 ` Andreas Färber
2013-03-18 12:31 ` [Qemu-devel] [PATCH qom-cpu-next 00/10 v7] target-i386: convert CPU features into properties Igor Mammedov
2013-03-18 12:36 ` Andreas Färber
[not found] ` <1361754189-29809-3-git-send-email-imammedo@redhat.com>
2013-04-26 16:20 ` [Qemu-devel] [PATCH 02/10] target-i386: cpu: convert existing dynamic properties into static properties Andreas Färber
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=51389E91.1020804@suse.de \
--to=afaerber@suse.de \
--cc=ehabkost@redhat.com \
--cc=imammedo@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 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.