git: f7d84c7b3858 - stable/15 - 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/15 has been updated by kevans:

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

commit f7d84c7b3858089def5d91b829118313ee681ce9
Author:     Quentin Thébault <[email protected]>
AuthorDate: 2026-06-14 16:34:51 +0000
Commit:     Kyle Evans <[email protected]>
CommitDate: 2026-08-06 23:34:29 +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 4dcd6f23d338..b8628d570a3c 100644
--- a/sys/dev/evdev/evdev.c
+++ b/sys/dev/evdev/evdev.c
@@ -283,6 +283,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
@@ -328,6 +333,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 4c371e538598..65da48745dc9 100644
--- a/sys/dev/evdev/evdev_private.h
+++ b/sys/dev/evdev/evdev_private.h
@@ -114,6 +114,7 @@ struct evdev_dev
 	uid_t			ev_cdev_uid;
 	gid_t			ev_cdev_gid;
 	int			ev_cdev_mode;
+	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.