[git commit master 1/1] cttyhack: serial console detection is Linux-specific

Denys Vlasenko vda.linux at googlemail.com
Fri Jul 30 15:40:37 UTC 2010


commit: http://git.busybox.net/busybox/commit/?id=430ba79c39eeed4725c36e9c2ad61c438c8a5d3e
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Jeremie Koenig <jk at jk.fr.eu.org>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 shell/cttyhack.c |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/shell/cttyhack.c b/shell/cttyhack.c
index a80d49d..3a78bae 100644
--- a/shell/cttyhack.c
+++ b/shell/cttyhack.c
@@ -13,7 +13,6 @@
 //config:config CTTYHACK
 //config:	bool "cttyhack"
 //config:	default y
-//config:	depends on PLATFORM_LINUX
 //config:	help
 //config:	  One common problem reported on the mailing list is "can't access tty;
 //config:	  job control turned off" error message which typically appears when
@@ -59,6 +58,10 @@
 //usage:     "\nStarting interactive shell from boot shell script:"
 //usage:     "\n	setsid cttyhack sh"
 
+#if !defined(__linux__) && !defined(TIOCGSERIAL)
+# warning cttyhack will not be able to detect a controlling tty on this system
+#endif
+
 /* From <linux/vt.h> */
 struct vt_stat {
 	unsigned short v_active;        /* active vt */
@@ -112,13 +115,19 @@ int cttyhack_main(int argc UNUSED_PARAM, char **argv)
 		close(fd);
 	} else {
 		/* We don't have ctty (or don't have "/dev/tty" node...) */
-		if (ioctl(0, TIOCGSERIAL, &u.sr) == 0) {
+		if (0) {}
+#ifdef TIOCGSERIAL
+		else if (ioctl(0, TIOCGSERIAL, &u.sr) == 0) {
 			/* this is a serial console */
 			sprintf(console + 8, "S%d", u.sr.line);
-		} else if (ioctl(0, VT_GETSTATE, &u.vt) == 0) {
+		}
+#endif
+#ifdef __linux__
+		else if (ioctl(0, VT_GETSTATE, &u.vt) == 0) {
 			/* this is linux virtual tty */
 			sprintf(console + 8, "S%d" + 1, u.vt.v_active);
 		}
+#endif
 		if (console[8]) {
 			fd = xopen(console, O_RDWR);
 			//bb_error_msg("switching to '%s'", console);
-- 
1.7.1



More information about the busybox-cvs mailing list