Messages in this thread | | | From | Arnd Bergmann <> | Subject | Re: compat_ioctl question | Date | Thu, 26 Apr 2007 23:37:55 +0200 |
| |
On Thursday 26 April 2007, Paul Fulghum wrote: > I need to add ioctl translations for my driver to > allow 32 bit access on 64 bit systems. > > After digging through the kernel code there seems to be > 3 methods of doing this: > > 1. define compat_ioctl() file operation for device and > implement translation code in individual driver > 2. add COMPATIBLE_IOCTL entry to include/linux/compat_ioctl.h > to mark an ioctl code as the same in any environment > 3. add HANDLE_IOCTL entry to fs/compat_ioctl.c with translation code > implemented in the same file > > There is no way to implement #1 for a tty driver without > modifying the kernel tty code to allow registration of a > compat_ioctl() handler. > > #3 would put a lot of driver specific stuff in a common > kernel file. This method also seems to break if there > is an ioctl code collision. > > All of these methods involve changes to code outside of my driver. > > -- > > Before I spend a lot of time on this I need to know what the > officially sanctioned method is. I haven't found any definitive > documentation and a review of mailing list archives does not > suggest a prevailing opinion. > > Does anyone have pointers on which way would be most likely > to be accepted as a patch?
It depends a lot on what your specific driver does in the ioctl handler, but normally you should define a compat_ioctl() function. What driver are you talking about?
Arnd <>< - 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/
| |