All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Brook <paul@codesourcery.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 01/13] qdev: rework device properties.
Date: Fri, 10 Jul 2009 20:42:59 +0100	[thread overview]
Message-ID: <200907102043.01584.paul@codesourcery.com> (raw)
In-Reply-To: <4A57967A.50008@redhat.com>

On Friday 10 July 2009, Gerd Hoffmann wrote:
> On 07/10/09 19:13, Paul Brook wrote:
> >> +extern PropertyInfo qdev_prop_uint32;
> >> +extern PropertyInfo qdev_prop_hex32;
> >
> > Having both of these seems wrong.
>
> Why?
>
> There are properties which tend to be specified as decimal numbers
> (counts, sizes, ...) and some which tend to be specified in hex
> (adresses, ioports, ...).  I think it is useful to have separate
> parse/print functions for them, although they both end up being an
> uint32_t.

I think this is the wrong distinction. Whether you specify something in hex or 
decimal (or even binary/octal) is personal user preference.  Distinguishing 
between integers and addresses may make sense, as those actually have 
different types.

> >> +            .name   = "fifo-size",
> >> +            .info   =&qdev_prop_uint32,
> >> +            .offset = offsetof(SyborgPointerState, fifo_size),
> >> +            .defval = (uint32_t[]) { 16 },
> >
> > This feels kinda crufty. Very easy to get the wrong types.
>
> I think I can make defval a string instead, then go through
> PropertyInfo->parse().  OK?

I don't think that's really any better. I guess it may just be something we 
have to put up with. Possibly have a helper macro that sets all the fields. 
Something like:

  .properties = (Property[]) {
    DEFINE_PROPERTY_UINT32("fifo-size", SyborgPointerState, fifo_size, 16)
  }

Ideally we'd have a single DEFINE_PROPERTY macro and the type would be figured 
out from typeof(fifo_size), but I can't think how to do that.

> >> +int qdev_prop_set_uint32(DeviceState *dev, const char *name, uint32_t
> >> value);
> >
> > Why does this return a value?
>
> It can fail if the size check (soon to be type check) mentioned above
> failed.  Such a failure would be a clear qemu bug though, so maybe
> abort() instead?

Yes. Returning a status code then never checking it is completely pointless.

Paul

  reply	other threads:[~2009-07-10 19:43 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-10 11:26 [Qemu-devel] [PATCH v2 0/13] qdev patches: properties, -device switch, id=<tag> & more Gerd Hoffmann
2009-07-10 11:26 ` [Qemu-devel] [PATCH 01/13] qdev: rework device properties Gerd Hoffmann
2009-07-10 17:13   ` Paul Brook
2009-07-10 19:28     ` Gerd Hoffmann
2009-07-10 19:42       ` Paul Brook [this message]
2009-07-10 20:10         ` Gerd Hoffmann
2009-07-10 11:26 ` [Qemu-devel] [PATCH 02/13] qdev: factor out driver search to qdev_find_info() Gerd Hoffmann
2009-07-10 11:26 ` [Qemu-devel] [PATCH 03/13] qdev/pci: make pci_create return DeviceState instead of PCIDevice Gerd Hoffmann
2009-07-10 11:26 ` [Qemu-devel] [PATCH 04/13] qdev: add generic qdev_device_add() Gerd Hoffmann
2009-07-10 17:23   ` Paul Brook
2009-07-10 20:27     ` Gerd Hoffmann
2009-07-10 20:51       ` Paul Brook
2009-07-14  7:40         ` Gerd Hoffmann
2009-07-14 23:43           ` Markus Armbruster
2009-07-15  1:28             ` Markus Armbruster
2009-07-15  6:26             ` Gerd Hoffmann
2009-07-10 11:26 ` [Qemu-devel] [PATCH 05/13] qdev: add -device command line option Gerd Hoffmann
2009-07-10 11:26 ` [Qemu-devel] [PATCH 06/13] qdev: add no_user, alias and desc Gerd Hoffmann
2009-07-10 11:26 ` [Qemu-devel] [PATCH 07/13] qdev: es1370 description Gerd Hoffmann
2009-07-10 11:26 ` [Qemu-devel] [PATCH 08/13] qdev: convert all vga Gerd Hoffmann
2009-07-10 11:26 ` [Qemu-devel] [PATCH 09/13] qdev/pci: hook up i440fx Gerd Hoffmann
2009-07-10 11:26 ` [Qemu-devel] [PATCH 10/13] qdev: add user-specified identifier to devices Gerd Hoffmann
2009-07-10 17:31   ` Paul Brook
2009-07-10 19:03     ` Gerd Hoffmann
2009-07-10 11:26 ` [Qemu-devel] [PATCH 11/13] switch balloon initialization to -device Gerd Hoffmann
2009-07-10 11:26 ` [Qemu-devel] [PATCH 12/13] qdev: add id= support for pci nics Gerd Hoffmann
2009-07-10 11:26 ` [Qemu-devel] [PATCH 13/13] qdev: print device id in "info pci" Gerd Hoffmann
  -- strict thread matches above, loose matches on Subject: below --
2009-07-03 10:22 [Qemu-devel] [PATCH 0/13] qdev patches: properties, -device switch, id=<tag> & more Gerd Hoffmann
2009-07-03 10:22 ` [Qemu-devel] [PATCH 01/13] qdev: rework device properties Gerd Hoffmann

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=200907102043.01584.paul@codesourcery.com \
    --to=paul@codesourcery.com \
    --cc=kraxel@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.