From: Johannes Stezenbach <js@convergence.de>
To: Christoph Hellwig <hch@infradead.org>
Cc: Michael Hunold <hunold@convergence.de>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
J?rn Engel <joern@wohnheim.fh-wedel.de>,
Marcus Metzler <mocm@metzlerbros.de>,
Sam Ravnborg <sam@ravnborg.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: DVB Include files
Date: Thu, 26 Jun 2003 15:20:34 +0200 [thread overview]
Message-ID: <20030626132034.GE29671@convergence.de> (raw)
In-Reply-To: <20030626092444.A26890@infradead.org>
On Thu, Jun 26, 2003 at 09:24:44AM +0100, Christoph Hellwig wrote:
> On Thu, Jun 26, 2003 at 10:18:49AM +0200, Michael Hunold wrote:
> > In include/linux/dvb we have the headers that are shared between user
> > applications and the kernel driver. As I said above, these are stable and
> > never change for the v3 api.
Actually the last (backwards compatible) change to the v3 API
was just about two months ago. The last really incompatible change
was more than a year ago, if you don't count the change to the
previously unused/unusable VIDEO_GET_EVENT ioctl three months ago.
Meanwhile we have begun working on a "v4" DVB API, which will
have many incompatible changes. This changes are necessary to support
advanced features of newer set-top-box chips sets which are not
yet used in DVB PCI-cards or USB-boxes. I doubt there will
be a publicly available driver with this API this year, as there isn't
any code yet, just some conceptual work. Anyway, v3 will be stable
because v4 exists.
> > In an ideal world, these header files would
> > be included in your glibc distribution at /usr/include/linux/dvb
> > Currently, you must copy them by hand or create a symlink, because there
> > hasn't been an official kernel with the dvb driver subsystem yet.
>
> And that's the whole point. In fact I hear exactly that problem from a
> friend at SuSE who maintained an (inofficial?) dvb package. He packaged
> the kernel driver but of course it's not part of the official SuSE kernel
> and even more so the kernel headers package that is created with the
> kernel package but doesn't change during the lifetime of the glibc
> package. Now he's not allowed to just write into /usr/include/linux/
> either because that directory is owned by the kernel headers package.
>
> Please just get over it and put a copy of the headers into /usr/include/dvb,
> this makes life easier for everyone.
Three things:
1. glibc has nothing to do with driver ioctls (exceptions exist for
"standard" drivers, e.g. tty handling); important for glibc is that
the system call interface does not change, so the files in
/usr/include/linux and /usr/include/asm must match glibc.
OTOH ioctl definitions for drivers must match the driver that is
currently in use. If the ioctl definitions change, binary
compatiblity is broken (bad), but source compatiblity can be
maintained if the driver API header files are updated. If they are
not updated, source compatiblity is also broken (really bad).
2. It seems to me that /usr/include/linux is the place where almost all
drivers put their ioctl API definitions (input.h, rtc.h, nvram.h,
matroxfb.h, etc.). So it seemed the right place for the DVB API
is /usr/include/linux/dvb/. I thought this is the Linux way.
3. Consequently applications use e.g. #include <linux/dvb/frontend.h>,
and to maintain application source compatibility this include path must
not be changed. Distributions could put the API headers in
/usr/include/dvb/linux/dvb/ and compile applications with
-I/usr/include/dvb.
I think it is a fundamental problem that driver ioctl definitions
(relatively frequent changes for many drivers) are mixed with low
level kernel ABI definitions (few changes). Maybe it would be better to
separate all driver APIs in linux/include/drivers/ and symlink
that to /usr/include/drivers/, while /usr/include/{linux,asm} can
match glibc.
Johannes
next prev parent reply other threads:[~2003-06-26 13:06 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-06-25 15:06 DVB Include files Sam Ravnborg
2003-06-25 15:08 ` Christoph Hellwig
2003-06-25 15:42 ` Sam Ravnborg
2003-06-25 16:17 ` Michael Hunold
2003-06-25 16:49 ` Marcus Metzler
2003-06-25 16:55 ` Christoph Hellwig
2003-06-25 17:13 ` Marcus Metzler
2003-06-25 17:16 ` Christoph Hellwig
2003-06-25 17:22 ` Marcus Metzler
2003-06-25 17:24 ` Christoph Hellwig
2003-06-25 17:30 ` Marcus Metzler
2003-06-25 17:50 ` Christoph Hellwig
2003-06-25 18:09 ` Marcus Metzler
2003-06-25 18:15 ` Christoph Hellwig
2003-06-25 18:43 ` Marcus Metzler
2003-06-25 19:42 ` Jörn Engel
2003-06-25 20:09 ` Marcus Metzler
2003-06-25 20:23 ` Jörn Engel
2003-06-25 20:48 ` Marcus Metzler
2003-06-25 21:03 ` Christoph Hellwig
2003-06-25 21:38 ` Marcus Metzler
2003-06-26 13:54 ` Henning P. Schmiedehausen
2003-06-25 23:08 ` Alan Cox
2003-06-26 8:18 ` Michael Hunold
2003-06-26 8:24 ` Christoph Hellwig
2003-06-26 13:20 ` Johannes Stezenbach [this message]
2003-06-25 21:03 ` Christoph Hellwig
2003-06-25 17:27 ` Jörn Engel
2003-06-25 17:49 ` Christoph Hellwig
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=20030626132034.GE29671@convergence.de \
--to=js@convergence.de \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=hch@infradead.org \
--cc=hunold@convergence.de \
--cc=joern@wohnheim.fh-wedel.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mocm@metzlerbros.de \
--cc=sam@ravnborg.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