Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 06 Aug 2026 23:51:49 +0000
From:      Kyle Evans <kevans@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Cc:        Quent=?utf-8?Q?in Th=C3=A9?=bault <quentin.thebault@defenso.fr>
Subject:   git: e73fcd4c3205 - stable/14 - evdev: add devnum sysctl
Message-ID:  <6a751e15.277ee.27e45b5@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/14 has been updated by kevans:

URL: https://cgit.FreeBSD.org/src/commit/?id=e73fcd4c3205b61e82548aff1ba3b645ed74e5b7

commit e73fcd4c3205b61e82548aff1ba3b645ed74e5b7
Author:     Quentin Thébault <quentin.thebault@defenso.fr>
AuthorDate: 2026-06-14 16:34:51 +0000
Commit:     Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2026-08-06 23:51:31 +0000

    evdev: add devnum sysctl
    
    Add a sysctl entry for the evdev device number (devnum) to allow
    libudev-devd to populate the corresponding device information
    fields (MAJOR and MINOR) when running in a jail with no input devices
    exposed through devfs.
    
    Signed-off-by: Quentin Thébault <quentin.thebault@defenso.fr>
    
    Reviewed by:    wulf
    Sponsored by:   Defenso
    
    (cherry picked from commit 746c374aa94b46712e6defb3ab56dd2d6ad8db64)
---
 sys/dev/evdev/evdev.c         | 6 ++++++
 sys/dev/evdev/evdev_private.h | 1 +
 2 files changed, 7 insertions(+)

diff --git a/sys/dev/evdev/evdev.c b/sys/dev/evdev/evdev.c
index aee482518617..9249d88aa548 100644
--- a/sys/dev/evdev/evdev.c
+++ b/sys/dev/evdev/evdev.c
@@ -276,6 +276,11 @@ evdev_sysctl_create(struct evdev_dev *evdev)
 	    SYSCTL_CHILDREN(ev_sysctl_tree), OID_AUTO, "sw_bits", CTLFLAG_RD,
 	    evdev->ev_sw_flags, sizeof(evdev->ev_sw_flags), "",
 	    "Input device supported switch events");
+
+	SYSCTL_ADD_U64(&evdev->ev_sysctl_ctx,
+	    SYSCTL_CHILDREN(ev_sysctl_tree), OID_AUTO, "devnum", CTLFLAG_RD,
+	    &evdev->ev_devnum, 0,
+	    "Input device number");
 }
 
 static int
@@ -321,6 +326,7 @@ evdev_register_common(struct evdev_dev *evdev)
 	ret = evdev_cdev_create(evdev);
 	if (ret != 0)
 		goto bail_out;
+	evdev->ev_devnum = dev2udev(evdev->ev_cdev);
 
 	/* Create sysctls (for device enumeration without /dev/input access rights) */
 	evdev_sysctl_create(evdev);
diff --git a/sys/dev/evdev/evdev_private.h b/sys/dev/evdev/evdev_private.h
index 661259bd2594..376f90ea0b6d 100644
--- a/sys/dev/evdev/evdev_private.h
+++ b/sys/dev/evdev/evdev_private.h
@@ -111,6 +111,7 @@ struct evdev_dev
 	char			ev_shortname[NAMELEN];
 	char			ev_serial[NAMELEN];
 	struct cdev *		ev_cdev;
+	dev_t			ev_devnum;
 	int			ev_unit;
 	enum evdev_lock_type	ev_lock_type;
 	struct mtx *		ev_state_lock;	/* State lock */


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a751e15.277ee.27e45b5>