Date: Mon, 05 Dec 2016 15:43:05 -0800 From: Chris Torek <torek@torek.net> To: freebsd-hackers@freebsd.org Subject: kernel ioctl aggregator script, might be generally useful Message-ID: <201612052343.uB5Nh5Dm078198@elf.torek.net>
next in thread | raw e-mail | index | archive | help
I wrote a little Python script to let me view existing kernel _IO*(group, number, type) ioctls. Here's a sample of the kind of data it prints: group 'F': 0: _IOR('F', 0, struct fbtype) sys/fbio.h:106 2: _IOR('F', 2, struct fbinfo) sys/fbio.h:178 3: _IOW('F', 3, struct fbcmap) sys/fbio.h:191 4: _IOW('F', 4, struct fbcmap) sys/fbio.h:192 5: _IOW('F', 5, struct fbsattr) sys/fbio.h:216 6: _IOR('F', 6, struct fbgattr) sys/fbio.h:217 [snip] group 'I': 0: _IOWR('I', 0, struct iodev_pio_req) dev/io/iodev.h:42 1: _IOR('I', 1, struct iscsi_daemon_request) dev/iscsi/iscsi_ioctl.h:125 _IOR('I', 1, struct autofs_daemon_request) fs/autofs/autofs_ioctl.h:1= 12 _IOWR('I', 1, struct iodev_efivar_req) ia64/include/iodev.h:53 2: _IOW('I', 2, struct iscsi_daemon_handoff) dev/iscsi/iscsi_ioctl.h:126 _IOW('I', 2, struct autofs_daemon_done_101) fs/autofs/autofs_ioctl.h:= 113 3: _IOW('I', 3, struct iscsi_daemon_fail) dev/iscsi/iscsi_ioctl.h:127 _IOW('I', 3, struct autofs_daemon_done) fs/autofs/autofs_ioctl.h:114 4: _IOWR('I', 4, struct iscsi_daemon_connect) dev/iscsi/iscsi_ioctl.h:17= 9 [snip] which lets us see that there are overlapping uses of some of the group-'I' ioctls (overlapping uses are OK as long as they don't really collide, of course, this just lets you check for potential issues). (Also it does not know about #ifdef so it finds things like these: group r: 60: _IOW(r, 60, struct ipfobj) contrib/ipfilter/netinet/ip_fi= l.h:88 which is inside the "#else" part of a __STDC__ ifdef.) Anyway, if anyone wants it for whatever purpose, I put it up for public access at https://github.com/chris3torek/scripts (https://raw.githubusercontent.com/chris3torek/scripts/master/sysioctl.py) Chris
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201612052343.uB5Nh5Dm078198>