On Thu, Apr 04, 2002 at 03:04:17PM +1000, Anthony Towns wrote: > The kernel doesn't change ioctl numbers; they're actually competent at > maintaining their interfaces. OTOH, they don't consider their headers > such an interface, and they're happy to have them break randomly or not > work from userspace at all or anything. > > What we really should have is a nice low-level C library that encapsulates > such things and lets anyone use it... Fine and dandy, but what do I do in the meantime? I can guard each of the ioctl #defines with an #ifndef, but there's also a typedef thrown into the mix. I can't exactly do this: try { typedef struct { int context; unsigned int offset; unsigned int size; unsigned int free; } drm_sis_mem_t; } except redefinitionException { /* oh, that's all right, it's already defined */ } It's because of this that I continue to feel that kernel interfaces are best defined by the kernel. If the kernel headers aren't an interface, why do they exist? There appears to be a very large philosophical gulf here. The fact that the Linux kernel guys may long for nice low-level C libraries that encapsulate such things doesn't mean they exist. Is this a side-effect of some sort of "real men don't program in userspace" dogma? -- G. Branden Robinson | Measure with micrometer, Debian GNU/Linux | mark with chalk, branden@debian.org | cut with axe, http://people.debian.org/~branden/ | hope like hell.
Attachment:
pgpLNE6GCIDUw.pgp
Description: PGP signature