mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-24 17:51:17 +03:00
termios: Consolidate struct termios
This patch consolidates the struct termios definition on its own header
and adds arch-defined ones for ABIs that deviate from generic
implementation. They are:
- alpha which has a slight different layout than generic one (c_cc
field is defined prior c_line).
- sparc and mips which do not have the c_ispeed/c_ospeed fields.
No semantic change is expected, checked on a build against x86_64-linux-gnu,
alpha-linux-gnu, mips64-linux-gnu, and sparc64-linux-gnu.
* sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h: New file.
* sysdeps/unix/sysv/linux/bits/termios-struct.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/termios-struct.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/termios-struct.h: Likewise.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
termios-struct.h.
* sysdeps/unix/sysv/linux/bits/termios.h (struct termios): Move to
termios-struct.h.
* sysdeps/unix/sysv/linux/alpha/bits/termios.h (struct termios):
Likewise.
* sysdeps/unix/sysv/linux/mips/bits/termios.h (struct termios):
Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/termios.h (struct termios):
Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/termios.h (struct termios):
Likewise.
* sysdeps/unix/sysv/linux/kernel_termios.h (_HAVE_C_ISPEED,
_HAVE_C_OSPEED): Define.
* sysdeps/unix/sysv/linux/mips/kernel_termios.h (_HAVE_C_ISPEED,
_HAVE_C_OSPEED): Likewise.
* sysdeps/unix/sysv/linux/sparc/kernel_termios.h (_HAVE_C_ISPEED,
_HAVE_C_OSPEED): Likewise.
* sysdeps/unix/sysv/linux/speed.c [_HAVE_STRUCT_TERMIOS_C_OSPEED]
(cfsetospeed): Check for define value instead of existence.
[_HAVE_STRUCT_TERMIOS_C_ISPEED] (cfsetispeed): Likewise.
* sysdeps/unix/sysv/linux/tcgetattr.c [_HAVE_STRUCT_TERMIOS_C_ISPEED
&& _HAVE_C_ISPEED] (__tcgetattr): Likewise.
* sysdeps/unix/sysv/linux/tcsetattr.c [_HAVE_STRUCT_TERMIOS_C_ISPEED
&& _HAVE_C_ISPEED] (__tcsetattr): Likewise.
This commit is contained in:
@@ -44,15 +44,15 @@ __tcgetattr (int fd, struct termios *termios_p)
|
||||
termios_p->c_cflag = k_termios.c_cflag;
|
||||
termios_p->c_lflag = k_termios.c_lflag;
|
||||
termios_p->c_line = k_termios.c_line;
|
||||
#ifdef _HAVE_STRUCT_TERMIOS_C_ISPEED
|
||||
# ifdef _HAVE_C_ISPEED
|
||||
#if _HAVE_STRUCT_TERMIOS_C_ISPEED
|
||||
# if _HAVE_C_ISPEED
|
||||
termios_p->c_ispeed = k_termios.c_ispeed;
|
||||
# else
|
||||
termios_p->c_ispeed = k_termios.c_cflag & (CBAUD | CBAUDEX);
|
||||
# endif
|
||||
#endif
|
||||
#ifdef _HAVE_STRUCT_TERMIOS_C_OSPEED
|
||||
# ifdef _HAVE_C_OSPEED
|
||||
#if _HAVE_STRUCT_TERMIOS_C_OSPEED
|
||||
# if _HAVE_C_OSPEED
|
||||
termios_p->c_ospeed = k_termios.c_ospeed;
|
||||
# else
|
||||
termios_p->c_ospeed = k_termios.c_cflag & (CBAUD | CBAUDEX);
|
||||
|
||||
Reference in New Issue
Block a user