Find a file
Peter Hutterer 24c9ca81f0 Reduce memory requirement for MT syncing
Changes the algorithm: before we'd ioctl all axes for all slots, then generate
events for all slots one-by-one.

Now we ioctl the slot state for each axis, copy the new event value into
the device and mark a bitfield that we've updated the value. Then loop through
the slots and generate events where changed.

Side-effect: this makes it easy to check if anything in the slot has updated,
so we can skip empty slot events during sync.

Min memory requirement for the state storage was:
  MAX_SLOTS  * (ABS_MT_CNT + 1) * sizeof(int) = 1980
Min memory requirement now:
  (ABS_MT_CNT + 1) * sizeof(int) + NLONGS((MAX_SLOTS * ABS_MT_CNT) bits) = 544

This is sigsafe code, so this was stack memory. Reducing the requirement
allows us to up MAX_SLOTS in the future if we need to.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2014-03-06 09:21:02 +10:00
doc doc: add a placeholder man page 2013-12-09 08:46:24 +10:00
include/linux include: update linux/input.h for kernel 3.13 2014-01-22 09:15:14 +10:00
libevdev Reduce memory requirement for MT syncing 2014-03-06 09:21:02 +10:00
m4 Review/update .gitignore files 2013-11-19 09:34:23 +10:00
test test: whitespace fixes (newlines) 2014-03-05 19:16:08 +10:00
tools tools: Fix compiler warning 2014-02-26 07:24:46 +10:00
.gitignore Review/update .gitignore files 2013-11-19 09:34:23 +10:00
autogen.sh autogen.sh: remove unneeded m4 configuration workaround 2013-11-19 09:37:06 +10:00
configure.ac libevdev 1.0 2014-02-18 14:51:23 +10:00
COPYING Update COPYING file. 2013-11-15 09:30:10 +10:00
libevdev.pc.in Fix name and version in pkgconfig file 2013-07-24 07:27:17 +10:00
Makefile.am Pass --no-print-directory to make 2013-08-26 07:59:07 +10:00
README.md README: remove the warning, it's stable now 2014-02-11 16:27:50 +10:00

libevdev - wrapper library for evdev input devices

libevdev is a wrapper library for evdev devices. it moves the common tasks when dealing with evdev devices into a library and provides a library interface to the callers, thus avoiding erroneous ioctls, etc.

git://git.freedesktop.org/git/libevdev http://cgit.freedesktop.org/libevdev/

The eventual goal is that libevdev wraps all ioctls available to evdev devices, thus making direct access unnecessary.

Go here for the API documentation: http://www.freedesktop.org/software/libevdev/doc/latest/

File bugs in the freedesktop.org bugzilla: https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev

Patches, questions and general comments should be submitted to the input-tools@lists.freedesktop.org mailing list: http://lists.freedesktop.org/mailman/listinfo/input-tools