aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2025-07-12 22:19:43 -0700
committerAndreas K. Hüttel <dilfridge@gentoo.org>2025-07-20 17:17:41 +0200
commit12126f86f2526da325cd17a6463ec4c0c3db981e (patch)
treec42b8fd56f6b5517eca9510cd50d995b875f8424
parent0332959dd27e8be7e488862211327eab3531e520 (diff)
downloadglibc-12126f86f2526da325cd17a6463ec4c0c3db981e.zip
glibc-12126f86f2526da325cd17a6463ec4c0c3db981e.tar.gz
glibc-12126f86f2526da325cd17a6463ec4c0c3db981e.tar.bz2
termios: SPEED_MAX and BAUD_MAX constants
Add constants indicating the maximum values of speed_t and baud_t. Hopefully if and when the baud_t interface is standardized then BAUD_MAX will be included in the standardization from the start. Historically, the __MAX_BAUD symbol has indicated the maximum speed_t value on at least some platforms (including glibc). However, this name would be problematic for future standardization, because it confusingly implies a reference to baud_t, not speed_t, and it is inconsistent with other limit symbols, which are all of the form *_MAX (e.g. SIZE_MAX for size_t.) [ v3: dropped leading underscores, leave __MAX_BAUD outside #ifdef __USE_MISC since it is a legacy symbol, and namespace-protected with a double underscore. (Collin Funk, Adhermerval Zanella Netto) ] [ v4: moved from __USE_MISC to __USE_GNU (Collin Funk) ] Signed-off-by: "H. Peter Anvin" (Intel) <hpa@zytor.com> Reviewed-by: Collin Funk <collin.funk1@gmail.com>
-rw-r--r--bits/termios-baud.h5
-rw-r--r--termios/termios.h1
2 files changed, 5 insertions, 1 deletions
diff --git a/bits/termios-baud.h b/bits/termios-baud.h
index bafde1a..697ad80 100644
--- a/bits/termios-baud.h
+++ b/bits/termios-baud.h
@@ -69,4 +69,7 @@
#define B5000000 5000000U
#define B10000000 10000000U
-#define __MAX_BAUD 4294967295U
+#ifdef __USE_GNU
+#define SPEED_MAX 4294967295U /* maximum valid speed_t value */
+#endif
+#define __MAX_BAUD 4294967295U /* legacy alias for SPEED_MAX */
diff --git a/termios/termios.h b/termios/termios.h
index 3347c88..91cbe87 100644
--- a/termios/termios.h
+++ b/termios/termios.h
@@ -64,6 +64,7 @@ extern int cfsetspeed (struct termios *__termios_p, speed_t __speed) __THROW;
#ifdef __USE_GNU
/* Interfaces that are explicitly numeric representations of baud rates */
typedef speed_t baud_t;
+#define BAUD_MAX SPEED_MAX
/* Return the output baud rate stored in *TERMIOS_P. */
extern baud_t cfgetobaud (const struct termios *__termios_p) __THROW;