Messages in this thread |  | | | Date | Fri, 12 Sep 2003 20:41:45 +0200 | | From | Pavel Machek <> | | Subject | Re: [PATCH] ioctl entries for joystick in compat_ioctl.h |
| |
Hi!
> I wanted to use a joystick on my sparc64 workstation, and discovered that the > joystick driver uses simple ioclt that are safe to pass from 32bit user space > to 64bit kernel space. My patch adds the necessary entries in compat_ioctl.h. > > There is only one missing ioctl in the patch. The ioctl is defined like this: > #define JSIOCGNAME(len) _IOC(_IOC_READ, 'j', 0x13, len) > so the command does not have a fixed value. I dont know how to handle this one, > but it is only used to get the joystick name, all the applications I tried work > well even if this ioctl fails.
Well, whoever invented that JSIOCGNAME should be shot. That is not single ioctl, its 2^14 of them!
Testing for CONFIG_INPUT_JOYDEV_MODULE looks like bad idea. AFAIR CONFIG_INPUT_JOYDEV_MODULE implies CONFIG_INPUT_JOYDEV. But this would mean that you can not insert joydev module into kernel compiled with JOYDEV=n. Perhaps it better to just simply kill the ifdef?
Vojtech, this fill be needed on x86-64, too. Can you take care of it?
Pavel
> I have tested this patch with snes9x and jstest.c without any problems. > > Regards, > Raphael Assenat > > --- linux-2.6.0-test4/fs/compat_ioctl.c Fri Aug 22 20:00:50 2003 > +++ linux-2.6.0-test4-raph/fs/compat_ioctl.c Sun Sep 7 19:03:52 2003 > @@ -65,6 +65,7 @@ > #include <linux/ctype.h> > #include <linux/ioctl32.h> > #include <linux/ncp_fs.h> > +#include <linux/joystick.h> > > #include <net/sock.h> /* siocdevprivate_ioctl */ > #include <net/bluetooth/bluetooth.h> > --- linux-2.6.0-test4/include/linux/compat_ioctl.h Fri Aug 22 20:01:27 > 2003 > +++ linux-2.6.0-test4-raph/include/linux/compat_ioctl.h Sun Sep 7 20:07:57 > 2003 > @@ -680,3 +680,16 @@ > COMPATIBLE_IOCTL(NBD_PRINT_DEBUG) > COMPATIBLE_IOCTL(NBD_SET_SIZE_BLOCKS) > COMPATIBLE_IOCTL(NBD_DISCONNECT) > + > +/* little j */ > +#if defined(CONFIG_INPUT_JOYDEV)||defined(CONFIG_INPUT_JOYDEV_MODULE) > +COMPATIBLE_IOCTL(JSIOCGVERSION) > +COMPATIBLE_IOCTL(JSIOCGAXES) > +COMPATIBLE_IOCTL(JSIOCGBUTTONS) > +COMPATIBLE_IOCTL(JSIOCSCORR) > +COMPATIBLE_IOCTL(JSIOCGCORR) > +COMPATIBLE_IOCTL(JSIOCSAXMAP) > +COMPATIBLE_IOCTL(JSIOCGAXMAP) > +COMPATIBLE_IOCTL(JSIOCSBTNMAP) > +COMPATIBLE_IOCTL(JSIOCGBTNMAP) > +#endif
-- When do you have a heart between your knees? [Johanka's followup: and *two* hearts?] - 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/
|  |