[PATCH 12/13] termios: unify the naming of the termios speed fields

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Thu Jun 5 11:58:34 GMT 2025



On 02/06/25 21:03, H. Peter Anvin wrote:
> From: "H. Peter Anvin" (Intel) <hpa@zytor.com>
> 
> 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>

LGTM, thanks.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> ---
>  bits/termios.h                                | 11 ++++++++++-
>  sysdeps/unix/sysv/linux/bits/termios-struct.h | 11 +++++++++--
>  2 files changed, 19 insertions(+), 3 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 4c501a54b058..0aba1a446e73 100644
> --- a/sysdeps/unix/sysv/linux/bits/termios-struct.h
> +++ b/sysdeps/unix/sysv/linux/bits/termios-struct.h
> @@ -29,8 +29,15 @@ struct termios
>      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 */
> +    /* Input and output baud rates.  */
> +    __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
>    };



More information about the Libc-alpha mailing list