From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MQRLO-0002UK-KX for qemu-devel@nongnu.org; Mon, 13 Jul 2009 15:37:46 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MQRLL-0002SX-2K for qemu-devel@nongnu.org; Mon, 13 Jul 2009 15:37:46 -0400 Received: from [199.232.76.173] (port=52611 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MQRLK-0002SQ-P9 for qemu-devel@nongnu.org; Mon, 13 Jul 2009 15:37:42 -0400 Received: from mx2.redhat.com ([66.187.237.31]:47339) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MQRLI-0006RP-M7 for qemu-devel@nongnu.org; Mon, 13 Jul 2009 15:37:41 -0400 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n6DJbdDJ027137 for ; Mon, 13 Jul 2009 15:37:39 -0400 Date: Mon, 13 Jul 2009 22:36:52 +0300 From: "Michael S. Tsirkin" Subject: Re: [Qemu-devel] [PATCH 2/6] qdev/compat: compat property infrastructure. Message-ID: <20090713193652.GA10979@redhat.com> References: <1247499005-31011-1-git-send-email-kraxel@redhat.com> <1247499005-31011-3-git-send-email-kraxel@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1247499005-31011-3-git-send-email-kraxel@redhat.com> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: qemu-devel@nongnu.org Some coding style comments On Mon, Jul 13, 2009 at 05:30:01PM +0200, Gerd Hoffmann wrote: > > Signed-off-by: Gerd Hoffmann > --- > hw/boards.h | 1 + > hw/qdev-properties.c | 19 +++++++++++++++++++ > hw/qdev.c | 1 + > hw/qdev.h | 11 +++++++++++ > vl.c | 2 ++ > 5 files changed, 34 insertions(+), 0 deletions(-) > > diff --git a/hw/boards.h b/hw/boards.h > index f6733b7..5a07d07 100644 > --- a/hw/boards.h > +++ b/hw/boards.h > @@ -17,6 +17,7 @@ typedef struct QEMUMachine { > int use_scsi; > int max_cpus; > int is_default; > + struct CompatProperty *compat_props; use a typedef > struct QEMUMachine *next; > } QEMUMachine; > > diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c > index ea937ae..2b1ee7d 100644 > --- a/hw/qdev-properties.c > +++ b/hw/qdev-properties.c > @@ -244,3 +244,22 @@ void qdev_prop_set_defaults(DeviceState *dev, Property *props) > } > } > > +static CompatProperty *compat_props; > + > +void qdev_register_compat_props(CompatProperty *props) > +{ > + compat_props = props; > +} > + > +void qdev_prop_set_compat(DeviceState *dev) > +{ > + CompatProperty *prop; > + > + if (!compat_props) Missing {} > + return; > + for (prop = compat_props; prop->driver != NULL; prop++) { != NULL not needed in if > + if (strcmp(dev->info->name, prop->driver) != 0) != 0 not needed in if > + continue; Missing {} > + qdev_prop_parse(dev, prop->property, prop->value); check return value? > + } > +} > diff --git a/hw/qdev.c b/hw/qdev.c > index cdb25d4..7ca078d 100644 > --- a/hw/qdev.c > +++ b/hw/qdev.c > @@ -98,6 +98,7 @@ DeviceState *qdev_create(BusState *bus, const char *name) > dev->parent_bus = bus; > qdev_prop_set_defaults(dev, dev->info->props); > qdev_prop_set_defaults(dev, dev->parent_bus->info->props); > + qdev_prop_set_compat(dev); > LIST_INSERT_HEAD(&bus->children, dev, sibling); > return dev; > } > diff --git a/hw/qdev.h b/hw/qdev.h > index e807036..f49f641 100644 > --- a/hw/qdev.h > +++ b/hw/qdev.h > @@ -8,6 +8,8 @@ typedef struct Property Property; > > typedef struct PropertyInfo PropertyInfo; > > +typedef struct CompatProperty CompatProperty; > + > typedef struct DeviceInfo DeviceInfo; > > typedef struct BusState BusState; > @@ -71,6 +73,12 @@ struct PropertyInfo { > int (*print)(DeviceState *dev, Property *prop, char *dest, size_t len); > }; > > +struct CompatProperty { > + const char *driver; > + const char *property; > + const char *value; > +}; > + > /*** Board API. This should go away once we have a machine config file. ***/ > > DeviceState *qdev_create(BusState *bus, const char *name); > @@ -174,4 +182,7 @@ void qdev_prop_set_uint32(DeviceState *dev, const char *name, uint32_t value); > void qdev_prop_set_ptr(DeviceState *dev, const char *name, void *value); > void qdev_prop_set_defaults(DeviceState *dev, Property *props); > > +void qdev_register_compat_props(CompatProperty *props); qedev_set_compat_props might be a better name. > +void qdev_prop_set_compat(DeviceState *dev); qdev_parse_compat_props might be a better name. > + > #endif > diff --git a/vl.c b/vl.c > index cdc7b8a..5402787 100644 > --- a/vl.c > +++ b/vl.c > @@ -5911,6 +5911,8 @@ int main(int argc, char **argv, char **envp) > > module_call_init(MODULE_INIT_DEVICE); > > + if (machine->compat_props) Missing {} > + qdev_register_compat_props(machine->compat_props); > machine->init(ram_size, boot_devices, > kernel_filename, kernel_cmdline, initrd_filename, cpu_model); > > -- > 1.6.2.5 > >