Re: Why 'linux/fs.h' cannot be included? I *can*...

From: Eric W. Biederman (ebiederm@xmission.com)
Date: Wed Jan 30 2002 - 09:27:41 EST


DervishD <raul@viadomus.com> writes:

> Hi Jeff :)
>
> >> Given the number of user-space apps that needs ioctl definitions
> >> and things like those (that are supposed not to change easily), those
> >> definitions should go in user-includable headers... IMHO.
> >>
> >> Fortunately, we have some of them in libc headers now.
> >The policy is, never ever include kernel headers from userspace.
>
> I know, but sometimes it is just impossible (when they aren't
> appropriate glibc headers, for example). In fact, all this question
> arose because I'm coding an 'ioctl' command line interface, so you
> can send any 'documented' ioctl to any device. And, since I'm going
> to start with block devices, I need linux/fs.h.
>
> The problem is that I don't want to copy the definitions I need
> from linux/fs.h, because this will lead to problems if those
> definitions change. Anyway this is not an issue, because by changing
> the running kernel those definitions in fact may not be valid...
>
> Resuming: I don't know how properly address this problem.

In general you are running into the ioctls are messy problem, and probably
need to be cleaned up. Beyond that though ioctls should be static
they are part of the kernel ABI. Though they aren't managed tight
enough that you can count on them being 100% static.

> >Your libc should provide a "sanitized" version of the kernel headers,
> >which is completely separate from any kernel sources.
>
> I suppose that those headers will contain definitions not subject
> to change, won't they? But I don't know if I can consider the ioctl
> constants as not subject to change (they should be permanent,
> though).

In general ioctls are not be subject to change.
 
> >So, any problems should be reported to your libc maintainer :)
>
> Well, I try... I can even try to make the sanitized header myself
> and pray for it to be included in next glibc revision :)

Not that would be progress..

Eric
-
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/



This archive was generated by hypermail 2b29 : Thu Jan 31 2002 - 21:01:18 EST