1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-12-24 17:51:17 +03:00

Revert "Linux: Keep termios ioctl constants strictly internal"

This reverts commit 3d3572f590.

Reason for revert: TCGETS etc. work to some extent on at least
a subset of architectures, so there is no pressing need to force
applications off them.  Removal of the macros breaks building
the sanitizers, impacting both GCC and LLVM.

Reviewed-by: Sam James <sam@gentoo.org>
This commit is contained in:
Florian Weimer
2025-07-21 15:12:44 +02:00
parent c744519bad
commit 0f93d54cde
18 changed files with 260 additions and 116 deletions

View File

@@ -0,0 +1,36 @@
/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
#ifndef _SYS_IOCTL_H
# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
#endif
/* Use the definitions from the kernel header files. */
#include <asm/ioctls.h>
/* Oh well, this is necessary since the kernel data structure is
different from the user-level version. */
#undef TCGETS
#undef TCSETS
#undef TCSETSW
#undef TCSETSF
#define TCGETS _IOR ('T', 8, char[36])
#define TCSETS _IOW ('T', 9, char[36])
#define TCSETSW _IOW ('T', 10, char[36])
#define TCSETSF _IOW ('T', 11, char[36])
#include <linux/sockios.h>

View File

@@ -1,6 +1,6 @@
/* old_termios.h for SPARC.
/* Architectural parameters for Linux termios - SPARC version
Copyright (C) 2025 Free Software Foundation, Inc.
Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,15 +17,18 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
#define _TERMIOS2_NCCS 19
#define _HAVE_TERMIOS2_C_CC_BEFORE_C_LINE 0
#define _HAVE_STRUCT_OLD_TERMIOS 1
#define OLD_NCCS 17
typedef struct old_termios
struct old_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[OLD_NCCS]; /* control characters */
} old_termios_t;
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[OLD_NCCS]; /* control characters */
};