Messages in this thread |  | | | Date | Sat, 03 Sep 2005 08:19:17 -0700 | | From | "H. Peter Anvin" <> | | Subject | Re: [RFC] Splitting out kernel<=>userspace ABI headers |
| |
Erik Andersen wrote: > > That is certainly not what I was proposing. Why are you bringing > sys/stat.h into this? The contents of sys/stat.h are entirely up > to SUSv3 and the C library to worry about. Nobody has proposed > mucking with that. I dunno about your C library, but mine > doesn't include linux/* header files (not even sys/stat.h). And > I'd really like to fix uClibc to not use any asm/* either, since > much of it is entirely unsuitable for user space. >
That's the whole problem here, isn't it, so let's fix it the sane way instead of putting Descartes before Dehorse.
Anyway, to answer your implied question is: since I explicitly don't have to worry about forward ABI compatibility, I expose the kernel ABI raw. Thus I want to be able to use the kernel ABI directly, including for things like struct stat. It poses a particularly interesting problem, actually, because the real stat system call is called stat64 on most platforms.
Thus, an ABIzed <linux/abi/stat.h> or whatever it's called might export "struct __kabi_stat" and "struct __kabi_stat64" with the expectation that the caller would "#define __kabi_stat64 stat" if that is the version they want. A typedef isn't good enough for C, since you can't typedef struct tags.
-hpa - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |