From: Igor Mammedov <imammedo@redhat.com>
To: "Andreas Färber" <afaerber@suse.de>
Cc: aliguori@us.ibm.com, stefanha@linux.vnet.ibm.com,
gleb@redhat.com, jan kiszka <jan.kiszka@siemens.com>,
mtosatti@redhat.com, mdroth@linux.vnet.ibm.com,
qemu-devel@nongnu.org, blauwirbel@gmail.com, avi@redhat.com,
pbonzini@redhat.com, akong@redhat.com, lersek@redhat.com,
ehabkost@redhat.com
Subject: Re: [Qemu-devel] [RFC 12/20] add visitor for parsing hz[KMG] input string
Date: Fri, 10 Aug 2012 08:03:04 -0400 (EDT) [thread overview]
Message-ID: <1296063114.8098489.1344600184101.JavaMail.root@redhat.com> (raw)
In-Reply-To: <5024F736.1080004@suse.de>
----- Original Message -----
> From: "Andreas Färber" <afaerber@suse.de>
> To: "Igor Mammedov" <imammedo@redhat.com>
> Cc: qemu-devel@nongnu.org, gleb@redhat.com, lersek@redhat.com, pbonzini@redhat.com, stefanha@linux.vnet.ibm.com,
> mdroth@linux.vnet.ibm.com, akong@redhat.com, ehabkost@redhat.com, aliguori@us.ibm.com, mtosatti@redhat.com, "jan
> kiszka" <jan.kiszka@siemens.com>, blauwirbel@gmail.com, avi@redhat.com
> Sent: Friday, August 10, 2012 1:57:42 PM
> Subject: Re: [RFC 12/20] add visitor for parsing hz[KMG] input string
>
> Am 10.08.2012 13:22, schrieb Igor Mammedov:
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > ---
> > qapi/qapi-visit-core.c | 11 +++++++++++
> > qapi/qapi-visit-core.h | 2 ++
> > qapi/string-input-visitor.c | 22 ++++++++++++++++++++++
> > 3 files changed, 35 insertions(+)
> >
> > diff --git a/qapi/qapi-visit-core.c b/qapi/qapi-visit-core.c
> > index 7a82b63..322cfa6 100644
> > --- a/qapi/qapi-visit-core.c
> > +++ b/qapi/qapi-visit-core.c
> > @@ -311,3 +311,14 @@ void input_type_enum(Visitor *v, int *obj,
> > const char *strings[],
> > g_free(enum_str);
> > *obj = value;
> > }
> > +
> > +void visit_type_hz(Visitor *v, int64_t *obj, const char *name,
> > Error **errp)
> > +{
> > + if (!error_is_set(errp)) {
> > + if (v->type_hz) {
> > + v->type_hz(v, obj, name, errp);
> > + } else {
> > + v->type_int(v, obj, name, errp);
> > + }
> > + }
> > +}
> > diff --git a/qapi/qapi-visit-core.h b/qapi/qapi-visit-core.h
> > index 60aceda..29d3038 100644
> > --- a/qapi/qapi-visit-core.h
> > +++ b/qapi/qapi-visit-core.h
> > @@ -62,6 +62,7 @@ struct Visitor
> > void (*type_int64)(Visitor *v, int64_t *obj, const char *name,
> > Error **errp);
> > /* visit_type_size() falls back to (*type_uint64)() if
> > type_size is unset */
> > void (*type_size)(Visitor *v, uint64_t *obj, const char *name,
> > Error **errp);
> > + void (*type_hz)(Visitor *v, int64_t *obj, const char *name,
> > Error **errp);
> > };
> >
> > void visit_start_handle(Visitor *v, void **obj, const char *kind,
> > @@ -91,5 +92,6 @@ void visit_type_size(Visitor *v, uint64_t *obj,
> > const char *name, Error **errp);
> > void visit_type_bool(Visitor *v, bool *obj, const char *name,
> > Error **errp);
> > void visit_type_str(Visitor *v, char **obj, const char *name,
> > Error **errp);
> > void visit_type_number(Visitor *v, double *obj, const char *name,
> > Error **errp);
> > +void visit_type_hz(Visitor *v, int64_t *obj, const char *name,
> > Error **errp);
> >
> > #endif
> > diff --git a/qapi/string-input-visitor.c
> > b/qapi/string-input-visitor.c
> > index 497eb9a..32e3780 100644
> > --- a/qapi/string-input-visitor.c
> > +++ b/qapi/string-input-visitor.c
> > @@ -110,6 +110,27 @@ static void parse_start_optional(Visitor *v,
> > bool *present,
> > *present = true;
> > }
> >
> > +static void parse_type_hz(Visitor *v, int64_t *obj, const char
> > *name,
> > + Error **errp)
> > +{
> > + StringInputVisitor *siv = DO_UPCAST(StringInputVisitor,
> > visitor, v);
> > + char *endp = (char *) siv->string;
> > + long long val;
> > +
> > + errno = 0;
> > + if (siv->string) {
> > + val = strtosz_suffix_unit(siv->string, &endp,
> > + STRTOSZ_DEFSUFFIX_B, 1000);
> > + }
> > + if (!siv->string || val == -1 || *endp) {
> > + error_set(errp, QERR_INVALID_PARAMETER_VALUE, name,
> > + "a value representible as a non-negative int64");
>
> Thunderbird suggests "representable".
copy paste error, I'll fix source and here.
>
> > + return;
> > + }
> > +
> > + *obj = val;
> > +}
> > +
> > Visitor *string_input_get_visitor(StringInputVisitor *v)
> > {
> > return &v->visitor;
> > @@ -132,6 +153,7 @@ StringInputVisitor
> > *string_input_visitor_new(const char *str)
> > v->visitor.type_str = parse_type_str;
> > v->visitor.type_number = parse_type_number;
> > v->visitor.start_optional = parse_start_optional;
> > + v->visitor.type_hz = parse_type_hz;
> >
> > v->string = str;
> > return v;
>
> I would prefer to stay physically exact and do s/hz/freq/g. ;)
I'll do it next respin.
>
> Seems like a good idea to have a specialized visitor, didn't think of
> that. Quite possibly there's use cases beyond tsc_freq that we might
> want to switch as follow-ups.
>
> Regards,
> Andreas
>
> --
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG
> Nürnberg
>
Thanks,
Igor
next prev parent reply other threads:[~2012-08-10 12:03 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-10 11:22 [Qemu-devel] [RFC 00/20] target-i386: convert CPU features into properties Igor Mammedov
2012-08-10 11:22 ` [Qemu-devel] [RFC 01/20] target-i386: return Error from cpu_x86_find_by_name() Igor Mammedov
2012-08-11 12:19 ` Blue Swirl
2012-08-10 11:22 ` [Qemu-devel] [RFC 02/20] target-i386: cpu_x86_register(): report error from property setter Igor Mammedov
2012-08-10 11:22 ` [Qemu-devel] [RFC 03/20] target-i386: if x86_cpu_realize() failed report error and do cleanup Igor Mammedov
2012-08-10 11:41 ` Andreas Färber
2012-08-10 11:22 ` [Qemu-devel] [RFC 04/20] target-i386: filter out not TCG features if running without kvm at realize time Igor Mammedov
2012-08-10 13:48 ` Eduardo Habkost
2012-08-10 11:22 ` [Qemu-devel] [RFC 05/20] target-i386: move out CPU features initialization in separate func Igor Mammedov
2012-08-10 13:53 ` Eduardo Habkost
2012-08-10 11:22 ` [Qemu-devel] [RFC 06/20] target-i386: xlevel should be more than 0x80000000, move fixup into setter Igor Mammedov
2012-08-10 14:44 ` Eduardo Habkost
2012-08-10 11:22 ` [Qemu-devel] [RFC 07/20] target-i386: convert cpuid features into properties Igor Mammedov
2012-08-10 14:50 ` Eduardo Habkost
2012-10-02 20:31 ` Eduardo Habkost
2012-08-10 11:22 ` [Qemu-devel] [RFC 08/20] target-i386: convert 'hv_spinlocks' feature into property Igor Mammedov
2012-08-10 11:22 ` [Qemu-devel] [RFC 09/20] target-i386: convert 'hv_relaxed' " Igor Mammedov
2012-08-10 11:22 ` [Qemu-devel] [RFC 10/20] target-i386: convert 'hv_vapic' " Igor Mammedov
2012-08-10 11:22 ` [Qemu-devel] [RFC 11/20] target-i386: convert 'check' and 'enforce' features into properties Igor Mammedov
2012-08-10 15:09 ` Eduardo Habkost
2012-08-14 21:18 ` Igor Mammedov
2012-08-15 11:39 ` Eduardo Habkost
2012-08-15 12:11 ` Igor Mammedov
2012-08-15 12:19 ` Eduardo Habkost
2012-08-10 11:22 ` [Qemu-devel] [RFC 12/20] add visitor for parsing hz[KMG] input string Igor Mammedov
2012-08-10 11:57 ` Andreas Färber
2012-08-10 12:03 ` Igor Mammedov [this message]
2012-08-10 11:22 ` [Qemu-devel] [RFC 13/20] target-i386: use visit_type_hz to parse tsc_freq property value Igor Mammedov
2012-08-10 11:22 ` [Qemu-devel] [RFC 14/20] target-i386: introduce vendor-override property Igor Mammedov
2012-08-10 11:22 ` [Qemu-devel] [RFC 15/20] target-i386: use define for cpuid vendor string size Igor Mammedov
2012-08-15 15:52 ` Pandarathil, Vijaymohan R
2012-08-15 16:06 ` Eduardo Habkost
2012-08-10 11:22 ` [Qemu-devel] [RFC 16/20] target-i386: replace uint32_t vendor fields by vendor string in x86_def_t Igor Mammedov
2012-08-10 11:22 ` [Qemu-devel] [RFC 17/20] target-i386: parse cpu_model string into set of stringified properties Igor Mammedov
2012-08-10 11:22 ` [Qemu-devel] [RFC 18/20] target-i386: use properties to set/unset user specified features on CPU Igor Mammedov
2012-08-13 20:48 ` Eduardo Habkost
2012-08-14 22:55 ` Igor Mammedov
2012-08-15 12:37 ` Eduardo Habkost
2012-08-15 12:41 ` Igor Mammedov
2012-08-10 11:22 ` [Qemu-devel] [RFC 19/20] target-i386: move init of "hypervisor" feature into CPU initializer from cpudef Igor Mammedov
2012-08-10 11:22 ` [Qemu-devel] [RFC 20/20] target-i386: move default init of cpuid_kvm_features bitmap " Igor Mammedov
2012-08-10 15:24 ` Eduardo Habkost
2012-08-15 12:23 ` Igor Mammedov
2012-08-15 12:32 ` Eduardo Habkost
2012-08-10 11:39 ` [Qemu-devel] [RFC 00/20] target-i386: convert CPU features into properties Igor Mammedov
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=1296063114.8098489.1344600184101.JavaMail.root@redhat.com \
--to=imammedo@redhat.com \
--cc=afaerber@suse.de \
--cc=akong@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=avi@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=ehabkost@redhat.com \
--cc=gleb@redhat.com \
--cc=jan.kiszka@siemens.com \
--cc=lersek@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@linux.vnet.ibm.com \
/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.