On Thu, Jul 25, 2013 at 01:55:26PM +0300, Michael S. Tsirkin wrote:
> On Thu, Jul 25, 2013 at 12:29:52PM +0200, Gerd Hoffmann wrote:
> > On 07/24/13 18:02, Michael S. Tsirkin wrote:
> > > Add API to find pvpanic device and get its io port.
> > > Will be used to fill in guest info structure.
> >
> > > +uint16_t pvpanic_port(void)
> > > +{
> > > + Object *o = object_resolve_path_type("", TYPE_ISA_PVPANIC_DEVICE,
> > > NULL);
> > > + PVPanicState *s;
> > > + if (!o) {
> > > + return 0;
> > > + }
> >
> > return object_property_get_int(o, "ioport");
> > }
> >
> > Then you don't need PVPanicState access and can place the code into
> > acpi-build.c.
> >
> > cheers,
> > Gerd
>
> I can change the implementation but I don't think it's
> a good idea to copy property names around:
> it's too fragile, compiler won't warn us if we
> change the name or value semantics, or make
> a mistake in acpi-build.c
And even within pvpanic.c, this will make me copy-paste
the "ioport" string or create yet another macro.
s = ISA_PVPANIC_DEVICE(o);
return s->ioport;
seems nicer.
> Same applies to TYPE_ISA_PVPANIC_DEVICE: better
> to expose an API than expose the type externally.
> --
> MST