[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [BUGFIX][PATCH for 2.2 v5 1/1] -machine vmport=auto: Fi
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [BUGFIX][PATCH for 2.2 v5 1/1] -machine vmport=auto: Fix handling of VMWare ioport emulation for xen |
Date: |
Fri, 21 Nov 2014 11:53:33 -0200 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Fri, Nov 21, 2014 at 08:30:58AM -0500, Don Slutz wrote:
> On 11/20/14 21:01, Eduardo Habkost wrote:
> >On Thu, Nov 20, 2014 at 05:32:56PM -0500, Don Slutz wrote:
> >[...]
> >>@@ -1711,18 +1711,23 @@ static void pc_machine_set_max_ram_below_4g(Object
> >>*obj, Visitor *v,
> >> pcms->max_ram_below_4g = value;
> >> }
> >>-static bool pc_machine_get_vmport(Object *obj, Error **errp)
> >>+static void pc_machine_get_vmport(Object *obj, Visitor *v, void *opaque,
> >>+ const char *name, Error **errp)
> >> {
> >> PCMachineState *pcms = PC_MACHINE(obj);
> >>+ int vmport = pcms->vmport;
> >>- return pcms->vmport;
> >>+ visit_type_enum(v, &vmport, OnOffAuto_lookup, NULL, name, errp);
> >A visit_type_OnOffAuto() function is automatically generated by the QAPI
> >schema, so you don't need to deal with the low level visit_type_enum()
> >function.
>
> Ok. Will switch.
>
> >> }
> >>-static void pc_machine_set_vmport(Object *obj, bool value, Error **errp)
> >>+static void pc_machine_set_vmport(Object *obj, Visitor *v, void *opaque,
> >>+ const char *name, Error **errp)
> >> {
> >> PCMachineState *pcms = PC_MACHINE(obj);
> >>+ int vmport;
> >>- pcms->vmport = value;
> >>+ visit_type_enum(v, &vmport, OnOffAuto_lookup, NULL, name, errp);
> >>+ pcms->vmport = vmport;
> >'vmport' may be undefined in case the visitor return an error, and in
> >this case you shouldn't change pcms->vmport. This won't be a problem if
> >you just call:
> >
> > visit_type_OnOffAuto(v, &pcms->vmport, name, errp);
>
> Will do.
>
> >> }
> >> static void pc_machine_initfn(Object *obj)
> >>@@ -1737,11 +1742,11 @@ static void pc_machine_initfn(Object *obj)
> >> pc_machine_get_max_ram_below_4g,
> >> pc_machine_set_max_ram_below_4g,
> >> NULL, NULL, NULL);
> >>- pcms->vmport = !xen_enabled();
> >>- object_property_add_bool(obj, PC_MACHINE_VMPORT,
> >>- pc_machine_get_vmport,
> >>- pc_machine_set_vmport,
> >>- NULL);
> >>+ pcms->vmport = ON_OFF_AUTO_AUTO;
> >>+ object_property_add(obj, PC_MACHINE_VMPORT, "str",
> >I believe "OnOffAuto" is a valid type name, if it is defined in the QAPI
> >schema.
>
> I can only find:
>
> qapi-types.h:typedef enum OnOffAuto
> qapi-types.h:} OnOffAuto;
I don't understand what you mean, where did you expect to find it? You added it
to the schema, so it is now a valid type name.
>
> Which I use to define pcms->vmport. The best I can translate this is
> that "str" is what you are looking to replace.
>
> So I plan no change here.
You are not defining a string property, but an OnOffAuto enum property,
so why use "str"?
See, for example, the type of an existing enum property:
ide-hd.bios-chs-trans:
$ qemu-system-x86_64 -device ide-hd,?
[...]
ide-hd.bios-chs-trans=BiosAtaTranslation (Logical CHS translation algorithm,
auto/none/lba/large/rechs)
[...]
$
--
Eduardo