On Friday 27 April 2007, Paul Fulghum wrote: > Arnd Bergmann wrote: > > 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? > > drivers/char/synclink.c > drivers/char/synclinkmp.c > drivers/char/synclink_gt.c > drivers/char/pcmcia/synclink_cs.c > > All use the same set of ioctl() codes that > are peculiar to the synclink drivers.
So you are interested in the MGSL_* set of ioctls, right? AFAICS, they are all compatible, with the exception of MGSL_IOCGPARAMS and MGSL_IOCSPARAMS. Fortunately, these two have different ioctl numbers on 64 bit, so you can define a new #define MGSL_IOCSPARAMS32 _IOR(MGSL_MAGIC_IOC,0,struct _MGSL_PARAMS32) #define MGSL_IOCGPARAMS32 _IOR(MGSL_MAGIC_IOC,1,struct _MGSL_PARAMS32) and handle both versions in the ioctl function. > Defining compat_ioctl() seems to be the best way, but > that will require modifying the base tty code to allow > the individual tty drivers to register compat_ioctl(). Yes, that would be the right solution. I've started this some time ago, but never finished it: http://www.uwsg.iu.edu/hypermail/linux/kernel/0511.0/1732.html > Currently the tty file ops do not include that and > tty_io.c does not register a compat_ioctl(), instead > relying on compat_ioctl.h and compat_ioctl.c Just adding the hook in tty_io.c should be trivial, please do that. If you like, you can also move the vt ioctls in order to reduce the size of fs/compat_ioctl.c. Arnd <>< - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/