[RFC PATCH v2 1/8] termios: make __tcsetattr() the internal interface
H. Peter Anvin
hpa@zytor.com
Sat Apr 26 02:55:31 GMT 2025
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>
---
include/termios.h | 2 +-
login/openpty.c | 2 +-
sysdeps/unix/bsd/tcsetattr.c | 6 ++++--
sysdeps/unix/sysv/linux/tcsetattr.c | 2 +-
termios/tcsetattr.c | 5 +++--
5 files changed, 10 insertions(+), 7 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/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
--
2.49.0
More information about the Libc-alpha
mailing list