? .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:56:02 -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,13 +1247,16 @@ static void usage(void) { - if (strcmp(getprogname(), "ioctlname") == 0) { + const char *p; + + p = getprogname(); + if (strcmp(p, "ioctlname") == 0 || strcmp(p, "ioctldecode") == 0) { (void)fprintf(stderr, "Usage: %s [-e emulation] ...\n", - getprogname()); + p); } else { (void)fprintf(stderr, "Usage: %s [-dElNnRT] [-e emulation] " "[-f file] [-m maxdata] [-p pid]\n [-t trstr] " - "[-x | -X size] [file]\n", getprogname()); + "[-x | -X size] [file]\n", p); } exit(1); }