| #
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
|
| #
36138969
|
| 16-Oct-2025 |
Konstantin Belousov <kib@FreeBSD.org> |
knotes: kqueue: handle copy for trivial filters
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D52045
|
| #
ef9ffb85
|
| 25-Nov-2024 |
Mark Johnston <markj@FreeBSD.org> |
kern: Make fileops and filterops tables const where possible
No functional change intended.
MFC after: 1 week
|
| #
95ee2897
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
| #
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 ...
|
| #
7a810290
|
| 20-Jan-2021 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Make variable-size ioctls return actual length of copyouted data
on success instead of 0 to match Linux. Imprivata binary depends on this.
Submitted by: Shunchao Hu <ankohuu_outlook.com> Rev
evdev: Make variable-size ioctls return actual length of copyouted data
on success instead of 0 to match Linux. Imprivata binary depends on this.
Submitted by: Shunchao Hu <ankohuu_outlook.com> Reviewed by: wulf Differential revision: https://reviews.freebsd.org/D28218
show more ...
|
| #
b360682a
|
| 14-Jan-2021 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
hid: Add missing input enter/exit epoch pairs.
This was affecting unloading keyboard driver and kdb-related code.
|
| #
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 ...
|
| #
006eb449
|
| 29-Mar-2020 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: return error rather than zero-length data on blocked read()
if blocked process has been woken up by evdev device destruction.
MFC after: 2 weeks
|
| #
80ddbddf
|
| 29-Mar-2020 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Add COMPAT_FREEBSD32 support for amd64 arch
Incompatibility between i386 and amd64 evdev ABIs was caused by presence of 'struct timeval' in evdev protocol. Replace it with 'struct timeval32'
evdev: Add COMPAT_FREEBSD32 support for amd64 arch
Incompatibility between i386 and amd64 evdev ABIs was caused by presence of 'struct timeval' in evdev protocol. Replace it with 'struct timeval32' for 32 bit binaries.
Big-endian platforms may require additional work due to bitstr_t (array of unsigned longs) usage in ioctl interface.
MFC after: 2 weeks
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 ...
|
| #
3611ec60
|
| 18-Aug-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r337646 through r338014.
|
| #
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
|
| #
36138969
|
| 16-Oct-2025 |
Konstantin Belousov <kib@FreeBSD.org> |
knotes: kqueue: handle copy for trivial filters
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D52045
|
| #
ef9ffb85
|
| 25-Nov-2024 |
Mark Johnston <markj@FreeBSD.org> |
kern: Make fileops and filterops tables const where possible
No functional change intended.
MFC after: 1 week
|
| #
95ee2897
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
| #
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 ...
|
| #
7a810290
|
| 20-Jan-2021 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Make variable-size ioctls return actual length of copyouted data
on success instead of 0 to match Linux. Imprivata binary depends on this.
Submitted by: Shunchao Hu <ankohuu_outlook.com> Rev
evdev: Make variable-size ioctls return actual length of copyouted data
on success instead of 0 to match Linux. Imprivata binary depends on this.
Submitted by: Shunchao Hu <ankohuu_outlook.com> Reviewed by: wulf Differential revision: https://reviews.freebsd.org/D28218
show more ...
|
| #
b360682a
|
| 14-Jan-2021 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
hid: Add missing input enter/exit epoch pairs.
This was affecting unloading keyboard driver and kdb-related code.
|
| #
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 ...
|
| #
006eb449
|
| 29-Mar-2020 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: return error rather than zero-length data on blocked read()
if blocked process has been woken up by evdev device destruction.
MFC after: 2 weeks
|
| #
80ddbddf
|
| 29-Mar-2020 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
evdev: Add COMPAT_FREEBSD32 support for amd64 arch
Incompatibility between i386 and amd64 evdev ABIs was caused by presence of 'struct timeval' in evdev protocol. Replace it with 'struct timeval32'
evdev: Add COMPAT_FREEBSD32 support for amd64 arch
Incompatibility between i386 and amd64 evdev ABIs was caused by presence of 'struct timeval' in evdev protocol. Replace it with 'struct timeval32' for 32 bit binaries.
Big-endian platforms may require additional work due to bitstr_t (array of unsigned longs) usage in ioctl interface.
MFC after: 2 weeks
show more ...
|