https://bugs.winehq.org/show_bug.cgi?id=56643
Bug ID: 56643 Summary: Ntdll support for custom baud rates Product: Wine Version: unspecified Hardware: Other OS: other Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: testator@protonmail.ch
Implementing custom baud rates across different OS's would be non-trivial but a useful prerequisite for some obscure apps like qemu or the "mode" command.
Termios2 is a linux specific implementation of custom baud rates. In wine-9.8 there was a commit, 898ab8dab19d498c17859f39a55e317ee7e367a5 , that added termios2 usage via glibc headers which breaks compilation on musl based systems, doesn't work in osx, and doesn't work in *bsd.
In https://opensource.apple.com/source/IOSerialFamily/IOSerialFamily-55/IOSeria... there is a way to set custom baud rates for osx via IOSSIOSPEED e.g <IOKit/serial/ioss.h> . Setting the rate on linux via <linux/termios.h> instead of the glibc specific extensions of <termios.h> would work as well with how its currently implemented in wine-9.8. It looks like net/openbsd use termios1 modified to their own thing to allow setting arbitrary speeds via tcsetattr https://github.com/openbsd/src/blob/master/lib/libc/termios/tcsetattr.c e.g <termios.h> . In general there doesn't seem to be a common unix implementation for setting custom baud rates and looks like a huge complicated mess to implement. The musl devs found this out already it seems openwall.com/lists/musl/2024/04/11/8 .