[PATCH v5.2 01/12] termios: make __tcsetattr() the internal interface

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



On 27/05/25 19:08, H. Peter Anvin wrote:
> There is a prototype for an internal __tcsetattr() function in
> include/termios.h, but tcsetattr without __ were still declared as the
> actual functions.
> 
> Make this match the comment and make __tcsetattr() an internal
> interface. This will be required to version struct termios for Linux on
> MIPS and SPARC.
> 
> Signed-off-by: H. Peter Anvin <hpa@zytor.com>

LGTM, thanks.

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

> ---
>  include/termios.h                   | 2 +-
>  login/openpty.c                     | 2 +-
>  misc/getpass.c                      | 4 ++--
>  sysdeps/unix/bsd/tcsetattr.c        | 6 ++++--
>  sysdeps/unix/sysv/linux/tcsetattr.c | 2 +-
>  termios/tcsetattr.c                 | 5 +++--
>  6 files changed, 12 insertions(+), 9 deletions(-)
> 
> diff --git a/include/termios.h b/include/termios.h
> index e2c35ebbae09..a79da7a1f379 100644
> --- a/include/termios.h
> +++ b/include/termios.h
> @@ -10,7 +10,7 @@ extern int __tcsetattr (int __fd, int __optional_actions,
>  extern int __libc_tcdrain (int __fd);
>  
>  libc_hidden_proto (__tcgetattr)
> -libc_hidden_proto (tcsetattr)
> +libc_hidden_proto (__tcsetattr)
>  libc_hidden_proto (cfsetispeed)
>  libc_hidden_proto (cfsetospeed)
>  
> diff --git a/login/openpty.c b/login/openpty.c
> index fc45add3df44..f7fd6b7384e6 100644
> --- a/login/openpty.c
> +++ b/login/openpty.c
> @@ -124,7 +124,7 @@ __openpty (int *pptmx, int *pterminal, char *name,
>  
>    /* XXX Should we ignore errors here?  */
>    if (termp)
> -    tcsetattr (terminal, TCSAFLUSH, termp);
> +    __tcsetattr (terminal, TCSAFLUSH, termp);
>  #ifdef TIOCSWINSZ
>    if (winp)
>      __ioctl (terminal, TIOCSWINSZ, winp);
> diff --git a/misc/getpass.c b/misc/getpass.c
> index 4fe94537b926..a68acf483a20 100644
> --- a/misc/getpass.c
> +++ b/misc/getpass.c
> @@ -83,7 +83,7 @@ getpass (const char *prompt)
>        s = t;
>        /* Tricky, tricky. */
>        t.c_lflag &= ~(ECHO|ISIG);
> -      tty_changed = (tcsetattr (fileno (in), TCSAFLUSH|TCSASOFT, &t) == 0);
> +      tty_changed = (__tcsetattr (fileno (in), TCSAFLUSH|TCSASOFT, &t) == 0);
>      }
>    else
>      tty_changed = 0;
> @@ -110,7 +110,7 @@ getpass (const char *prompt)
>  
>    /* Restore the original setting.  */
>    if (tty_changed)
> -    (void) tcsetattr (fileno (in), TCSAFLUSH|TCSASOFT, &s);
> +    (void) __tcsetattr (fileno (in), TCSAFLUSH|TCSASOFT, &s);
>  
>    funlockfile (out);
>  
> diff --git a/sysdeps/unix/bsd/tcsetattr.c b/sysdeps/unix/bsd/tcsetattr.c
> index 38b5f71da27e..8693d943e7fe 100644
> --- a/sysdeps/unix/bsd/tcsetattr.c
> +++ b/sysdeps/unix/bsd/tcsetattr.c
> @@ -32,7 +32,7 @@
>  
>  /* Set the state of FD to *TERMIOS_P.  */
>  int
> -tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
> +__tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
>  {
>    struct termios myt;
>  
> @@ -56,4 +56,6 @@ tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
>        return __ioctl (fd, TIOCSETAF, termios_p);
>      }
>  }
> -libc_hidden_def (tcsetattr)
> +
> +libc_hidden_def (__tcsetattr)
> +weak_alias (__tcsetattr, tcsetattr)
> diff --git a/sysdeps/unix/sysv/linux/tcsetattr.c b/sysdeps/unix/sysv/linux/tcsetattr.c
> index 5a13ad879047..49d9d245a067 100644
> --- a/sysdeps/unix/sysv/linux/tcsetattr.c
> +++ b/sysdeps/unix/sysv/linux/tcsetattr.c
> @@ -77,5 +77,5 @@ __tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
>  
>    return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios);
>  }
> +libc_hidden_def (__tcsetattr)
>  weak_alias (__tcsetattr, tcsetattr)
> -libc_hidden_def (tcsetattr)
> diff --git a/termios/tcsetattr.c b/termios/tcsetattr.c
> index 30bc6d64b95d..f0756be9fec3 100644
> --- a/termios/tcsetattr.c
> +++ b/termios/tcsetattr.c
> @@ -23,7 +23,7 @@ static int bad_speed (speed_t speed);
>  
>  /* Set the state of FD to *TERMIOS_P.  */
>  int
> -tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
> +__tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
>  {
>    if (fd < 0)
>      {
> @@ -57,7 +57,8 @@ tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
>    __set_errno (ENOSYS);
>    return -1;
>  }
> -libc_hidden_def (tcsetattr)
> +libc_hidden_def (__tcsetattr)
> +weak_alias (__tcsetattr, tcsetattr)
>  
>  /* Strychnine checking.  */
>  static int



More information about the Libc-alpha mailing list