From: Stefan Weil <weil@mail.berlios.de>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>,
QEMU Developers <qemu-devel@nongnu.org>
Subject: [Qemu-devel] Re: [PATCH 05/20] eepro100: Add all supported devices to pci.c
Date: Wed, 03 Mar 2010 19:53:12 +0100 [thread overview]
Message-ID: <4B8EB018.6050101@mail.berlios.de> (raw)
In-Reply-To: <20100303133348.GA21663@redhat.com>
Michael S. Tsirkin schrieb:
> On Wed, Mar 03, 2010 at 02:31:53PM +0100, Gerd Hoffmann wrote:
>> On 03/03/10 12:51, Michael S. Tsirkin wrote:
>>> On Sun, Feb 21, 2010 at 10:08:49PM +0100, Stefan Weil wrote:
>>>>>> static const char * const pci_nic_models[] = {
>>>>>> "ne2k_pci",
>>>>>> + "i82550",
>>>>>> "i82551",
>>>>>> + "i82557a",
>>>>>> "i82557b",
>>>>>> + "i82557c",
>>>>>> + "i82558a",
>>>>>> + "i82558b",
>>>>>> + "i82559a",
>>>>>> + "i82559b",
>>>>>> + "i82559c",
>>>>>> "i82559er",
>>>>>> + "i82562",
>>>>>> "rtl8139",
>>>>>> "e1000",
>>>>>> "pcnet",
>>>>> One wonders: would it be cleaner to have a single eepro100 device
>>>>> with specific model as qdev option?
>> No. I think it would be cleaner to use qdev even more. For that
>> specific driver it would make sense to create a private Info struct,
>> i.e. something like this:
>>
>> E100PCIDeviceInfo {
>> PCIDeviceInfo pci;
>> [ model specific stuff such as has_extended_tcb_support here ]
>> };
>>
>> Then go
>>
>> static E100PCIDeviceInfo eepro100_info[] = {
>> {
>> .pci.qdev.name = "i82550",
>> [ usual qdev stuff here ]
>> has_extended_tcb_support = 0 | 1;
>> [ more e100 device description bits here ]
>> },
>> [ ... ]
>> };
>>
>> Then you can simply zap all the one-liner wrapper functions around
>> nic_init(). nic_init() can get a pointer using something like this:
>>
>> E100PCIDeviceInfo *einfo = DO_UPCAST(E100PCIDeviceInfo,
>> pci.qdev, pci_dev->qdev.info);
>>
>> and setup the device accordingly.
This would indeed simplify the code.
Although I don't like tricky programming like DO_UPCAST
(because I saw too much code where tricky programming
was faulty programming), I'll consider to modify the code
as Gerd proposed.
>>>> I prefer the "official" device names which are also
>>>> used in the Intel documentation. eepro100 or e100
>>>> are marketing names (more of them exist).
>> qdev has aliases. You can add .qdev.alias = "eepro100" to one of the
>> variants, then the eepro100 name will work as well.
Good idea. To keep the number of aliases small, I plan to
add only one or two aliases: e100 (eepro100 only if a second
alias is possible).
Why? e100 is the current linux driver name.
eepro100 was the former linux driver name.
>>
>> Adding the marketing name to the .desc test is probably a good idea too
>> because alot of people know the marketing name only.
>
> That's my thinking as well.
Neither eepro100 nor e100 are marketing names
(I was wrong when I wrote that in an earlier mail).
The marketing name was Intel EtherExpress Pro 100.
I agree that it would help people to see this name,
so I suggest adding it to qemu-doc.texi.
As far as I know, only insiders (and the old linux driver)
used the abbreviations eepro100 and e100.
Look at your favorite search machine:
nobody sells / sold eepro100 cards.
If you want a less technical name than i82559c, e100 is the
better choice - like e1000 for the successor.
>
>>>> Please note that this patch was marked as optional.
>>>> The arrays pci_nic_names and pci_nic_models are
>>>> not really needed, and as soon as the table of available
>>>> nics is automatically derived from the device information,
>>>> all variants of i825xx are supported automatically.
>>> Gerd, any input on this patch?
>> Looks fine to me. When we switch over to walking the list of registered
>> devices instead of having a hard-coded list of pci nic drivers all the
>> eepro100 variants will show up in the list anyway.
>>
>> cheers,
>> Gerd
next prev parent reply other threads:[~2010-03-03 18:53 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-14 16:15 [Qemu-devel] eepro100: New patch series adds full GPXE support Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 01/20] eepro100: Fix compiler errors from debug messages Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 02/20] eepro100: Add missing SCB register names Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 03/20] eepro100: Fix PXE boot Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 04/20] eepro100: Support gpxe boot for all eepro100 devices Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 05/20] eepro100: Add all supported devices to pci.c Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 06/20] eepro100: Add TODO list Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 07/20] eepro100: Update copyright notice Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 08/20] eepro100: Add device descriptions Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 09/20] eepro100: Use symbolic names and BIT macros in binary operations Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 10/20] eepro100: Remove old unused code Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 11/20] eepro100: Use symbolic names for bits in EEPROM id Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 12/20] eepro100: Replace variable name to fix a compiler warning Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 13/20] eepro100: Support RNR interrupt Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 14/20] eepro100: Fix CU Start command Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 15/20] eepro100: Prettify code (no functional changes) Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 16/20] eepro100: Use tx.status Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 17/20] eepro100: New function for reading command block Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 18/20] eepro100: Add diagnose command Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 19/20] eepro100: Remove C++ comments Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 20/20] eepro100: Keep includes sorted Stefan Weil
2010-02-21 17:05 ` [Qemu-devel] Re: [PATCH 11/20] eepro100: Use symbolic names for bits in EEPROM id Michael S. Tsirkin
2010-02-21 21:38 ` Stefan Weil
2010-02-22 9:00 ` Michael S. Tsirkin
2010-03-02 18:42 ` [Qemu-devel] " Stefan Weil
2010-02-21 17:00 ` [Qemu-devel] Re: [PATCH 05/20] eepro100: Add all supported devices to pci.c Michael S. Tsirkin
2010-02-21 21:08 ` Stefan Weil
2010-03-03 11:51 ` Michael S. Tsirkin
2010-03-03 13:31 ` Gerd Hoffmann
2010-03-03 13:33 ` Michael S. Tsirkin
2010-03-03 18:53 ` Stefan Weil [this message]
2010-03-04 8:56 ` Gerd Hoffmann
2010-03-02 18:43 ` [Qemu-devel] [PATCH 03/20] eepro100: Fix PXE boot Stefan Weil
2010-03-02 20:04 ` [Qemu-devel] " Michael S. Tsirkin
2010-02-19 21:05 ` [Qemu-devel] [PATCH 01/20] eepro100: Fix compiler errors from debug messages Anthony Liguori
2010-03-01 17:54 ` Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 " Stefan Weil
2010-03-03 11:52 ` [Qemu-devel] " Michael S. Tsirkin
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 02/20] eepro100: Add missing SCB register names Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 03/20] eepro100: Fix PXE boot Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 04/20] eepro100: Support gpxe boot for all eepro100 devices Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 05/20] eepro100: Add all supported devices to pci.c Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 06/20] eepro100: Add TODO list Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 07/20] eepro100: Update copyright notice Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 08/20] eepro100: Add device descriptions Stefan Weil
2010-03-03 11:49 ` [Qemu-devel] " Michael S. Tsirkin
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 09/20] eepro100: Use symbolic names and BIT macros in binary operations Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 10/20] eepro100: Remove old unused code Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 11/20] eepro100: Use symbolic names for bits in EEPROM id Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 12/20] eepro100: Replace variable name to fix a compiler warning Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 13/20] eepro100: Support RNR interrupt Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 14/20] eepro100: Fix CU Start command Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 15/20] eepro100: Prettify code (no functional changes) Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 16/20] eepro100: Use tx.status Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 17/20] eepro100: New function for reading command block Stefan Weil
2010-03-03 11:44 ` [Qemu-devel] " Michael S. Tsirkin
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 18/20] eepro100: Add diagnose command Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 19/20] eepro100: Remove C++ comments Stefan Weil
2010-03-03 11:47 ` [Qemu-devel] " Michael S. Tsirkin
2010-03-03 19:15 ` Stefan Weil
2010-03-03 19:59 ` Michael S. Tsirkin
2010-03-02 21:38 ` [Qemu-devel] [PATCHv3 20/20] eepro100: Keep includes sorted Stefan Weil
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=4B8EB018.6050101@mail.berlios.de \
--to=weil@mail.berlios.de \
--cc=kraxel@redhat.com \
--cc=mst@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 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).