diff options
Diffstat (limited to 'dmesg.c')
-rw-r--r-- | dmesg.c | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/dmesg.c b/dmesg.c deleted file mode 100644 index 73de6d1ae..000000000 --- a/dmesg.c +++ /dev/null | |||
@@ -1,95 +0,0 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* dmesg.c -- Print out the contents of the kernel ring buffer | ||
3 | * Created: Sat Oct 9 16:19:47 1993 | ||
4 | * Revised: Thu Oct 28 21:52:17 1993 by faith@cs.unc.edu | ||
5 | * Copyright 1993 Theodore Ts'o (tytso@athena.mit.edu) | ||
6 | * This program comes with ABSOLUTELY NO WARRANTY. | ||
7 | * Modifications by Rick Sladkey (jrs@world.std.com) | ||
8 | * Larger buffersize 3 June 1998 by Nicolai Langfeldt, based on a patch | ||
9 | * by Peeter Joot. This was also suggested by John Hudson. | ||
10 | * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org> | ||
11 | * - added Native Language Support | ||
12 | * | ||
13 | * from util-linux -- adapted for busybox by | ||
14 | * Erik Andersen <andersee@debian.org>. I ripped out Native Language | ||
15 | * Support, replaced getopt, added some gotos for redundant stuff. | ||
16 | */ | ||
17 | |||
18 | #include <stdio.h> | ||
19 | #include <stdlib.h> | ||
20 | #include <getopt.h> | ||
21 | |||
22 | #if __GNU_LIBRARY__ < 5 | ||
23 | # ifdef __alpha__ | ||
24 | # define klogctl syslog | ||
25 | # endif | ||
26 | #else | ||
27 | # include <sys/klog.h> | ||
28 | #endif | ||
29 | |||
30 | #include "busybox.h" | ||
31 | |||
32 | int dmesg_main(int argc, char **argv) | ||
33 | { | ||
34 | char *buf; | ||
35 | int c; | ||
36 | int bufsize = 8196; | ||
37 | int i; | ||
38 | int n; | ||
39 | int level = 0; | ||
40 | int lastc; | ||
41 | int cmd = 3; | ||
42 | |||
43 | while ((c = getopt(argc, argv, "cn:s:")) != EOF) { | ||
44 | switch (c) { | ||
45 | case 'c': | ||
46 | cmd = 4; | ||
47 | break; | ||
48 | case 'n': | ||
49 | cmd = 8; | ||
50 | if (optarg == NULL) | ||
51 | show_usage(); | ||
52 | level = atoi(optarg); | ||
53 | break; | ||
54 | case 's': | ||
55 | if (optarg == NULL) | ||
56 | show_usage(); | ||
57 | bufsize = atoi(optarg); | ||
58 | break; | ||
59 | default: | ||
60 | show_usage(); | ||
61 | } | ||
62 | } | ||
63 | |||
64 | if (optind < argc) { | ||
65 | show_usage(); | ||
66 | } | ||
67 | |||
68 | if (cmd == 8) { | ||
69 | if (klogctl(cmd, NULL, level) < 0) | ||
70 | perror_msg_and_die("klogctl"); | ||
71 | return EXIT_SUCCESS; | ||
72 | } | ||
73 | |||
74 | if (bufsize < 4096) | ||
75 | bufsize = 4096; | ||
76 | buf = (char *) xmalloc(bufsize); | ||
77 | if ((n = klogctl(cmd, buf, bufsize)) < 0) | ||
78 | perror_msg_and_die("klogctl"); | ||
79 | |||
80 | lastc = '\n'; | ||
81 | for (i = 0; i < n; i++) { | ||
82 | if (lastc == '\n' && buf[i] == '<') { | ||
83 | i++; | ||
84 | while (buf[i] >= '0' && buf[i] <= '9') | ||
85 | i++; | ||
86 | if (buf[i] == '>') | ||
87 | i++; | ||
88 | } | ||
89 | lastc = buf[i]; | ||
90 | putchar(lastc); | ||
91 | } | ||
92 | if (lastc != '\n') | ||
93 | putchar('\n'); | ||
94 | return EXIT_SUCCESS; | ||
95 | } | ||