2025-01-01 18:14:45 +00:00
|
|
|
/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
|
1997-01-06 22:07:28 +00:00
|
|
|
This file is part of the GNU C Library.
|
1995-02-18 01:27:10 +00:00
|
|
|
|
1997-01-06 22:07:28 +00:00
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
2001-07-06 04:58:11 +00:00
|
|
|
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.
|
1995-02-18 01:27:10 +00:00
|
|
|
|
1997-01-06 22:07:28 +00:00
|
|
|
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
|
2001-07-06 04:58:11 +00:00
|
|
|
Lesser General Public License for more details.
|
1995-02-18 01:27:10 +00:00
|
|
|
|
2001-07-06 04:58:11 +00:00
|
|
|
You should have received a copy of the GNU Lesser General Public
|
2012-02-09 23:18:22 +00:00
|
|
|
License along with the GNU C Library; if not, see
|
Prefer https to http for gnu.org and fsf.org URLs
Also, change sources.redhat.com to sourceware.org.
This patch was automatically generated by running the following shell
script, which uses GNU sed, and which avoids modifying files imported
from upstream:
sed -ri '
s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g
s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g
' \
$(find $(git ls-files) -prune -type f \
! -name '*.po' \
! -name 'ChangeLog*' \
! -path COPYING ! -path COPYING.LIB \
! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \
! -path manual/texinfo.tex ! -path scripts/config.guess \
! -path scripts/config.sub ! -path scripts/install-sh \
! -path scripts/mkinstalldirs ! -path scripts/move-if-change \
! -path INSTALL ! -path locale/programs/charmap-kw.h \
! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \
! '(' -name configure \
-execdir test -f configure.ac -o -f configure.in ';' ')' \
! '(' -name preconfigure \
-execdir test -f preconfigure.ac ';' ')' \
-print)
and then by running 'make dist-prepare' to regenerate files built
from the altered files, and then executing the following to cleanup:
chmod a+x sysdeps/unix/sysv/linux/riscv/configure
# Omit irrelevant whitespace and comment-only changes,
# perhaps from a slightly-different Autoconf version.
git checkout -f \
sysdeps/csky/configure \
sysdeps/hppa/configure \
sysdeps/riscv/configure \
sysdeps/unix/sysv/linux/csky/configure
# Omit changes that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines
git checkout -f \
sysdeps/powerpc/powerpc64/ppc-mcount.S \
sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
# Omit change that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline
git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-09-07 05:40:42 +00:00
|
|
|
<https://www.gnu.org/licenses/>. */
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
|
|
|
#include <termios.h>
|
|
|
|
|
#include <errno.h>
|
|
|
|
|
#include <stddef.h>
|
|
|
|
|
|
|
|
|
|
/* Set both the input and output baud rates stored in *TERMIOS_P to SPEED. */
|
1997-09-05 01:43:20 +00:00
|
|
|
int
|
termios: add new baud_t interface, defined to be explicitly numeric
Add an explicitly numeric interface for baudrate setting. For glibc,
this only announces what is a fair accompli, but this is a plausible
way forward for standardization, and may be possible to infill on
non-compliant systems. The POSIX committee has stated:
[https://www.austingroupbugs.net/view.php?id=1916#c7135]
A future version of this standard is expected to add at least
the following symbolic constants for use as values of objects
of type speed_t: B57600, B115200, B230400, B460800, and
B921600.
Implementations are encouraged to propose additional
interfaces which will make it possible to set and query a
wider range of speeds than just those enumerated by the
constants beginning with B. If a set of common interfaces
emerges between several implementations, a future version of
this standard will likely add those interfaces.
This is exactly that interface.
The use of the term "baud" is due to the need to have a term
contrasting "speed", and it is already well established as a legacy
term -- including in the names of the legacy Bxxx
constants. Futhermore, it *is* valid from the point of view that the
termios interface fundamentally emulates an RS-232 serial port as far
as the application software is concerned.
The documentation states that for the current version of glibc,
speed_t == baud_t, but explicitly declares that this may not be the
case in the future.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2025-06-12 01:35:42 +00:00
|
|
|
__cfsetspeed (struct termios *termios_p, speed_t speed)
|
1995-02-18 01:27:10 +00:00
|
|
|
{
|
2025-06-12 01:35:38 +00:00
|
|
|
int rv;
|
update from main archvie 961013
Sun Oct 13 22:52:56 1996 Ulrich Drepper <drepper@cygnus.com>
* shlib-versions: Add version number/name for ld.so.
* Makeconfig: Move definition of rtld-installed-name after
inclusion of soversions.mk.
Don't add . before version number from shlib-versions file when
when name does not start with digit. This is needed for ld.so.
Sat Oct 12 20:31:58 1996 Richard Henderson <rth@tamu.edu>
* libio/iogets.c: Warn when gets used.
* stdio/gets.c: Strengthen the warning.
Sat Oct 12 23:10:43 1996 Ulrich Drepper <drepper@cygnus.com>
* libio/Makefile [_LIBC_REENTRANT] (routines): Add peekc.
* libio/libio.h: Add prototypes for _IO_getc, _IO_putc, _IO_feof,
_IO_ferror, _IO_peekc_locked, and _IO_ftrylockfile.
Remove prototypes for _IO_getc_locked and _IO_putc_locked.
[_IO_MTSAFE_IO]: Add weak aliases for _IO_flockfile and
_IO_funlockfile.
[! _IO_MTSAFE_IO]: Define _IO_ftrylockfile as empty.
Define _IO_getc, _IO_peekc, _IO_putc, _IO_feof, _IO_ferror to
appropriate values according to __USE_REENTRANT.
* libio/stdio.h: Add prototype for ftrylockfile.
[!_LIBC]: Define getc_locked, getchar_locked, putchar_locked,
getc, getchar, putc, and putchar using _IO_* names.
* libio/feof.c: Rename to _IO_feof and make feof weak alias.
* libio/ferror.c: Rename to _IO_ferror and make ferror weak alias.
* libio/getc.c: Rename to _IO_getc and make getc weak alias.
* libio/putc.c: Rename to _IO_putc and make putc weak alias.
* libio/putc_u.c: Don't define alias _IO_putc_unlocked.
* libio/peekc.c: New file.
* stdio-common/vfprintf.c (vfprintf): Unconditionally call
__flockfile.
* sysdeps/stub/locfile.c [USE_IN_LIBIO]: Also define _IO_* names.
* crypt/Makefile (tests): Add md5test and md5c-test.
* crypt/md5-crypt.c: Correct various error. Now md5_process_bytes
is called, the buffer limit is honoured and a loop in a inner
loop is corrected.
* crypt/md5.h (struct md5_ctx): Add new fields.
Add prototypes for new functions.
* crypt/md5.c (md5_init_ctx): Initialize new fields.
(md5_finish_ctx): New function. Like md5_read_ctx but before
perform correct finalization.
(md5_process_bytes): New function. Similar to md5_proces_block,
but does not require input size to be multiple of 64.
(md5_stream): Rewrite using md5_process_bytes and md5_finish_ctx.
(md5_buffer): Likewise.
(md5_process_block): Count number of bytes.
* crypt/md5test.c: New file. Test program for MD5 functions.
* crypt/md5c-test.c: New file: Test program for MD5 crypt
function.
* po/fr.po: Update.
* time/strptime.c: Recognize %s, %u, %g, and %G format.
* posix/getopt.c: Add some more casts and initializations to
prevent warnings.
Sat Oct 12 16:15:29 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/speed.c (speeds): Removed. We provide
an extra function to provide this functionality.
(cfgetospeed): Simply return masked value.
(cfsetospeed): Don't use speeds array and so we can simply test
the value of SPEED for illegal values.
* termios/cfsetspeed.c: Rewrite. We convert here between the
real values and the B* constants.
Changes suggested by Uwe Ohse <uwe@tirka.gun.de>.
Fri Oct 11 21:45:34 1996 Andreas Jaeger <aj@arthur.pfalz.de>
* locale/programs/xstrdup.c: Define prototypes.
* locale/programs/xmalloc.c: Likewise.
* stdio-common/xbug.c (main): Change definition to avoid warning.
Fri Oct 11 23:36:31 1996 Miles Bader <miles@gnu.ai.mit.edu>
* db/hash/hash.c (__hash_open): Correctly test for a read-write db.
1996-10-13 21:35:39 +00:00
|
|
|
|
termios: add new baud_t interface, defined to be explicitly numeric
Add an explicitly numeric interface for baudrate setting. For glibc,
this only announces what is a fair accompli, but this is a plausible
way forward for standardization, and may be possible to infill on
non-compliant systems. The POSIX committee has stated:
[https://www.austingroupbugs.net/view.php?id=1916#c7135]
A future version of this standard is expected to add at least
the following symbolic constants for use as values of objects
of type speed_t: B57600, B115200, B230400, B460800, and
B921600.
Implementations are encouraged to propose additional
interfaces which will make it possible to set and query a
wider range of speeds than just those enumerated by the
constants beginning with B. If a set of common interfaces
emerges between several implementations, a future version of
this standard will likely add those interfaces.
This is exactly that interface.
The use of the term "baud" is due to the need to have a term
contrasting "speed", and it is already well established as a legacy
term -- including in the names of the legacy Bxxx
constants. Futhermore, it *is* valid from the point of view that the
termios interface fundamentally emulates an RS-232 serial port as far
as the application software is concerned.
The documentation states that for the current version of glibc,
speed_t == baud_t, but explicitly declares that this may not be the
case in the future.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2025-06-12 01:35:42 +00:00
|
|
|
rv = __cfsetospeed (termios_p, speed);
|
2025-06-12 01:35:38 +00:00
|
|
|
if (rv)
|
|
|
|
|
return rv;
|
1997-09-05 01:43:20 +00:00
|
|
|
|
termios: add new baud_t interface, defined to be explicitly numeric
Add an explicitly numeric interface for baudrate setting. For glibc,
this only announces what is a fair accompli, but this is a plausible
way forward for standardization, and may be possible to infill on
non-compliant systems. The POSIX committee has stated:
[https://www.austingroupbugs.net/view.php?id=1916#c7135]
A future version of this standard is expected to add at least
the following symbolic constants for use as values of objects
of type speed_t: B57600, B115200, B230400, B460800, and
B921600.
Implementations are encouraged to propose additional
interfaces which will make it possible to set and query a
wider range of speeds than just those enumerated by the
constants beginning with B. If a set of common interfaces
emerges between several implementations, a future version of
this standard will likely add those interfaces.
This is exactly that interface.
The use of the term "baud" is due to the need to have a term
contrasting "speed", and it is already well established as a legacy
term -- including in the names of the legacy Bxxx
constants. Futhermore, it *is* valid from the point of view that the
termios interface fundamentally emulates an RS-232 serial port as far
as the application software is concerned.
The documentation states that for the current version of glibc,
speed_t == baud_t, but explicitly declares that this may not be the
case in the future.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2025-06-12 01:35:42 +00:00
|
|
|
return __cfsetispeed (termios_p, speed);
|
1995-02-18 01:27:10 +00:00
|
|
|
}
|
termios: add new baud_t interface, defined to be explicitly numeric
Add an explicitly numeric interface for baudrate setting. For glibc,
this only announces what is a fair accompli, but this is a plausible
way forward for standardization, and may be possible to infill on
non-compliant systems. The POSIX committee has stated:
[https://www.austingroupbugs.net/view.php?id=1916#c7135]
A future version of this standard is expected to add at least
the following symbolic constants for use as values of objects
of type speed_t: B57600, B115200, B230400, B460800, and
B921600.
Implementations are encouraged to propose additional
interfaces which will make it possible to set and query a
wider range of speeds than just those enumerated by the
constants beginning with B. If a set of common interfaces
emerges between several implementations, a future version of
this standard will likely add those interfaces.
This is exactly that interface.
The use of the term "baud" is due to the need to have a term
contrasting "speed", and it is already well established as a legacy
term -- including in the names of the legacy Bxxx
constants. Futhermore, it *is* valid from the point of view that the
termios interface fundamentally emulates an RS-232 serial port as far
as the application software is concerned.
The documentation states that for the current version of glibc,
speed_t == baud_t, but explicitly declares that this may not be the
case in the future.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2025-06-12 01:35:42 +00:00
|
|
|
libc_hidden_def (__cfsetspeed)
|
|
|
|
|
weak_alias (__cfsetspeed, cfsetspeed)
|