[PATCH v5.2 11/12] termios: unify the naming of the termios speed fields

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Thu May 29 18:57:00 GMT 2025



On 27/05/25 19:08, H. Peter Anvin wrote:
> The generic code has __ispeed and __ospeed; Linux has c_ispeed and
> c_ospeed. Use an anonymous union member to allow both set of names on
> all platforms.
> 
> Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
> ---
>  bits/termios.h                                | 11 +++++++-
>  sysdeps/unix/sysv/linux/bits/termios-struct.h | 28 ++++++++++++-------
>  2 files changed, 28 insertions(+), 11 deletions(-)
> 
> diff --git a/bits/termios.h b/bits/termios.h
> index 8f0b817dbf4c..798012cb8ebc 100644
> --- a/bits/termios.h
> +++ b/bits/termios.h
> @@ -286,7 +286,16 @@ struct termios
>    cc_t c_cc[NCCS];
>  
>    /* Input and output baud rates.  */
> -  speed_t __ispeed, __ospeed;
> +  __extension__ union {
> +    speed_t __ispeed;
> +    speed_t c_ispeed;
> +  };
> +#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
> +  __extension__ union {
> +    speed_t __ospeed;
> +    speed_t c_ospeed;
> +  };
> +#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
>  };
>  
>  #define _IOT_termios /* Hurd ioctl type field.  */ \
> diff --git a/sysdeps/unix/sysv/linux/bits/termios-struct.h b/sysdeps/unix/sysv/linux/bits/termios-struct.h
> index d7167dfa20c8..3e33d81df047 100644
> --- a/sysdeps/unix/sysv/linux/bits/termios-struct.h
> +++ b/sysdeps/unix/sysv/linux/bits/termios-struct.h
> @@ -22,15 +22,23 @@
>  
>  #define NCCS 32
>  struct termios
> -  {
> -    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 */
> +{
> +  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 */

These indentation change seems unnecessary, maybe only add the 
__ispeed/c_ispeed change.


> +  cc_t c_line;			/* line discipline */
> +  cc_t c_cc[NCCS];		/* control characters */
> +
> +  /* Input and output baud rates.  */
> +  __extension__ union {
> +    speed_t __ispeed;
> +    speed_t c_ispeed;
> +  };
>  #define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
> -#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
> +  __extension__ union {
> +    speed_t __ospeed;
> +    speed_t c_ospeed;
>    };
> +#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
> +};



More information about the Libc-alpha mailing list