git: e73fcd4c3205 - stable/14 - evdev: add devnum sysctl

Kyle Evans <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.src,gmane.os.freebsd.devel.stable.scm
Message-ID <[email protected]>
The branch stable/14 has been updated by kevans:

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

commit e73fcd4c3205b61e82548aff1ba3b645ed74e5b7
Author:     Quentin Thébault <[email protected]>
AuthorDate: 2026-06-14 16:34:51 +0000
Commit:     Kyle Evans <[email protected]>
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 <[email protected]>
    
    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 */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.