提交 4eb6bf6b 编写于 作者: A Alan Cox 提交者: Linus Torvalds

lots-of-architectures: enable arbitary speed tty support

Add the termios2 structure ready for enabling on most platforms.  One or
two like Sparc are plain weird so have been left alone.  Most can use the
same structure as ktermios for termios2 (ie the newer ioctl uses the
structure matching the current kernel structure)
Signed-off-by: NAlan Cox <alan@redhat.com>
Cc: Bryan Wu <bryan.wu@analog.com>
Cc: Ian Molton <spyro@f2s.com>
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Mikael Starvik <starvik@axis.com>
Cc: David Howells <dhowells@redhat.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Matthew Wilcox <willy@debian.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
Cc: Richard Curnow <rc@rc0.org.uk>
Cc: Miles Bader <uclinux-v850@lsi.nec.co.jp>
Cc: Chris Zankel <chris@zankel.net>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 bcf67e16
...@@ -15,7 +15,7 @@ struct termios { ...@@ -15,7 +15,7 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct ktermios { struct termios2 {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */ tcflag_t c_cflag; /* control mode flags */
...@@ -26,6 +26,16 @@ struct ktermios { ...@@ -26,6 +26,16 @@ struct ktermios {
speed_t c_ospeed; /* output speed */ speed_t c_ospeed; /* output speed */
}; };
struct ktermios {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
/* c_cc characters */ /* c_cc characters */
#define VINTR 0 #define VINTR 0
......
...@@ -17,6 +17,17 @@ struct termios { ...@@ -17,6 +17,17 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
struct ktermios { struct ktermios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
......
...@@ -17,6 +17,17 @@ struct termios { ...@@ -17,6 +17,17 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
struct ktermios { struct ktermios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
......
...@@ -19,6 +19,17 @@ struct termios { ...@@ -19,6 +19,17 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
struct ktermios { struct ktermios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
......
...@@ -17,6 +17,17 @@ struct termios { ...@@ -17,6 +17,17 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
struct ktermios { struct ktermios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
......
...@@ -17,6 +17,17 @@ struct termios { ...@@ -17,6 +17,17 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
struct ktermios { struct ktermios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
......
...@@ -26,6 +26,17 @@ struct termios { ...@@ -26,6 +26,17 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
struct ktermios { struct ktermios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
......
...@@ -17,6 +17,17 @@ struct termios { ...@@ -17,6 +17,17 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
struct ktermios { struct ktermios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
......
...@@ -17,6 +17,17 @@ struct termios { ...@@ -17,6 +17,17 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
struct ktermios { struct ktermios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
......
...@@ -30,6 +30,17 @@ struct termios { ...@@ -30,6 +30,17 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
struct ktermios { struct ktermios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
......
...@@ -17,6 +17,17 @@ struct termios { ...@@ -17,6 +17,17 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
struct ktermios { struct ktermios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
......
...@@ -25,6 +25,17 @@ struct termios { ...@@ -25,6 +25,17 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
struct ktermios { struct ktermios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
......
...@@ -17,6 +17,17 @@ struct termios { ...@@ -17,6 +17,17 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
struct ktermios { struct ktermios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
......
...@@ -17,6 +17,17 @@ struct termios { ...@@ -17,6 +17,17 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
struct ktermios { struct ktermios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
......
...@@ -30,6 +30,17 @@ struct termios { ...@@ -30,6 +30,17 @@ struct termios {
cc_t c_cc[NCCS]; /* control characters */ cc_t c_cc[NCCS]; /* control characters */
}; };
struct termios2 {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
struct ktermios { struct ktermios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */ tcflag_t c_oflag; /* output mode flags */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册