Re: share COMPATIBLE_IOCTL()s across architectures

From: Andi Kleen (ak@suse.de)
Date: Thu Mar 20 2003 - 15:24:49 EST


On Thu, 2003-03-20 at 20:32, Pavel Machek wrote:
> Hi!
>
> > This patche moves common COMPATIBLE_IOCTLs to
> > include/linux/compat_ioctl.h, enabling pretty nice cleanups:
> >
> > Please be careful. For anything non-trivial there can be major
> > differences between compat layers.
>
> I'm trying to be carefull. How common are ioctls that are
> COMPATIBLE_IOCTL(foo) on one arch, but not on another? So far I tried
> to decide, and mostly decided that one architecture was simply
> missing...

The only issue I'm aware of are structures with long long. IA64 and
x86-64 are special in that long long has a different alignmnet in 32bit
and 64bit (4 bytes in 32bit, 8 bytes in 64bit). All the other archs with
compat code have always 8 byte alignment. This means if sparc64 doesn't
do a conversion, but x86-64 does you cannot put it into the COMPAT_IOCTL
list. Make sure you only use the common set.

Fortunately long long is not that common and many uses of it are already
8 byte aligned, but not all are.

-Andi

-
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 : Sun Mar 23 2003 - 22:00:32 EST