linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Garzik <jgarzik@pobox.com>
To: Greg KH <greg@kroah.com>
Cc: "David S. Miller" <davem@redhat.com>,
	rddunlap@osdl.org, davej@redhat.com, willy@debian.org,
	linux-kernel@vger.kernel.org,
	kernel-janitor-discuss@lists.sourceforge.net
Subject: Re: C99 Initialisers
Date: Wed, 13 Aug 2003 14:26:11 -0400	[thread overview]
Message-ID: <3F3A82C3.5060006@pobox.com> (raw)
In-Reply-To: <20030813180245.GC3317@kroah.com>

Greg KH wrote:
> On Wed, Aug 13, 2003 at 01:47:54PM -0400, Jeff Garzik wrote:
> 
>>Greg KH wrote:
>>
>>># add PCI_DEVICE() macro to make pci_device_id tables easier to read.
>>>
>>>diff -Nru a/drivers/net/tg3.c b/drivers/net/tg3.c
>>>--- a/drivers/net/tg3.c	Wed Aug 13 10:29:08 2003
>>>+++ b/drivers/net/tg3.c	Wed Aug 13 10:29:08 2003
>>
>>
>>This patch is ok with me.
>>
>>And I agree with David that, in generic, C99 initializers is the way to 
>>go.  However, the higher level point remains:
>>
>>PCI IDs, and data like them, are fundamentally not C code.
> 
> 
> But the kernel, using C code, uses those ids to match drivers to
> devices.  So we have to create C structures out of those ids some how.
> 
> The idea was that since the kernel already keeps track of these ids, we
> might as well export them to userspace, so that it too can see what the
> kernel support.  That brought forth the modules.*map files and enabled
> the hotplug scripts to automatically load a module based on a device id
> (this is much nicer than other os schemes which force a text file to be
> created for every driver listing these ids.  They are usually created by
> hand, and can get out of sync.)

Oh, no argument about how we got here.  The ids started out in C code 
for good reasons.  Linus always says "do what you need to do, and no 
more" and IMO he's right.  And we did exactly that :)


> I agree that now that more and more tools are using this data, we should
> put it into a form that everyone can easily get at, without having to
> parse module attributes or even the modules.*map files.
> 
> Any suggestions that do not involve XML?  :)

Again, my philosophy:  put the data in its most natural form.  In 
CS-speak, domain-specific languages.  So, just figure out what you want 
the data files to look like, and I'll volunteer to write the parser for it.

An overall goal for metadata is to collect it in one place.  I mentioned 
earlier about moving the simple "obj-$(foo) += foo.o" out of Makefiles 
and into Kconfig.  So putting PCI IDs in Kconfig files is one idea. 
Note that Kconfigs can be split up and #include'd, so it can be 
partitioned neatly in a single directory as the maintainer desires.

Another option is a few collections of files:  drivers/net/pci.ids, 
drivers/sound/pci.ids, and these would hold pci ids and driver assocations.

I'm sure the people CC'd here have even better suggestions.

One the PCI ID data format is chosen, automated tools generate the 
required C code so that the kernel source code (and behavior) is 
essentially unchanged.

	Jeff



  reply	other threads:[~2003-08-13 18:26 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-08-12  2:02 C99 Initialisers CaT
2003-08-12  2:18 ` Robert Love
2003-08-12  2:39   ` Matthew Wilcox
2003-08-12  2:45     ` Robert Love
2003-08-12  2:57     ` Dagfinn Ilmari Mannsåker
2003-08-12  5:38     ` Greg KH
2003-08-12  9:01       ` Maciej Soltysiak
2003-08-12 10:03         ` Geert Uytterhoeven
2003-08-12 10:19           ` Jakub Jelinek
2003-08-12 11:27       ` Matthew Wilcox
2003-08-12 16:54         ` Ian Hastie
2003-08-12 18:01         ` Greg KH
2003-08-12 23:53           ` Dave Jones
2003-08-13  0:08             ` Matthew Wilcox
2003-08-13  0:23               ` Greg KH
2003-08-13  0:31                 ` Matthew Wilcox
2003-08-14  5:45               ` H. Peter Anvin
2003-08-13 15:52             ` Timothy Miller
2003-08-13 17:50               ` Jeff Garzik
2003-08-13  0:02           ` Jeff Garzik
2003-08-13  0:14             ` Randy.Dunlap
2003-08-13  0:31               ` Jeff Garzik
2003-08-13  0:37                 ` Randy.Dunlap
2003-08-13  0:49                   ` Dave Jones
2003-08-13  1:25                     ` Jeff Garzik
2003-08-13  3:02                     ` Randy.Dunlap
2003-08-13  3:26                       ` Jeff Garzik
2003-08-13 10:14                         ` David S. Miller
2003-08-13 17:31                           ` Greg KH
2003-08-13 17:36                             ` David S. Miller
2003-08-13 17:47                             ` Jeff Garzik
2003-08-13 18:02                               ` Greg KH
2003-08-13 18:26                                 ` Jeff Garzik [this message]
2003-08-13 18:38                                   ` Russell King
2003-08-13 19:44                                     ` Jeff Garzik
2003-08-13 19:54                                       ` Matthew Wilcox
2003-08-13 20:15                                         ` Greg KH
2003-08-13 20:16                                         ` Dave Jones
2003-08-13 20:30                                           ` Matt Domsch
2003-08-13 20:29                                         ` Jeff Garzik
2003-08-13 21:05                                           ` Sam Ravnborg
2003-08-13 22:24                                             ` Roman Zippel
2003-08-14 20:31                                               ` Sam Ravnborg
2003-08-14 10:05                                           ` Geert Uytterhoeven
2003-08-14 10:25                                             ` Gene Heskett
2003-08-14 10:52                                             ` jw schultz
2003-08-14 12:34                                               ` Geert Uytterhoeven
2003-08-14 12:57                                             ` Andrey Panin
2003-08-14 18:45                                             ` H. Peter Anvin
2003-08-13 21:06                                       ` Russell King
2003-08-13 21:17                                       ` Eduardo Pereira Habkost
2003-08-13 17:50                             ` Sam Ravnborg
2003-08-13 17:54                               ` Jeff Garzik
2003-08-13 17:54                               ` Matthew Wilcox
2003-08-13 17:58                                 ` Jeff Garzik
2003-08-13 18:03                                 ` Greg KH
2003-08-13 17:58                               ` Greg KH
2003-08-13 18:21                                 ` Sam Ravnborg
2003-08-13 18:09                               ` Russell King
2003-08-13 20:21                             ` Krzysztof Halasa
2003-08-13 21:17                               ` David S. Miller
2003-08-13 21:26                               ` Greg KH
2003-08-14 22:46                                 ` Krzysztof Halasa
2003-08-12 17:37     ` Dave Jones
2003-08-12 17:48       ` Matthew Wilcox
2003-08-12 22:06         ` Ian Hastie
2003-08-13 15:54   ` CaT
2003-08-14  6:57     ` Maciej Soltysiak
2003-08-12 16:52 Shureih, Tariq
     [not found] <jFFu.7t8.15@gated-at.bofh.it>
     [not found] ` <jLKX.4KI.13@gated-at.bofh.it>
     [not found]   ` <jRnj.2dx.11@gated-at.bofh.it>
     [not found]     ` <jRwZ.2kJ.15@gated-at.bofh.it>
     [not found]       ` <jRQi.2zQ.5@gated-at.bofh.it>
     [not found]         ` <jRZY.2Hw.5@gated-at.bofh.it>
     [not found]           ` <jS9J.2Np.5@gated-at.bofh.it>
     [not found]             ` <jUbt.57S.7@gated-at.bofh.it>
     [not found]               ` <jUuT.5kZ.13@gated-at.bofh.it>
     [not found]                 ` <k13k.22O.3@gated-at.bofh.it>
     [not found]                   ` <k7Lq.7Gr.7@gated-at.bofh.it>
2003-08-13 21:19                     ` junkio
2003-08-13 22:18                       ` Greg KH

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=3F3A82C3.5060006@pobox.com \
    --to=jgarzik@pobox.com \
    --cc=davej@redhat.com \
    --cc=davem@redhat.com \
    --cc=greg@kroah.com \
    --cc=kernel-janitor-discuss@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rddunlap@osdl.org \
    --cc=willy@debian.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).