From: "Dr. Werner Fink" <werner@suse.de>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Greg KH <greg@kroah.com>, linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: tty: add 'active' sysfs attribute to tty0 and console device
Date: Wed, 1 Dec 2010 13:32:22 +0100 [thread overview]
Message-ID: <20101201123222.GA15341@boole.suse.de> (raw)
In-Reply-To: <20101201112004.12d78cd7@lxorguk.ukuu.org.uk>
[-- Attachment #1: Type: text/plain, Size: 718 bytes --]
Just have dug out this one:
On Fri, Nov 19, 2010 at 06:07:36PM +0100, Werner Fink wrote:
> On Fri, Nov 19, 2010 at 03:47:05PM +0000, Alan Cox wrote:
> > > Currently the bootlogd(8) or blogd(8) parse the kernels command line
> > > and if available do an ioctl TIOCGDEV (not supported by the upstream
> > > kernel), then create a pty/tty pair, do an ioctl TIOCCONS to forward
> >
> > So perhaps the vendors using TIOCGDEV could get off their collective
> > backsides and submit it upstream ?
>
> That I've tried 10 years before. If you think it's worth to retry
> you may have a look on the attachment only for a short review
Werner
--
System V style init programs - http://savannah.nongnu.org/projects/sysvinit/
[-- Attachment #2: tiocgdev --]
[-- Type: text/x-patch, Size: 6093 bytes --]
>From 3ed084a05b7d28d65f6cc42c96696c7cb49c84a1 Mon Sep 17 00:00:00 2001
In-Reply-To: <20101119154705.7829487a@lxorguk.ukuu.org.uk>
References: <20101119154705.7829487a@lxorguk.ukuu.org.uk>
From: Werner Fink <werner@suse.de>
Date: Fri, 19 Nov 2010 17:54:44 +0100
Subject: [PATCH] Add tty ioctl to figure device node of the system console.
Signed-off-by: Werner Fink <werner@suse.de>
diff --git a/arch/alpha/include/asm/ioctls.h b/arch/alpha/include/asm/ioctls.h
index 59617c3..034b6cf 100644
--- a/arch/alpha/include/asm/ioctls.h
+++ b/arch/alpha/include/asm/ioctls.h
@@ -92,6 +92,7 @@
#define TIOCGSID 0x5429 /* Return the session ID of FD */
#define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
#define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
+#define TIOCGDEV _IOR('T',0x32, unsigned int) /* Get primary device node of /dev/console */
#define TIOCSIG _IOW('T',0x36, int) /* Generate signal on Pty slave */
#define TIOCSERCONFIG 0x5453
diff --git a/arch/mips/include/asm/ioctls.h b/arch/mips/include/asm/ioctls.h
index d87cb04..d967b89 100644
--- a/arch/mips/include/asm/ioctls.h
+++ b/arch/mips/include/asm/ioctls.h
@@ -83,6 +83,7 @@
#define TCSETSF2 _IOW('T', 0x2D, struct termios2)
#define TIOCGPTN _IOR('T', 0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
#define TIOCSPTLCK _IOW('T', 0x31, int) /* Lock/unlock Pty */
+#define TIOCGDEV _IOR('T', 0x32, unsigned int) /* Get primary device node of /dev/console */
#define TIOCSIG _IOW('T', 0x36, int) /* Generate signal on Pty slave */
/* I hope the range from 0x5480 on is free ... */
diff --git a/arch/parisc/include/asm/ioctls.h b/arch/parisc/include/asm/ioctls.h
index 4e06144..0a10575 100644
--- a/arch/parisc/include/asm/ioctls.h
+++ b/arch/parisc/include/asm/ioctls.h
@@ -52,6 +52,7 @@
#define TCSETSF2 _IOW('T',0x2D, struct termios2)
#define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
#define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
+#define TIOCGDEV _IOW('T',0x32, int) /* Get primary device node of /dev/console */
#define TIOCSIG _IOW('T',0x36, int) /* Generate signal on Pty slave */
#define FIONCLEX 0x5450 /* these numbers need to be adjusted. */
diff --git a/arch/powerpc/include/asm/ioctls.h b/arch/powerpc/include/asm/ioctls.h
index 8519200..c7dc17c 100644
--- a/arch/powerpc/include/asm/ioctls.h
+++ b/arch/powerpc/include/asm/ioctls.h
@@ -94,6 +94,7 @@
#define TIOCSRS485 0x542f
#define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
#define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
+#define TIOCGDEV _IOR('T',0x32, unsigned int) /* Get primary device node of /dev/console */
#define TIOCSIG _IOW('T',0x36, int) /* Generate signal on Pty slave */
#define TIOCSERCONFIG 0x5453
diff --git a/arch/sh/include/asm/ioctls.h b/arch/sh/include/asm/ioctls.h
index eb6c4c6..84e85a7 100644
--- a/arch/sh/include/asm/ioctls.h
+++ b/arch/sh/include/asm/ioctls.h
@@ -85,6 +85,7 @@
#define TCSETSF2 _IOW('T', 45, struct termios2)
#define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
#define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
+#define TIOCGDEV _IOR('T',0x32, unsigned int) /* Get primary device node of /dev/console */
#define TIOCSIG _IOW('T',0x36, int) /* Generate signal on Pty slave */
#define TIOCSERCONFIG _IO('T', 83) /* 0x5453 */
diff --git a/arch/sparc/include/asm/ioctls.h b/arch/sparc/include/asm/ioctls.h
index 53f4ee0..ed3807b 100644
--- a/arch/sparc/include/asm/ioctls.h
+++ b/arch/sparc/include/asm/ioctls.h
@@ -19,6 +19,7 @@
#define TCSETS2 _IOW('T', 13, struct termios2)
#define TCSETSW2 _IOW('T', 14, struct termios2)
#define TCSETSF2 _IOW('T', 15, struct termios2)
+#define TIOCGDEV _IOR('T',0x32, unsigned int) /* Get primary device node of /dev/console */
/* Note that all the ioctls that are not available in Linux have a
* double underscore on the front to: a) avoid some programs to
diff --git a/arch/xtensa/include/asm/ioctls.h b/arch/xtensa/include/asm/ioctls.h
index ab18000..ccf1800 100644
--- a/arch/xtensa/include/asm/ioctls.h
+++ b/arch/xtensa/include/asm/ioctls.h
@@ -98,6 +98,7 @@
#define TCSETSF2 _IOW('T', 45, struct termios2)
#define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
#define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
+#define TIOCGDEV _IOR('T',0x32, unsigned int) /* Get primary device node of /dev/console */
#define TIOCSIG _IOW('T',0x36, int) /* Generate signal on Pty slave */
#define TIOCSERCONFIG _IO('T', 83)
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index c05c5af..055e7e9 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -2618,6 +2618,12 @@ long tty_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
return put_user(tty->ldisc->ops->num, (int __user *)p);
case TIOCSETD:
return tiocsetd(tty, p);
+ case TIOCGDEV:
+ {
+ unsigned int ret = new_encode_dev(tty_devnum(real_tty));
+ return put_user(ret, (unsigned int __user *)p);
+ }
+
/*
* Break handling
*/
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
index 410ed18..a1a8f0c 100644
--- a/fs/compat_ioctl.c
+++ b/fs/compat_ioctl.c
@@ -837,6 +837,7 @@ COMPATIBLE_IOCTL(TCSETSW)
COMPATIBLE_IOCTL(TCSETSF)
COMPATIBLE_IOCTL(TIOCLINUX)
COMPATIBLE_IOCTL(TIOCSBRK)
+COMPATIBLE_IOCTL(TIOCGDEV)
COMPATIBLE_IOCTL(TIOCCBRK)
COMPATIBLE_IOCTL(TIOCGSID)
COMPATIBLE_IOCTL(TIOCGICOUNT)
diff --git a/include/asm-generic/ioctls.h b/include/asm-generic/ioctls.h
index a321665..3f3f2d1 100644
--- a/include/asm-generic/ioctls.h
+++ b/include/asm-generic/ioctls.h
@@ -67,6 +67,7 @@
#endif
#define TIOCGPTN _IOR('T', 0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
#define TIOCSPTLCK _IOW('T', 0x31, int) /* Lock/unlock Pty */
+#define TIOCGDEV _IOR('T', 0x32, unsigned int) /* Get primary device node of /dev/console */
#define TCGETX 0x5432 /* SYS5 TCGETX compatibility */
#define TCSETX 0x5433
#define TCSETXF 0x5434
--
1.6.0.2
next parent reply other threads:[~2010-12-01 12:32 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20101201112004.12d78cd7@lxorguk.ukuu.org.uk>
2010-12-01 12:32 ` Dr. Werner Fink [this message]
[not found] ` <tiocgdev1@mdm.bga.com>
2010-12-03 11:48 ` tty: add 'active' sysfs attribute to tty0 and console device Dr. Werner Fink
2010-11-16 15:46 Kay Sievers
2010-11-16 15:57 ` Alan Cox
2010-11-16 16:13 ` Kay Sievers
2010-11-16 17:14 ` Alan Cox
2010-11-16 18:51 ` Kay Sievers
2010-11-16 19:55 ` Alan Cox
2010-11-16 20:15 ` Kay Sievers
2010-11-16 20:49 ` Alan Cox
2010-11-16 21:29 ` Kay Sievers
2010-11-16 21:42 ` Lennart Poettering
2010-11-16 22:51 ` Alan Cox
2010-11-16 22:58 ` Lennart Poettering
2010-11-16 23:04 ` Alan Cox
2010-11-16 23:18 ` Lennart Poettering
2010-11-16 23:49 ` Etched Pixels
2010-11-16 21:36 ` Lennart Poettering
2010-11-16 22:56 ` Alan Cox
2010-11-16 23:10 ` Lennart Poettering
2010-11-16 23:45 ` Alan Cox
2010-11-17 16:31 ` John Stoffel
2010-11-17 22:01 ` Valdis.Kletnieks
2010-11-17 23:40 ` Kay Sievers
2010-11-17 23:56 ` Alan Cox
2010-11-18 1:27 ` Greg KH
2010-11-18 1:48 ` Lennart Poettering
2010-11-18 1:53 ` Greg KH
2010-11-18 2:29 ` Lennart Poettering
2010-11-18 11:00 ` Dr. Werner Fink
2010-11-18 11:23 ` Alan Cox
2010-11-18 12:12 ` Dr. Werner Fink
2010-11-18 12:58 ` Alan Cox
2010-11-18 13:14 ` Dr. Werner Fink
2010-11-18 14:41 ` Alan Cox
2010-11-19 13:21 ` Dr. Werner Fink
2010-11-19 15:47 ` Alan Cox
2010-11-19 17:07 ` Dr. Werner Fink
2010-11-19 18:02 ` Greg KH
2010-11-19 18:41 ` Dr. Werner Fink
2010-11-20 12:40 ` Alan Cox
2010-12-01 11:15 ` Dr. Werner Fink
2010-11-18 12:04 ` Kay Sievers
2010-11-18 10:15 ` Alan Cox
2010-11-18 11:55 ` Kay Sievers
2010-11-18 13:01 ` Alan Cox
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101201123222.GA15341@boole.suse.de \
--to=werner@suse.de \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox