]> Zhao Yanbai Git Server - minix.git/commitdiff
btrace(8): move to proper location 86/3186/2
authorDavid van Moolenbroek <david@minix3.org>
Sat, 19 Sep 2015 22:31:13 +0000 (22:31 +0000)
committerDavid van Moolenbroek <david@minix3.org>
Wed, 23 Sep 2015 12:03:09 +0000 (12:03 +0000)
- move from minix/commands to minix/usr.sbin;
- install into /usr/sbin instead of /usr/bin;
- move manual page into source directory;
- resolve compilation warning;
- convert to KNF.

Change-Id: I08c16998bd499a468799a6587f6fe45f42590461

distrib/sets/lists/minix/mi
minix/commands/Makefile
minix/commands/btrace/btrace.c [deleted file]
minix/man/man8/Makefile
minix/usr.sbin/Makefile
minix/usr.sbin/btrace/Makefile [moved from minix/commands/btrace/Makefile with 72% similarity]
minix/usr.sbin/btrace/btrace.8 [moved from minix/man/man8/btrace.8 with 100% similarity]
minix/usr.sbin/btrace/btrace.c [new file with mode: 0644]

index 8ab16714b10d4077ed3d10c6c11a007013604ac2..66f9b556aabc87b9ea30275c0722f8c1fa318efe 100644 (file)
 ./usr/bin/bdes                         minix-sys
 ./usr/bin/bsdtar                       minix-sys
 ./usr/bin/bsfilt                       minix-sys
-./usr/bin/btrace                       minix-sys
+./usr/bin/btrace                       minix-sys       obsolete
 ./usr/bin/bunzip2                      minix-sys
 ./usr/bin/bzcat                                minix-sys
 ./usr/bin/bzip2                                minix-sys
 ./usr/preserve                         minix-sys
 ./usr/run                              minix-sys
 ./usr/sbin                             minix-sys
+./usr/sbin/btrace                      minix-sys
 ./usr/sbin/chown                       minix-sys
 ./usr/sbin/chroot                      minix-sys
 ./usr/sbin/group                       minix-sys
index 48716f07122af79887792669d0517d62bf7f2b06..b8093d8d8b44e8e70dc7fed8a13e59a4c812c937 100644 (file)
@@ -2,7 +2,7 @@
 
 .include <bsd.own.mk>
 
-SUBDIR=        add_route arp at backup btrace \
+SUBDIR=        add_route arp at backup \
        cawf cdprobe \
        ci cleantmp co \
        compress crc cron crontab \
diff --git a/minix/commands/btrace/btrace.c b/minix/commands/btrace/btrace.c
deleted file mode 100644 (file)
index 6e9451a..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-/* Block trace command line tool */
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <minix/btrace.h>
-#include <minix/u64.h>
-#include <sys/ioc_block.h>
-
-static btrace_entry buf[BTBUF_SIZE];
-
-static void usage(char *name)
-{
-  printf("usage:\n"
-    "%s start <device> <nr_entries>\n"
-    "%s stop <device> <file>\n"
-    "%s reset <device>\n"
-    "%s dump <file>\n",
-    name, name, name, name);
-
-  exit(EXIT_FAILURE);
-}
-
-static void btrace_start(char *device, int nr_entries)
-{
-  int r, ctl, devfd;
-  size_t size;
-
-  if ((devfd = open(device, O_RDONLY)) < 0) {
-       perror("device open");
-       exit(EXIT_FAILURE);
-  }
-
-  size = nr_entries;
-  if ((r = ioctl(devfd, BIOCTRACEBUF, &size)) < 0) {
-       perror("ioctl(BIOCTRACEBUF)");
-       exit(EXIT_FAILURE);
-  }
-
-  ctl = BTCTL_START;
-  if ((r = ioctl(devfd, BIOCTRACECTL, &ctl)) < 0) {
-       perror("ioctl(BIOCTRACECTL)");
-
-       size = 0;
-       (void) ioctl(devfd, BIOCTRACEBUF, &size);
-
-       exit(EXIT_FAILURE);
-  }
-
-  close(devfd);
-}
-
-static void btrace_stop(char *device, char *file)
-{
-  int r, ctl, devfd, outfd;
-  size_t size;
-
-  if ((devfd = open(device, O_RDONLY)) < 0) {
-       perror("device open");
-       exit(EXIT_FAILURE);
-  }
-
-  if ((outfd = open(file, O_CREAT|O_TRUNC|O_WRONLY, 0600)) < 0) {
-       perror("file open");
-       exit(EXIT_FAILURE);
-  }
-
-  ctl = BTCTL_STOP;
-  if ((r = ioctl(devfd, BIOCTRACECTL, &ctl)) < 0) {
-       perror("ioctl(BIOCTRACECTL)");
-       exit(EXIT_FAILURE);
-  }
-
-  for (;;) {
-       if ((r = ioctl(devfd, BIOCTRACEGET, buf)) < 0) {
-               perror("ioctl(BIOCTRACEGET)");
-               break;
-       }
-
-       if (r == 0) break;
-
-       size = r * sizeof(buf[0]);
-       if ((r = write(outfd, (char *) buf, size)) != size) {
-               if (r < 0) perror("write");
-               else fputs("short write\n", stderr);
-       }
-  }
-
-  close(outfd);
-
-  size = 0;
-  if ((r = ioctl(devfd, BIOCTRACEBUF, &size)) < 0) {
-       perror("ioctl(BIOCTRACEBUF)");
-       exit(EXIT_FAILURE);
-  }
-
-  close(devfd);
-}
-
-static void btrace_reset(char *device)
-{
-  size_t size;
-  int r, ctl, devfd;
-
-  if ((devfd = open(device, O_RDONLY)) < 0) {
-       perror("device open");
-       exit(EXIT_FAILURE);
-  }
-
-  ctl = BTCTL_STOP;
-  (void) ioctl(devfd, BIOCTRACECTL, &ctl);
-
-  size = 0;
-  if ((r = ioctl(devfd, BIOCTRACEBUF, &size)) < 0) {
-       perror("ioctl(BIOCTRACEBUF)");
-       exit(EXIT_FAILURE);
-  }
-
-  close(devfd);
-}
-
-static void dump_entry(btrace_entry *entry)
-{
-  switch (entry->request) {
-  case BTREQ_OPEN: printf("OPEN"); break;
-  case BTREQ_CLOSE: printf("CLOSE"); break;
-  case BTREQ_READ: printf("READ"); break;
-  case BTREQ_WRITE: printf("WRITE"); break;
-  case BTREQ_GATHER: printf("GATHER"); break;
-  case BTREQ_SCATTER: printf("SCATTER"); break;
-  case BTREQ_IOCTL: printf("IOCTL"); break;
-  }
-
-  printf(" request\n");
-
-  switch (entry->request) {
-  case BTREQ_OPEN:
-       printf("- access:\t%x\n", entry->size);
-       break;
-  case BTREQ_READ:
-  case BTREQ_WRITE:
-  case BTREQ_GATHER:
-  case BTREQ_SCATTER:
-       printf("- position:\t%08lx%08lx\n",
-               ex64hi(entry->position), ex64lo(entry->position));
-       printf("- size:\t\t%u\n", entry->size);
-       printf("- flags:\t%x\n", entry->flags);
-       break;
-  case BTREQ_IOCTL:
-       printf("- request:\t%08x\n", entry->size);
-       break;
-  }
-
-  printf("- start:\t%u us\n", entry->start_time);
-  printf("- finish:\t%u us\n", entry->finish_time);
-  if (entry->result == BTRES_INPROGRESS)
-       printf("- result:\t(in progress)\n");
-  else
-       printf("- result:\t%d\n", entry->result);
-  printf("\n");
-}
-
-static void btrace_dump(char *file)
-{
-  int i, r, infd;
-
-  if ((infd = open(file, O_RDONLY)) < 0) {
-       perror("open");
-       exit(EXIT_FAILURE);
-  }
-
-  for (;;) {
-       if ((r = read(infd, (char *) buf, sizeof(buf))) <= 0)
-               break;
-
-       r /= sizeof(buf[0]);
-
-       for (i = 0; i < r; i++)
-               dump_entry(&buf[i]);
-  }
-
-  if (r < 0) perror("read");
-
-  close(infd);
-}
-
-int main(int argc, char **argv)
-{
-  int num;
-  char *name = argv[0];
-
-  if (argc < 3) usage(name);
-
-  if (!strcmp(argv[1], "start")) {
-       if (argc < 4) usage(name);
-
-       num = atoi(argv[3]);
-
-       if (num <= 0) usage(name);
-
-       btrace_start(argv[2], num);
-  }
-  else if (!strcmp(argv[1], "stop")) {
-       if (argc < 4) usage(name);
-
-       btrace_stop(argv[2], argv[3]);
-  }
-  else if (!strcmp(argv[1], "reset")) {
-       btrace_reset(argv[2]);
-  }
-  else if (!strcmp(argv[1], "dump")) {
-       btrace_dump(argv[2]);
-  }
-  else usage(name);
-
-  return EXIT_SUCCESS;
-}
index 38d8d5cbd6a787827e6776bdf71773ef3a3a06e9..4cdb186d2270e44c891771ebeb679eae8d1a7f3e 100644 (file)
@@ -1,4 +1,4 @@
-MAN=   add_route.8 backup.8 boot.8 btrace.8 \
+MAN=   add_route.8 backup.8 boot.8 \
        cdprobe.8 cleantmp.8 config.8 cron.8 \
        dhcpd.8 diskctl.8 fbdctl.8 fdisk.8 \
        getty.8 halt.8 hgfs.8 httpd.8 ifconfig.8 inet.8 init.8 \
index 858722d6dcfce8c1d52830d34fd420ba749209d2..006b48b209feaaddaec494dd58ccfb86fcf02665 100644 (file)
@@ -1,5 +1,6 @@
 .include <bsd.own.mk>
 
+SUBDIR+=       btrace
 SUBDIR+=       mkfs.mfs
 SUBDIR+=       mkproto
 
similarity index 72%
rename from minix/commands/btrace/Makefile
rename to minix/usr.sbin/btrace/Makefile
index 7daeefeab25857e4e43c4b5b4cf02b3c37d7d5d7..4484adcc8a297da6ac5b60399b6d6d33d3a17a58 100644 (file)
@@ -1,4 +1,4 @@
 PROG=  btrace
-MAN=
+MAN=   btrace.8
 
 .include <bsd.prog.mk>
diff --git a/minix/usr.sbin/btrace/btrace.c b/minix/usr.sbin/btrace/btrace.c
new file mode 100644 (file)
index 0000000..6b05142
--- /dev/null
@@ -0,0 +1,227 @@
+/* Block trace command line tool - by D.C. van Moolenbroek */
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <minix/btrace.h>
+#include <minix/u64.h>
+#include <sys/ioctl.h>
+
+static btrace_entry buf[BTBUF_SIZE];
+
+static void __dead
+usage(void)
+{
+       fprintf(stderr, "usage:\n"
+           "%s start <device> <nr_entries>\n"
+           "%s stop <device> <file>\n"
+           "%s reset <device>\n"
+           "%s dump <file>\n",
+           getprogname(), getprogname(), getprogname(), getprogname());
+
+       exit(EXIT_FAILURE);
+}
+
+static void
+btrace_start(char * device, int nr_entries)
+{
+       int r, ctl, devfd;
+       size_t size;
+
+       if ((devfd = open(device, O_RDONLY)) < 0) {
+               perror("device open");
+               exit(EXIT_FAILURE);
+       }
+
+       size = nr_entries;
+       if ((r = ioctl(devfd, BIOCTRACEBUF, &size)) < 0) {
+               perror("ioctl(BIOCTRACEBUF)");
+               exit(EXIT_FAILURE);
+       }
+
+       ctl = BTCTL_START;
+       if ((r = ioctl(devfd, BIOCTRACECTL, &ctl)) < 0) {
+               perror("ioctl(BIOCTRACECTL)");
+
+               size = 0;
+               (void)ioctl(devfd, BIOCTRACEBUF, &size);
+
+               exit(EXIT_FAILURE);
+       }
+
+       close(devfd);
+}
+
+static void
+btrace_stop(char * device, char * file)
+{
+       int r, ctl, devfd, outfd;
+       size_t size;
+
+       if ((devfd = open(device, O_RDONLY)) < 0) {
+               perror("device open");
+               exit(EXIT_FAILURE);
+       }
+
+       if ((outfd = open(file, O_CREAT | O_TRUNC | O_WRONLY, 0600)) < 0) {
+               perror("file open");
+               exit(EXIT_FAILURE);
+         }
+
+       ctl = BTCTL_STOP;
+       if ((r = ioctl(devfd, BIOCTRACECTL, &ctl)) < 0) {
+               perror("ioctl(BIOCTRACECTL)");
+               exit(EXIT_FAILURE);
+       }
+
+       for (;;) {
+               if ((r = ioctl(devfd, BIOCTRACEGET, buf)) < 0) {
+                       perror("ioctl(BIOCTRACEGET)");
+                       break;
+               }
+
+               if (r == 0) break;
+
+               size = r * sizeof(buf[0]);
+               if ((r = write(outfd, (char *)buf, size)) != size) {
+                       if (r < 0) perror("write");
+                       else fputs("short write\n", stderr);
+               }
+       }
+
+       close(outfd);
+
+       size = 0;
+       if ((r = ioctl(devfd, BIOCTRACEBUF, &size)) < 0) {
+               perror("ioctl(BIOCTRACEBUF)");
+               exit(EXIT_FAILURE);
+       }
+
+       close(devfd);
+}
+
+static void
+btrace_reset(char * device)
+{
+       size_t size;
+       int r, ctl, devfd;
+
+       if ((devfd = open(device, O_RDONLY)) < 0) {
+               perror("device open");
+               exit(EXIT_FAILURE);
+       }
+
+       ctl = BTCTL_STOP;
+       (void)ioctl(devfd, BIOCTRACECTL, &ctl);
+
+       size = 0;
+       if ((r = ioctl(devfd, BIOCTRACEBUF, &size)) < 0) {
+               perror("ioctl(BIOCTRACEBUF)");
+               exit(EXIT_FAILURE);
+       }
+
+       close(devfd);
+}
+
+static void
+dump_entry(btrace_entry * entry)
+{
+       switch (entry->request) {
+       case BTREQ_OPEN: printf("OPEN"); break;
+       case BTREQ_CLOSE: printf("CLOSE"); break;
+       case BTREQ_READ: printf("READ"); break;
+       case BTREQ_WRITE: printf("WRITE"); break;
+       case BTREQ_GATHER: printf("GATHER"); break;
+       case BTREQ_SCATTER: printf("SCATTER"); break;
+       case BTREQ_IOCTL: printf("IOCTL"); break;
+       }
+
+       printf(" request\n");
+
+       switch (entry->request) {
+       case BTREQ_OPEN:
+               printf("- access:\t%x\n", entry->size);
+               break;
+       case BTREQ_READ:
+       case BTREQ_WRITE:
+       case BTREQ_GATHER:
+       case BTREQ_SCATTER:
+               printf("- position:\t%08lx%08lx\n",
+                   ex64hi(entry->position), ex64lo(entry->position));
+               printf("- size:\t\t%u\n", entry->size);
+               printf("- flags:\t%x\n", entry->flags);
+               break;
+       case BTREQ_IOCTL:
+               printf("- request:\t%08x\n", entry->size);
+               break;
+       }
+
+       printf("- start:\t%u us\n", entry->start_time);
+       printf("- finish:\t%u us\n", entry->finish_time);
+       if (entry->result == BTRES_INPROGRESS)
+               printf("- result:\t(in progress)\n");
+       else
+               printf("- result:\t%d\n", entry->result);
+       printf("\n");
+}
+
+static void
+btrace_dump(char * file)
+{
+       int i, r, infd;
+
+       if ((infd = open(file, O_RDONLY)) < 0) {
+               perror("open");
+               exit(EXIT_FAILURE);
+       }
+
+       for (;;) {
+               if ((r = read(infd, (char *)buf, sizeof(buf))) <= 0)
+                       break;
+
+               r /= sizeof(buf[0]);
+
+               for (i = 0; i < r; i++)
+                       dump_entry(&buf[i]);
+       }
+
+       if (r < 0) perror("read");
+
+       close(infd);
+}
+
+int main(int argc, char ** argv)
+{
+       int num;
+
+       setprogname(argv[0]);
+
+       if (argc < 3) usage();
+
+       if (!strcmp(argv[1], "start")) {
+               if (argc < 4) usage();
+
+               num = atoi(argv[3]);
+
+               if (num <= 0) usage();
+
+               btrace_start(argv[2], num);
+
+       } else if (!strcmp(argv[1], "stop")) {
+               if (argc < 4) usage();
+
+               btrace_stop(argv[2], argv[3]);
+
+       } else if (!strcmp(argv[1], "reset")) {
+               btrace_reset(argv[2]);
+
+       } else if (!strcmp(argv[1], "dump")) {
+               btrace_dump(argv[2]);
+
+       } else
+               usage();
+
+       return EXIT_SUCCESS;
+}