mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03: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>
This commit is contained in:
committed by
Adhemerval Zanella
parent
98aeca349a
commit
5f138519eb
@ -263,6 +263,7 @@ __cfgetospeed (const struct termios *termios_p)
|
||||
{
|
||||
return termios_p->c_ospeed;
|
||||
}
|
||||
libc_hidden_def (__cfgetospeed)
|
||||
versioned_symbol (libc, __cfgetospeed, cfgetospeed, GLIBC_2_42);
|
||||
|
||||
/* Return the input baud rate stored in *TERMIOS_P. */
|
||||
@ -271,6 +272,7 @@ __cfgetispeed (const struct termios *termios_p)
|
||||
{
|
||||
return termios_p->c_ispeed;
|
||||
}
|
||||
libc_hidden_def (__cfgetispeed)
|
||||
versioned_symbol (libc, __cfgetispeed, cfgetispeed, GLIBC_2_42);
|
||||
|
||||
/* Set the output baud rate stored in *TERMIOS_P to SPEED. */
|
||||
@ -285,6 +287,7 @@ __cfsetospeed (struct termios *termios_p, speed_t speed)
|
||||
|
||||
return 0;
|
||||
}
|
||||
libc_hidden_def (__cfsetospeed)
|
||||
versioned_symbol (libc, __cfsetospeed, cfsetospeed, GLIBC_2_42);
|
||||
|
||||
/* Set the input baud rate stored in *TERMIOS_P to SPEED. */
|
||||
@ -299,6 +302,7 @@ __cfsetispeed (struct termios *termios_p, speed_t speed)
|
||||
|
||||
return 0;
|
||||
}
|
||||
libc_hidden_def (__cfsetispeed)
|
||||
versioned_symbol (libc, __cfsetispeed, cfsetispeed, GLIBC_2_42);
|
||||
|
||||
#if _TERMIOS_OLD_COMPAT
|
||||
|
Reference in New Issue
Block a user