From: Andreas Dilger <adilger@clusterfs.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Header files and the kernel ABI
Date: Thu, 25 Jul 2002 00:51:09 -0600 [thread overview]
Message-ID: <20020725065109.GO574@clusterfs.com> (raw)
In-Reply-To: <aho5ql$9ja$1@cesium.transmeta.com>
On Jul 24, 2002 23:28 -0700, H. Peter Anvin wrote:
> It seems to me that a reasonable solution for how to do this is not
> for user space to use kernel headers, but for user space and the
> kernel to share a set of common ABI description files[1]. These files
> should be highly stylized, and only describe things visible to user
> space. Furthermore, if they introduce types, they should use the
> already-established __kernel_ namespace, and of course __s* and __u*
> could be used for specific types.
>
> I would like to propose that these files be set up in the #include
> namespace as <linux/abi/*>, with <linux/abi/arch/*> for any
> architecture-specific support files (I do believe, however, that those
> files should only be included by files in the linux/abi/ root. This
> probably would be a symlink to ../asm/abi in the kernel sources,
> unless we change the kernel include layout.) The linux/ namespace is
> universally reserved for the kernel, and unlike <abi/*> I don't know
> of any potential conflicts. I was considered <kabi/*>, but it seems
> cleaner to use existing namespace.
I had thought on this briefly in the past, and my take would be for these
ABI definition files to live directly in /usr/include/linux for user space
(just as glibc puts its own sanitized copy of the kernel headers there)
and the appropriate ABI headers are included as needed from the kernel.
The kernel side would be something like <linux/scsi.h> includes
<linux/abi/scsi.h> or whatever, but in the future this can be included
directly as needed throughout the kernel. The existing kernel
<linux/*.h> headers would also have extra kernel-specific data in them.
The same could be done with the user-space headers, but I think that
is missing the point that the linux/abi/*.h headers should define _all_
of the abi, so we may as well just use that directly.
Essentially "all" this would mean is that we take the existing headers,
remove everything which is inside #ifdef __KERNEL__ (and all of the
other kernel-specific non-abi headers that are included) and we are
done. The kernel header now holds only things that were inside the
#ifdef __KERNEL__ (or should have been), and #include <linux/abi/foo.h>.
Cheers, Andreas
--
Andreas Dilger
http://www-mddsp.enel.ucalgary.ca/People/adilger/
http://sourceforge.net/projects/ext2resize/
next prev parent reply other threads:[~2002-07-25 6:49 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-25 6:28 Header files and the kernel ABI H. Peter Anvin
2002-07-25 6:51 ` Andreas Dilger [this message]
2002-07-25 7:07 ` H. Peter Anvin
2002-07-25 7:32 ` Andreas Dilger
2002-07-25 16:29 ` Oliver Xymoron
2002-07-25 16:31 ` H. Peter Anvin
2002-07-25 18:19 ` Erik Andersen
2002-07-25 20:03 ` Oliver Xymoron
2002-07-27 11:29 ` Eric W. Biederman
2002-07-25 16:30 ` H. Peter Anvin
2002-07-25 8:00 ` DervishD
2002-07-25 13:08 ` Brad Hards
2002-07-25 16:09 ` DervishD
2002-07-25 16:17 ` H. Peter Anvin
2002-07-25 18:22 ` Erik Andersen
2002-07-31 21:37 ` Kernel ABI BoF at Linux-Kongress? [was: Header files and the kernel ABI] Brad Hards
-- strict thread matches above, loose matches on Subject: below --
2002-07-25 21:13 Header files and the kernel ABI dank
2002-07-26 2:37 ` jw schultz
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=20020725065109.GO574@clusterfs.com \
--to=adilger@clusterfs.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.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