qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: qemu-devel@nongnu.org, Paul Brook <paul@codesourcery.com>
Subject: Re: [Qemu-devel] [PATCH 4/4] pci: use pci_config_header in pci.c
Date: Wed, 01 Oct 2008 14:27:47 -0500	[thread overview]
Message-ID: <48E3CF33.3050702@codemonkey.ws> (raw)
In-Reply-To: <48E3CAF9.5040207@redhat.com>

Gerd Hoffmann wrote:
> Anthony Liguori wrote:
>   
> I'm not sure what you are expecting here.  The idea to introduce
> gcc-checkable byteordered types (via struct trick) was rejected.  So I
> have le32 & friends just typedef'ed to the corrosponding int*_t types
> and use the existing cpu_*() byteorder macros.  The new types are
> basically documentation now.
>
> Endian swapping must still be done by the users.  Lots of casts can be
> dropped though, which IMHO improves the readability alot (random chunk
> picked from patch):
>
> -    cmd = le16_to_cpu(*(uint16_t *)(d->config + PCI_COMMAND));
> +    cmd = le16_to_cpu(conf->command);
>
> I'm not aware of any way to do the byteswapping here automatically.
>   

Because the config structure is loaded after pci_register device and 
because the MMIO callbacks into the config space?  If you look at 
pci_default_read_config(), it actually does conversion from le to host 
CPU because that's what MMIO callbacks expect.  If you simply removed 
this, it would work.  Of course, you'll have to audit each caller of 
pci_register_device() and make sure their config's get changed too.

Regards,

Anthony LIguori

> Except maybe introducing accessor functions/macros for each and every
> struct element and hide the byteswapping macro call therein.  Which in
> turn makes providing the struct to pci drivers sort of pointless ...
>
> cheers,
>   Gerd
>   

  reply	other threads:[~2008-10-01 19:28 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-01 14:12 [Qemu-devel] [PATCH 1/4] add byteordered types to qemu Gerd Hoffmann
2008-10-01 14:12 ` [Qemu-devel] [PATCH 2/4] pci: add config space struct (from qemu-xen) Gerd Hoffmann
2008-10-01 14:12 ` [Qemu-devel] [PATCH 3/4] pci: add default pci subsystem id for all devices Gerd Hoffmann
2008-10-01 14:12 ` [Qemu-devel] [PATCH 4/4] pci: use pci_config_header in pci.c Gerd Hoffmann
2008-10-01 16:30   ` Anthony Liguori
2008-10-01 19:09     ` Gerd Hoffmann
2008-10-01 19:27       ` Anthony Liguori [this message]
2008-10-02  7:56         ` Gerd Hoffmann
2008-10-02 15:52           ` Anthony Liguori
2008-10-06 16:04             ` Gerd Hoffmann
2008-10-02  8:21 ` [Qemu-devel] [PATCH 1/4] add byteordered types to qemu Christoph Hellwig
2008-10-02 12:46   ` Gerd Hoffmann
2008-10-02 12:55     ` Christoph Hellwig
2008-10-02 13:15       ` Gerd Hoffmann
2008-10-02 13:17         ` Christoph Hellwig
2008-10-02 14:08           ` Gerd Hoffmann
2008-10-02 15:55             ` Anthony Liguori
2008-10-06 16:07               ` Gerd Hoffmann
  -- strict thread matches above, loose matches on Subject: below --
2008-09-10 11:45 Gerd Hoffmann
2008-09-10 11:45 ` [Qemu-devel] [PATCH 4/4] pci: use pci_config_header in pci.c Gerd Hoffmann
2008-08-28  8:36 [Qemu-devel] [PATCH 1/4] add byteordered types to qemu Gerd Hoffmann
2008-08-28  8:36 ` [Qemu-devel] [PATCH 4/4] pci: use pci_config_header in pci.c Gerd Hoffmann
2008-08-27 13:45 [Qemu-devel] [PATCH 1/4] add byteordered types and accessor functions to qemu Gerd Hoffmann
2008-08-27 13:45 ` [Qemu-devel] [PATCH 4/4] pci: use pci_config_header in pci.c 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=48E3CF33.3050702@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=kraxel@redhat.com \
    --cc=paul@codesourcery.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).