History log of /src/sys/dev/evdev/evdev_private.h (Results 1 – 25 of 81)
Revision Date Author Comments
# ecccc9d9 01-Dec-2025 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Allow setting of character device ownership and access mode

by device driver. That is required as game pad and joystick events have
to be accessible by ordinary users.

MFC after: 1 month


# 95ee2897 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: two-line .h pattern

Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/


# f76051c7 24-Aug-2021 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Add implicit mode for touch tracking.

In implicit mode assignment of slot number and tracking id is performed
automatically on each synchronization requested by device driver.

This is done w

evdev: Add implicit mode for touch tracking.

In implicit mode assignment of slot number and tracking id is performed
automatically on each synchronization requested by device driver.

This is done with creation of intermediate buffer for multitouch events.
This buffer holds untracked events until synchronization is requested by
device driver. It is needed as touch assigment requires
knowledges of all touch positions pushed in current and previous reports.

MFC after: 2 weeks

show more ...


# 66bd52f5 24-Aug-2021 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Make MT tracking IDs monotonically increasing sequence.

MFC after: 2 weeks


# 98a7606b 24-Aug-2021 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Multitouch code style changes.

1. Move touch count reporting helpers to utils. They are not multitouch.
2. Use evdev_mt prefix for private multitouch support routines.
3. Use int instead of i

evdev: Multitouch code style changes.

1. Move touch count reporting helpers to utils. They are not multitouch.
2. Use evdev_mt prefix for private multitouch support routines.
3. Use int instead of int32_t where fixed size is not required.
4. Export some internal functions.

This change should be no-op.

MFC after: 2 weeks

show more ...


# 5f99ae56 16-Aug-2021 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Use bit_foreach helper macro

for traversing all bits set in the bitstring(9).

While here move bit_change() definition to common header.

MFC after: 1 week


# 3b8c8b35 21-Apr-2020 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Allow open() handler to be interrupted by a signal

It is possible that the client list lock is taken by other process for too
long due to e.g. IO timeouts. Allow user to terminate open() in t

evdev: Allow open() handler to be interrupted by a signal

It is possible that the client list lock is taken by other process for too
long due to e.g. IO timeouts. Allow user to terminate open() in this case.

Reviewed by: markj (as part of D27865)

show more ...


# d276eae6 21-Apr-2020 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Make open(2) and close(3) handlers sleepable.

At the beginning of evdev there was a LOR between hardware driver's and
evdev client list locks as they were taken in different order at
driver's

evdev: Make open(2) and close(3) handlers sleepable.

At the beginning of evdev there was a LOR between hardware driver's and
evdev client list locks as they were taken in different order at
driver's interrupt and evdev open()/close() handlers.

The LOR was fixed with introduction of evdev_register_mtx() function
which allowed to use a hardware driver's lock as evdev client list lock.
While this works good with PS/2 and USB, this does not work with I2C.
Unlike PS/2 and USB, I2C open()/close() handlers do unbound sleeps
while waiting for I2C bus to release and while performing IO.
This change uses epoch(9) for traversing evdev client list in interrupt
handler to avoid the LOR thus making possible to convert evdev client
list lock to sleepable sx.

While here add brief locking protocol description.

Reviewed by: markj
Differential revision: https://reviews.freebsd.org/D27865

show more ...


# 0269ae4c 06-Jun-2019 Alan Somers <asomers@FreeBSD.org>

MFHead @348740

Sponsored by: The FreeBSD Foundation


# e2e050c8 20-May-2019 Conrad Meyer <cem@FreeBSD.org>

Extract eventfilter declarations to sys/_eventfilter.h

This allows replacing "sys/eventfilter.h" includes with "sys/_eventfilter.h"
in other header files (e.g., sys/{bus,conf,cpu}.h) and reduces hea

Extract eventfilter declarations to sys/_eventfilter.h

This allows replacing "sys/eventfilter.h" includes with "sys/_eventfilter.h"
in other header files (e.g., sys/{bus,conf,cpu}.h) and reduces header
pollution substantially.

EVENTHANDLER_DECLARE and EVENTHANDLER_LIST_DECLAREs were moved out of .c
files into appropriate headers (e.g., sys/proc.h, powernv/opal.h).

As a side effect of reduced header pollution, many .c files and headers no
longer contain needed definitions. The remainder of the patch addresses
adding appropriate includes to fix those files.

LOCK_DEBUG and LOCK_FILE_LINE_ARG are moved to sys/_lock.h, as required by
sys/mutex.h since r326106 (but silently protected by header pollution prior
to this change).

No functional change (intended). Of course, any out of tree modules that
relied on header pollution for sys/eventhandler.h, sys/lock.h, or
sys/mutex.h inclusion need to be fixed. __FreeBSD_version has been bumped.

show more ...


# 18b18078 25-Feb-2019 Enji Cooper <ngie@FreeBSD.org>

MFhead@r344527


# a8fe8db4 25-Feb-2019 Dimitry Andric <dim@FreeBSD.org>

Merge ^/head r344178 through r344512.


# f99e7b1a 24-Feb-2019 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: export event device properties through sysctl interface

A big security advantage of Wayland is not allowing applications to read
input devices all the time. Having /dev/input/* accessible to

evdev: export event device properties through sysctl interface

A big security advantage of Wayland is not allowing applications to read
input devices all the time. Having /dev/input/* accessible to the user
account subverts this advantage.

libudev-devd was opening the evdev devices to detect their types (mouse,
keyboard, touchpad, etc). This don't work if /dev/input/* is inaccessible.
With the kernel exposing this information as sysctls (kern.evdev.input.*),
we can work w/o /dev/input/* access, preserving the Wayland security model.

Submitted by: Greg V <greg@unrelenting.technology>
Reviewed by: wulf, imp
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D18694

show more ...


# 2a22df74 04-Nov-2018 Dimitry Andric <dim@FreeBSD.org>

Merge ^/head r339813 through r340125.


# 5ef24889 27-Oct-2018 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: disable evdev if it is invoked from KDB or panic context

This allow to prevent deadlock on entering KDB if one of evdev locks is
already taken by userspace process.

Also this change discards

evdev: disable evdev if it is invoked from KDB or panic context

This allow to prevent deadlock on entering KDB if one of evdev locks is
already taken by userspace process.

Also this change discards all but LED console events produced by KDB as
unrelated to userspace.

Tested by: dumbbell (as part of D15070)
Objected by: bde (as 'KDB lock an already locked mutex' problem solution)
MFC after: 1 month

show more ...


# f86e7267 27-Oct-2018 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Use console lock as evdev lock for all supported keyboard drivers.

Now evdev part of keyboard drivers does not take any locks if corresponding
input/eventN device node is not opened by userla

evdev: Use console lock as evdev lock for all supported keyboard drivers.

Now evdev part of keyboard drivers does not take any locks if corresponding
input/eventN device node is not opened by userland consumers.

Do not assert console lock inside evdev to handle the cases when keyboard
driver is called from some special single-threaded context like shutdown
thread.

show more ...


# ecccc9d9 01-Dec-2025 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Allow setting of character device ownership and access mode

by device driver. That is required as game pad and joystick events have
to be accessible by ordinary users.

MFC after: 1 month


# 95ee2897 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: two-line .h pattern

Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/


# f76051c7 24-Aug-2021 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Add implicit mode for touch tracking.

In implicit mode assignment of slot number and tracking id is performed
automatically on each synchronization requested by device driver.

This is done w

evdev: Add implicit mode for touch tracking.

In implicit mode assignment of slot number and tracking id is performed
automatically on each synchronization requested by device driver.

This is done with creation of intermediate buffer for multitouch events.
This buffer holds untracked events until synchronization is requested by
device driver. It is needed as touch assigment requires
knowledges of all touch positions pushed in current and previous reports.

MFC after: 2 weeks

show more ...


# 66bd52f5 24-Aug-2021 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Make MT tracking IDs monotonically increasing sequence.

MFC after: 2 weeks


# 98a7606b 24-Aug-2021 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Multitouch code style changes.

1. Move touch count reporting helpers to utils. They are not multitouch.
2. Use evdev_mt prefix for private multitouch support routines.
3. Use int instead of i

evdev: Multitouch code style changes.

1. Move touch count reporting helpers to utils. They are not multitouch.
2. Use evdev_mt prefix for private multitouch support routines.
3. Use int instead of int32_t where fixed size is not required.
4. Export some internal functions.

This change should be no-op.

MFC after: 2 weeks

show more ...


# 5f99ae56 16-Aug-2021 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Use bit_foreach helper macro

for traversing all bits set in the bitstring(9).

While here move bit_change() definition to common header.

MFC after: 1 week


# 3b8c8b35 21-Apr-2020 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Allow open() handler to be interrupted by a signal

It is possible that the client list lock is taken by other process for too
long due to e.g. IO timeouts. Allow user to terminate open() in t

evdev: Allow open() handler to be interrupted by a signal

It is possible that the client list lock is taken by other process for too
long due to e.g. IO timeouts. Allow user to terminate open() in this case.

Reviewed by: markj (as part of D27865)

show more ...


# d276eae6 21-Apr-2020 Vladimir Kondratyev <wulf@FreeBSD.org>

evdev: Make open(2) and close(3) handlers sleepable.

At the beginning of evdev there was a LOR between hardware driver's and
evdev client list locks as they were taken in different order at
driver's

evdev: Make open(2) and close(3) handlers sleepable.

At the beginning of evdev there was a LOR between hardware driver's and
evdev client list locks as they were taken in different order at
driver's interrupt and evdev open()/close() handlers.

The LOR was fixed with introduction of evdev_register_mtx() function
which allowed to use a hardware driver's lock as evdev client list lock.
While this works good with PS/2 and USB, this does not work with I2C.
Unlike PS/2 and USB, I2C open()/close() handlers do unbound sleeps
while waiting for I2C bus to release and while performing IO.
This change uses epoch(9) for traversing evdev client list in interrupt
handler to avoid the LOR thus making possible to convert evdev client
list lock to sleepable sx.

While here add brief locking protocol description.

Reviewed by: markj
Differential revision: https://reviews.freebsd.org/D27865

show more ...


# 0269ae4c 06-Jun-2019 Alan Somers <asomers@FreeBSD.org>

MFHead @348740

Sponsored by: The FreeBSD Foundation


1234