BSD 3 development
[unix-history] / usr / src / cmd / dmesg.c
old mode 100644 (file)
new mode 100755 (executable)
index eeff1f7..3b22647
@@ -1,10 +1,15 @@
 /*
  *     Suck up system messages
 /*
  *     Suck up system messages
+ *     dmesg
+ *             print current buffer
+ *     dmesg -
+ *             print and update incremental history
  */
 
 #include <stdio.h>
 #include <sys/param.h>
 #include <a.out.h>
  */
 
 #include <stdio.h>
 #include <sys/param.h>
 #include <a.out.h>
+#include <signal.h>
 
 char   msgbuf[MSGBUFS];
 char   *msgbufp;
 
 char   msgbuf[MSGBUFS];
 char   *msgbufp;
@@ -26,8 +31,11 @@ char **argv;
 {
        int mem;
        register char *mp, *omp, *mstart;
 {
        int mem;
        register char *mp, *omp, *mstart;
+       int timeout();
        int samef;
 
        int samef;
 
+       signal(SIGALRM, timeout);
+       alarm(30);
        if (argc>1 && argv[1][0] == '-') {
                sflg++;
                argc--;
        if (argc>1 && argv[1][0] == '-') {
                sflg++;
                argc--;
@@ -38,10 +46,10 @@ char **argv;
        read(of, (char *)&omesg, sizeof(omesg));
        lseek(of, 0L, 0);
        sflg = 0;
        read(of, (char *)&omesg, sizeof(omesg));
        lseek(of, 0L, 0);
        sflg = 0;
-       nlist(argc>2? argv[2]:"/unix", nl);
+       nlist(argc>2? argv[2]:"/vmunix", nl);
        if (nl[0].n_type==0)
                done("No namelist\n");
        if (nl[0].n_type==0)
                done("No namelist\n");
-       if ((mem = open((argc>1? argv[1]: "/dev/mem"), 0)) < 0)
+       if ((mem = open((argc>1? argv[1]: "/dev/kmem"), 0)) < 0)
                done("No mem\n");
        lseek(mem, (long)nl[0].n_value, 0);
        read(mem, msgbuf, MSGBUFS);
                done("No mem\n");
        lseek(mem, (long)nl[0].n_value, 0);
        read(mem, msgbuf, MSGBUFS);
@@ -111,3 +119,8 @@ pdate()
                printf("\n%.12s\n", ctime(&tbuf)+4);
        }
 }
                printf("\n%.12s\n", ctime(&tbuf)+4);
        }
 }
+
+timeout()
+{
+       done("Buffer file screwed up\n");
+}