aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlandley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-03-27 23:23:43 +0000
committerlandley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-03-27 23:23:43 +0000
commitecf4c1d755182cb7f93fc608bddc058a9dc7c074 (patch)
tree365577855e659e5c9e254cc93eb9073a43a518e9
parent03ae09853a23603be130492738f31b679553d948 (diff)
downloadbusybox-w32-ecf4c1d755182cb7f93fc608bddc058a9dc7c074.tar.gz
busybox-w32-ecf4c1d755182cb7f93fc608bddc058a9dc7c074.tar.bz2
busybox-w32-ecf4c1d755182cb7f93fc608bddc058a9dc7c074.zip
setlogcons, from Jan Kaszka.
git-svn-id: svn://busybox.net/trunk/busybox@14675 69ca8d6d-28ef-0310-b511-8ec308f3f277
-rw-r--r--console-tools/Config.in6
-rw-r--r--console-tools/Makefile.in1
-rw-r--r--console-tools/setlogcons.c34
-rw-r--r--include/applets.h1
-rw-r--r--include/usage.h5
5 files changed, 47 insertions, 0 deletions
diff --git a/console-tools/Config.in b/console-tools/Config.in
index bcc7c9b8d..34e83e194 100644
--- a/console-tools/Config.in
+++ b/console-tools/Config.in
@@ -72,4 +72,10 @@ config CONFIG_SETKEYCODES
72 This program loads entries into the kernel's scancode-to-keycode 72 This program loads entries into the kernel's scancode-to-keycode
73 map, allowing unusual keyboards to generate usable keycodes. 73 map, allowing unusual keyboards to generate usable keycodes.
74 74
75config CONFIG_SETLOGCONS
76 bool "setlogcons"
77 default n
78 help
79 This program redirects the output console of kernel messages.
80
75endmenu 81endmenu
diff --git a/console-tools/Makefile.in b/console-tools/Makefile.in
index f14e338e1..437bcd0ec 100644
--- a/console-tools/Makefile.in
+++ b/console-tools/Makefile.in
@@ -21,6 +21,7 @@ CONSOLETOOLS-$(CONFIG_LOADKMAP) += loadkmap.o
21CONSOLETOOLS-$(CONFIG_OPENVT) += openvt.o 21CONSOLETOOLS-$(CONFIG_OPENVT) += openvt.o
22CONSOLETOOLS-$(CONFIG_RESET) += reset.o 22CONSOLETOOLS-$(CONFIG_RESET) += reset.o
23CONSOLETOOLS-$(CONFIG_SETKEYCODES) += setkeycodes.o 23CONSOLETOOLS-$(CONFIG_SETKEYCODES) += setkeycodes.o
24CONSOLETOOLS-$(CONFIG_SETLOGCONS) += setlogcons.o
24 25
25ifneq ($(strip $(CONSOLETOOLS-y)),) 26ifneq ($(strip $(CONSOLETOOLS-y)),)
26libraries-y+=$(CONSOLETOOLS_DIR)$(CONSOLETOOLS_AR) 27libraries-y+=$(CONSOLETOOLS_DIR)$(CONSOLETOOLS_AR)
diff --git a/console-tools/setlogcons.c b/console-tools/setlogcons.c
new file mode 100644
index 000000000..1f0ac524e
--- /dev/null
+++ b/console-tools/setlogcons.c
@@ -0,0 +1,34 @@
1/*
2 * setlogcons: Send kernel messages to the current console or to console N
3 *
4 * Copyright (C) 2006 by Jan Kiszka <jan.kiszka@web.de>
5 *
6 * Based on setlogcons (kbd-1.12) by Andries E. Brouwer
7 *
8 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
9 */
10
11#include <stdio.h>
12#include <stdlib.h>
13#include <fcntl.h>
14#include <sys/ioctl.h>
15#include "busybox.h"
16
17extern int setlogcons_main(int argc, char **argv)
18{
19 struct {
20 char fn;
21 char subarg;
22 } arg;
23
24 arg.fn = 11; /* redirect kernel messages */
25 arg.subarg = 0; /* to specified console (current as default) */
26
27 if (argc == 2)
28 arg.subarg = atoi(argv[1]);
29
30 if (ioctl(bb_xopen("/dev/tty1", O_RDONLY), TIOCLINUX, &arg))
31 bb_perror_msg_and_die("TIOCLINUX");;
32
33 return 0;
34}
diff --git a/include/applets.h b/include/applets.h
index 95278d93e..0f239822c 100644
--- a/include/applets.h
+++ b/include/applets.h
@@ -235,6 +235,7 @@ USE_SEQ(APPLET(seq, seq_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
235USE_SETARCH(APPLET(setarch, setarch_main, _BB_DIR_BIN, _BB_SUID_NEVER)) 235USE_SETARCH(APPLET(setarch, setarch_main, _BB_DIR_BIN, _BB_SUID_NEVER))
236USE_SETCONSOLE(APPLET(setconsole, setconsole_main, _BB_DIR_SBIN, _BB_SUID_NEVER)) 236USE_SETCONSOLE(APPLET(setconsole, setconsole_main, _BB_DIR_SBIN, _BB_SUID_NEVER))
237USE_SETKEYCODES(APPLET(setkeycodes, setkeycodes_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) 237USE_SETKEYCODES(APPLET(setkeycodes, setkeycodes_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
238USE_SETLOGCONS(APPLET(setlogcons, setlogcons_main, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
238USE_SETSID(APPLET(setsid, setsid_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) 239USE_SETSID(APPLET(setsid, setsid_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
239USE_FEATURE_SH_IS_ASH(APPLET_NOUSAGE(sh, ash_main, _BB_DIR_BIN, _BB_SUID_NEVER)) 240USE_FEATURE_SH_IS_ASH(APPLET_NOUSAGE(sh, ash_main, _BB_DIR_BIN, _BB_SUID_NEVER))
240USE_FEATURE_SH_IS_HUSH(APPLET_NOUSAGE(sh, hush_main, _BB_DIR_BIN, _BB_SUID_NEVER)) 241USE_FEATURE_SH_IS_HUSH(APPLET_NOUSAGE(sh, hush_main, _BB_DIR_BIN, _BB_SUID_NEVER))
diff --git a/include/usage.h b/include/usage.h
index 660c9e702..21f305fe2 100644
--- a/include/usage.h
+++ b/include/usage.h
@@ -2648,6 +2648,11 @@
2648#define setkeycodes_example_usage \ 2648#define setkeycodes_example_usage \
2649 "$ setkeycodes e030 127\n" 2649 "$ setkeycodes e030 127\n"
2650 2650
2651#define setlogcons_trivial_usage \
2652 "N"
2653#define setlogcons_full_usage \
2654 "Redirects the kernel output to console N (0 for current)."
2655
2651#define setsid_trivial_usage \ 2656#define setsid_trivial_usage \
2652 "program [arg ...]" 2657 "program [arg ...]"
2653#define setsid_full_usage \ 2658#define setsid_full_usage \