200 kamil@chieftec /usr/src/usr.bin/kdump $ ln -s ./kdump ioctlname 201 kamil@chieftec /usr/src/usr.bin/kdump $ ln -s ./kdump ioctldecode 204 kamil@chieftec /usr/src/usr.bin/kdump $ make USETOOLS=no MAKECONF=/dev/null MKVERBOSE=0 clean (cd /usr/src/usr.bin/kdump && rm -f siginfo.c kdump-ioctl.c a.out [Ee]rrs mklog core *.core .gdbinit kdump kdump.o subr.o setemul.o siginfo.o kdump-ioctl.o kdump.ln subr.ln setemul.ln siginfo.ln kdump-ioctl.ln || true) 205 kamil@chieftec /usr/src/usr.bin/kdump $ make USETOOLS=no MAKECONF=/dev/null MKVERBOSE=0 rm -f .gdbinit touch .gdbinit # create kdump/kdump-ioctl.c AWK=awk CC=gcc DESTDIR= SED=sed NETBSDSRCDIR=/usr/src CPPFLAGS=\ -I/usr/X11R7/include/libdrm\ -I/usr/X11R7/include/pixman-1\ -I/usr/X11R7/include\ -I/usr/src/sys/external/bsd/libnv/dist\ -I/usr/src/external/cddl/osnet/sys\ -I/usr/src/external/cddl/osnet/dist/uts/common\ -D_DEV_IC_BT8XX_H_\ -D_ALTQ_ALTQ_JOBS_H_\ -D_VIA_DRM_H_\ -DQXL_DRM_H\ -D__R128_DRM_H__\ -D__SIS_DRM_H__\ -D__SAVAGE_DRM_H__\ -D__RADEON_DRM_H__\ -D__MACH64_DRM_H__\ -D__MGA_DRM_H__\ -I/usr/src/usr.bin/ktrace\ -I/usr/src/sys\ -D_KERNTYPES\ /bin/sh /usr/src/usr.bin/kdump/mkioctls /usr/include/altq/altq.h /usr/include/altq/altq_afmap.h /usr/include/altq/altq_blue.h /usr/include/altq/altq_cbq.h /usr/include/altq/altq_cdnr.h /usr/include/altq/altq_fifoq.h /usr/include/altq/altq_hfsc.h /usr/include/altq/altq_jobs.h /usr/include/altq/altq_priq.h /usr/include/altq/altq_red.h /usr/include/altq/altq_rio.h /usr/include/altq/altq_wfq.h /usr/include/crypto/cryptodev.h /usr/include/dev/apm/apmio.h /usr/include/dev/biovar.h /usr/include/dev/bluetooth/btdev.h /usr/include/dev/bluetooth/btsco.h /usr/include/dev/ccdvar.h /usr/include/dev/cgdvar.h /usr/include/dev/dm/netbsd-dm.h /usr/include/dev/dmover/dmover_io.h /usr/include/dev/dtv/dtvio_demux.h /usr/include/dev/dtv/dtvio_frontend.h /usr/include/dev/fssvar.h /usr/include/dev/hdaudio/hdaudioio.h /usr/include/dev/hdmicec/hdmicecio.h /usr/include/dev/hpc/hpcfbio.h /usr/include/dev/i2c/i2c_io.h /usr/include/dev/i2o/iopio.h /usr/include/dev/ic/athioctl.h /usr/include/dev/ic/bt8xx.h /usr/include/dev/ic/hd44780var.h /usr/include/dev/ic/icp_ioctl.h /usr/include/dev/ic/isp_ioctl.h /usr/include/dev/ic/mlxio.h /usr/include/dev/ic/nvmeio.h /usr/include/dev/ic/qemufwcfgio.h /usr/include/dev/ir/irdaio.h /usr/include/dev/isa/isvio.h /usr/include/dev/isa/wtreg.h /usr/include/dev/iscsi/iscsi_ioctl.h /usr/include/dev/kttcpio.h /usr/include/dev/lockstat.h /usr/include/dev/md.h /usr/include/dev/ofw/openfirmio.h /usr/include/dev/pci/amrio.h /usr/include/dev/pci/mlyio.h /usr/include/dev/pci/pciio.h /usr/include/dev/pci/tweio.h /usr/include/dev/pcmcia/if_cnwioctl.h /usr/include/dev/pcmcia/if_rayreg.h /usr/include/dev/raidframe/raidframeio.h /usr/include/dev/sbus/mbppio.h /usr/include/dev/scsipi/ses.h /usr/include/dev/spi/spi_io.h /usr/include/dev/spkrio.h /usr/include/dev/sun/disklabel.h /usr/include/dev/sun/fbio.h /usr/include/dev/sun/kbio.h /usr/include/dev/sun/vuid_event.h /usr/include/dev/tc/sticio.h /usr/include/dev/usb/usb.h /usr/include/dev/usb/usbhid.h /usr/include/dev/usb/utoppy.h /usr/include/dev/usb/vhci.h /usr/include/dev/vme/xio.h /usr/include/dev/vndvar.h /usr/include/dev/wscons/wsconsio.h /usr/include/dev/wscons/wsdisplay_usl_io.h /usr/include/fs/autofs/autofs_ioctl.h /usr/include/krb5/kafs.h /usr/include/net/bpf.h /usr/include/net/if_gre.h /usr/include/net/if_l2tp.h /usr/include/net/if_ppp.h /usr/include/net/if_pppoe.h /usr/include/net/if_sppp.h /usr/include/net/if_srt.h /usr/include/net/if_tap.h /usr/include/net/if_tun.h /usr/include/net/npf.h /usr/include/net/pfvar.h /usr/include/net/slip.h /usr/include/net80211/ieee80211_ioctl.h /usr/include/netatalk/phase2.h /usr/include/netbt/hci.h /usr/include/netinet/ip_fil.h /usr/include/netinet/ip_lookup.h /usr/include/netinet/ip_nat.h /usr/include/netinet/ip_proxy.h /usr/include/netinet/ip_scan.h /usr/include/netinet/ip_state.h /usr/include/netinet/sctp_uio.h /usr/include/netinet6/in6_var.h /usr/include/netsmb/smb_dev.h /usr/include/pcap/bpf.h /usr/include/rump/rumpdefs.h /usr/include/soundcard.h /usr/include/sys/agpio.h /usr/include/sys/ataio.h /usr/include/sys/audioio.h /usr/include/sys/cdio.h /usr/include/sys/chio.h /usr/include/sys/clockctl.h /usr/include/sys/cpuio.h /usr/include/sys/dkio.h /usr/include/sys/drvctlio.h /usr/include/sys/dvdio.h /usr/include/sys/envsys.h /usr/include/sys/event.h /usr/include/sys/fdio.h /usr/include/sys/filio.h /usr/include/sys/flashio.h /usr/include/sys/gpio.h /usr/include/sys/ioccom.h /usr/include/sys/ioctl.h /usr/include/sys/ioctl_compat.h /usr/include/sys/ipmi.h /usr/include/sys/joystick.h /usr/include/sys/kcov.h /usr/include/sys/ksyms.h /usr/include/sys/lua.h /usr/include/sys/midiio.h /usr/include/sys/mtio.h /usr/include/sys/power.h /usr/include/sys/radioio.h /usr/include/sys/rndio.h /usr/include/sys/scanio.h /usr/include/sys/scsiio.h /usr/include/sys/sockio.h /usr/include/sys/soundcard.h /usr/include/sys/timepps.h /usr/include/sys/ttycom.h /usr/include/sys/verified_exec.h /usr/include/sys/videoio.h /usr/include/sys/wdog.h /usr/include/dev/nvmm/nvmm_ioctl.h /usr/X11R7/include/libdrm/amdgpu_drm.h /usr/X11R7/include/libdrm/drm.h /usr/X11R7/include/libdrm/i915_drm.h /usr/X11R7/include/libdrm/mach64_drm.h /usr/X11R7/include/libdrm/mga_drm.h /usr/X11R7/include/libdrm/qxl_drm.h /usr/X11R7/include/libdrm/r128_drm.h /usr/X11R7/include/libdrm/radeon_drm.h /usr/X11R7/include/libdrm/savage_drm.h /usr/X11R7/include/libdrm/sis_drm.h /usr/X11R7/include/libdrm/via_drm.h /usr/X11R7/include/libdrm/virtgpu_drm.h /usr/X11R7/include/libsync.h /usr/X11R7/include/xorg/xf86_OSlib.h /usr/src/external/cddl/osnet/dist/uts/common/sys/dtrace.h >kdump-ioctl.c # create kdump/siginfo.c AWK=awk DESTDIR= /bin/sh /usr/src/usr.bin/kdump/mksiginfos > siginfo.c # compile kdump/kdump.o gcc -O2 -fPIE -std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-sign-compare -Wsystem-headers -Wno-traditional -Wa,--fatal-warnings -Wreturn-type -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -Wextra -Wno-unused-parameter -Wno-sign-compare -Wold-style-definition -Wsign-compare -Wformat=2 -Wno-format-zero-length -Werror -Wno-unknown-pragmas -I/usr/X11R7/include/libdrm -I/usr/X11R7/include/pixman-1 -I/usr/X11R7/include -I/usr/src/sys/external/bsd/libnv/dist -I/usr/src/external/cddl/osnet/sys -I/usr/src/external/cddl/osnet/dist/uts/common -D_DEV_IC_BT8XX_H_ -D_ALTQ_ALTQ_JOBS_H_ -D_VIA_DRM_H_ -DQXL_DRM_H -D__R128_DRM_H__ -D__SIS_DRM_H__ -D__SAVAGE_DRM_H__ -D__RADEON_DRM_H__ -D__MACH64_DRM_H__ -D__MGA_DRM_H__ -I/usr/src/usr.bin/ktrace -I/usr/src/sys -D_KERNTYPES -c kdump.c ctfconvert -g -L VERSION kdump.o # compile kdump/subr.o gcc -O2 -fPIE -std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-sign-compare -Wsystem-headers -Wno-traditional -Wa,--fatal-warnings -Wreturn-type -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -Wextra -Wno-unused-parameter -Wno-sign-compare -Wold-style-definition -Wsign-compare -Wformat=2 -Wno-format-zero-length -Werror -Wno-unknown-pragmas -I/usr/X11R7/include/libdrm -I/usr/X11R7/include/pixman-1 -I/usr/X11R7/include -I/usr/src/sys/external/bsd/libnv/dist -I/usr/src/external/cddl/osnet/sys -I/usr/src/external/cddl/osnet/dist/uts/common -D_DEV_IC_BT8XX_H_ -D_ALTQ_ALTQ_JOBS_H_ -D_VIA_DRM_H_ -DQXL_DRM_H -D__R128_DRM_H__ -D__SIS_DRM_H__ -D__SAVAGE_DRM_H__ -D__RADEON_DRM_H__ -D__MACH64_DRM_H__ -D__MGA_DRM_H__ -I/usr/src/usr.bin/ktrace -I/usr/src/sys -D_KERNTYPES -c /usr/src/usr.bin/ktrace/subr.c ctfconvert -g -L VERSION subr.o # compile kdump/setemul.o gcc -O2 -fPIE -std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-sign-compare -Wsystem-headers -Wno-traditional -Wa,--fatal-warnings -Wreturn-type -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -Wextra -Wno-unused-parameter -Wno-sign-compare -Wold-style-definition -Wsign-compare -Wformat=2 -Wno-format-zero-length -Werror -Wno-unknown-pragmas -I/usr/X11R7/include/libdrm -I/usr/X11R7/include/pixman-1 -I/usr/X11R7/include -I/usr/src/sys/external/bsd/libnv/dist -I/usr/src/external/cddl/osnet/sys -I/usr/src/external/cddl/osnet/dist/uts/common -D_DEV_IC_BT8XX_H_ -D_ALTQ_ALTQ_JOBS_H_ -D_VIA_DRM_H_ -DQXL_DRM_H -D__R128_DRM_H__ -D__SIS_DRM_H__ -D__SAVAGE_DRM_H__ -D__RADEON_DRM_H__ -D__MACH64_DRM_H__ -D__MGA_DRM_H__ -I/usr/src/usr.bin/ktrace -I/usr/src/sys -D_KERNTYPES -c setemul.c ctfconvert -g -L VERSION setemul.o # compile kdump/siginfo.o gcc -O2 -fPIE -std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-sign-compare -Wsystem-headers -Wno-traditional -Wa,--fatal-warnings -Wreturn-type -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -Wextra -Wno-unused-parameter -Wno-sign-compare -Wold-style-definition -Wsign-compare -Wformat=2 -Wno-format-zero-length -Werror -Wno-unknown-pragmas -I/usr/X11R7/include/libdrm -I/usr/X11R7/include/pixman-1 -I/usr/X11R7/include -I/usr/src/sys/external/bsd/libnv/dist -I/usr/src/external/cddl/osnet/sys -I/usr/src/external/cddl/osnet/dist/uts/common -D_DEV_IC_BT8XX_H_ -D_ALTQ_ALTQ_JOBS_H_ -D_VIA_DRM_H_ -DQXL_DRM_H -D__R128_DRM_H__ -D__SIS_DRM_H__ -D__SAVAGE_DRM_H__ -D__RADEON_DRM_H__ -D__MACH64_DRM_H__ -D__MGA_DRM_H__ -I/usr/src/usr.bin/ktrace -I/usr/src/sys -D_KERNTYPES -c siginfo.c ctfconvert -g -L VERSION siginfo.o # compile kdump/kdump-ioctl.o gcc -O2 -fPIE -std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-sign-compare -Wsystem-headers -Wno-traditional -Wa,--fatal-warnings -Wreturn-type -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -Wextra -Wno-unused-parameter -Wno-sign-compare -Wold-style-definition -Wsign-compare -Wformat=2 -Wno-format-zero-length -Werror -Wno-unknown-pragmas -I/usr/X11R7/include/libdrm -I/usr/X11R7/include/pixman-1 -I/usr/X11R7/include -I/usr/src/sys/external/bsd/libnv/dist -I/usr/src/external/cddl/osnet/sys -I/usr/src/external/cddl/osnet/dist/uts/common -D_DEV_IC_BT8XX_H_ -D_ALTQ_ALTQ_JOBS_H_ -D_VIA_DRM_H_ -DQXL_DRM_H -D__R128_DRM_H__ -D__SIS_DRM_H__ -D__SAVAGE_DRM_H__ -D__RADEON_DRM_H__ -D__MACH64_DRM_H__ -D__MGA_DRM_H__ -I/usr/src/usr.bin/ktrace -I/usr/src/sys -D_KERNTYPES -c kdump-ioctl.c ctfconvert -g -L VERSION kdump-ioctl.o # link kdump/kdump gcc -pie -shared-libgcc -Wl,--warn-shared-textrel -Wl,-z,relro -o kdump kdump.o subr.o setemul.o siginfo.o kdump-ioctl.o -Wl,-rpath-link,/lib -L=/lib -lutil ctfmerge -t -g -L VERSION -o kdump kdump.o subr.o setemul.o siginfo.o kdump-ioctl.o 206 kamil@chieftec /usr/src/usr.bin/kdump $ ./ioctlname 2148554498 WSKBDIO_COMPLEXBELL 207 kamil@chieftec /usr/src/usr.bin/kdump $ ./ioctldecode 2148554498 _IOW('W',0x2,0x10) 208 kamil@chieftec /usr/src/usr.bin/kdump $ cvs -q -z6 diff -u . ? .gdbinit ? kdump ? kdump-ioctl.c ? kdump.html1 ? siginfo.c Index: kdump.c =================================================================== RCS file: /cvsroot/src/usr.bin/kdump/kdump.c,v retrieving revision 1.132 diff -u -r1.132 kdump.c --- kdump.c 23 Jul 2019 01:54:51 -0000 1.132 +++ kdump.c 1 Apr 2020 23:31:46 -0000 @@ -59,6 +59,7 @@ #include #include #include +#include #include #include #include @@ -132,6 +133,7 @@ int main(int argc, char **argv) { + unsigned long int u; unsigned int ktrlen, size; int ch; void *m; @@ -140,10 +142,15 @@ const char *emul_name = "netbsd"; int col; char *cp; + bool am_i_ioctlname; + bool am_i_ioctldecode; setprogname(argv[0]); - if (strcmp(getprogname(), "ioctlname") == 0) { + am_i_ioctlname = strcmp(getprogname(), "ioctlname") == 0; + am_i_ioctldecode = strcmp(getprogname(), "ioctldecode") == 0; + + if (am_i_ioctlname || am_i_ioctldecode) { int i; while ((ch = getopt(argc, argv, "e:")) != -1) @@ -163,8 +170,13 @@ usage(); for (i = 0; i < argc; i++) { - ioctldecode(strtoul(argv[i], NULL, 0)); - (void)putchar('\n'); + u = strtoul(argv[i], NULL, 0); + if (am_i_ioctlname) + printf("%s\n", ioctlname(u)); + else { + ioctldecode(u); + (void)putchar('\n'); + } } return 0; } @@ -1235,7 +1247,8 @@ static void usage(void) { - if (strcmp(getprogname(), "ioctlname") == 0) { + if (strcmp(getprogname(), "ioctlname") == 0 || + strcmp(getprogname(), "ioctdecode") == 0) { (void)fprintf(stderr, "Usage: %s [-e emulation] ...\n", getprogname()); } else { 209 kamil@chieftec /usr/src/usr.bin/kdump $ ./ioctlname 2148554498 WSKBDIO_COMPLEXBELL 210 kamil@chieftec /usr/src/usr.bin/kdump $ ./ioctldecode 2148554498 _IOW('W',0x2,0x10)