Hi,
the patch below makes the joystick on amd64 work for 32bit
applications. It was successfully tested by myself with X-Plane [1],
SilentWings [2], Quake 3 [3] and quite some other applications.
How it works: as the parameters in 32bit userspace ioctl are
compatible with the 64bit kernel, it is sufficient to declare them
compatible in ia32_ioctl.c. The JSIOCGNAME ioctl causes a problem as
it encodes the length of the return buffer into the ioctl number. This
is solved by mapping all of the JSIOCGNAME ioctls to JSIOCGNAME(0).
Patch is below and works for vanilla kernels at least up to
2.6.13.