1 - Abstract :
* Port to 64-bit (stays 32-bit compatible)
* Kernel 2.6.22 compatibility
* Enhanced device capabilities enumeration (fftest, ffcstress, evtest)
* Small bug fixes and other improvements
2 - To apply the patch (Linux) :
* get ff-utils-2.4.21.tar.bz2
* tar xvfj ff-utils-2.4.21.tar.bz2
* tar xvfz ff-utils-2.6.22-64bitPort.patch.tgz
* cd ff-utils
* patch -p1 <../ff-utils-2.6.22-64bitPort.patch
* make (executables generated in current directory)
3 - Details :
- linux/input.h and linux/serio.h :
Removed these files as they are normally part of the distro
(in some kind of "kernel headers" package though)
- Makefile :
Removed the -fno-implement-inlines gcc option for ffcfstress
(my gcc 4.2.2 complains about this option being available for C++/ObjC only)
- bitmaskros.h :
Added this file defining usefull macros for large bit fields management
(used in evtest.c, ffcfstress.c, fftest.c),
in replacement for repeated such definitions that were moreover non 64-bit compatible
- jscal.c :
Added include <stdlib.h> to remove a warning about exit()
Tested OK with my Logitech G25 Racing Wheel (in native G25 mode, and olso legacy Driving Force Pro mode)
- evtest.c :
Used 64-bit compatible macros for for large bit fields management from bitmaskros.h
Added include <stdlib.h> to remove a warning about exit()
Used (new?) safer linux/input.h struct types in place of raw data types
(input_id, input_absinfo)
Fixed bug when enumerating event features (use 2 separate bit fields for event types,
and event instances for each type)
Removed useless printf line
Added enumeration of force feedback features
Added a SIGINT=Ctrl-C signal handler to softly close the device on exit
(thus, no more need to unplug/replug the device before restarting evtest)
Tested OK with my Logitech M-BT69a Pilot Optical Mouse, Logitech Rumble Pad 2
and Logitech G25 Racing Wheel
- fftest.c :
Used 64-bit compatible macros for for large bit fields management from bitmaskros.h
Added include <stdlib.h> to remove a warning about exit()
Used separate bit fields for enumerating relative and absolute axes, and force feedback features
Completed feature enumeration and display for all available ones in linux/input.h
Improved user interface by displaying more info about injected effects
Fixed enveloppe duration values (unit = ms)
Tested OK (but not very impressive !) with my Logitech G25 Racing Wheel (Constant force)
NOK with my Logitech Rumble Pad 2 (Periodic and rumble force capable, but unexpected effects ...)
- ffcfstress.c :
Used 64-bit compatible macros for for large bit fields management from bitmaskros.h
Added -x option to select the axis into which inject force feedback effects
(in place of automatic but limited selection)
Used separate bit fields for enumerating relative and absolute axes, and force feedback features
Used (new?) safer linux/input.h struct types in place of raw data types
(input_absinfo, ...)
Tested OK with my Logitech G25 Racing Wheel
- ffmvforce.c :
Used atexit (from stdlib.h, more up-to-date) in place of on_exit, to remove a warning
- inputattach.c :
Not changed, despite warnings about unsigned/signed char assignments.
Patch and readme file gathered into a .tar.gz file