diff --git a/src/sys/termios.rs b/src/sys/termios.rs index 29ed513c35..e8df1ed95b 100644 --- a/src/sys/termios.rs +++ b/src/sys/termios.rs @@ -158,34 +158,45 @@ mod ffi { impl From for BaudRate { fn from(s: speed_t) -> BaudRate { + + use libc::{ + B0, B50, B75, B110, B134, B150, + B200, B300, B600, B1200, B1800, B2400, + B4800, B9600, B19200, B38400, + B7200, B14400, B28800, B57600, + B76800, B115200, B230400}; + + #[cfg(any(target_os = "netbsd", target_os = "freebsd"))] + use libc::{B460800, B921600}; + match s { - 0 => BaudRate::B0, - 50 => BaudRate::B50, - 75 => BaudRate::B75, - 110 => BaudRate::B110, - 134 => BaudRate::B134, - 150 => BaudRate::B150, - 200 => BaudRate::B200, - 300 => BaudRate::B300, - 600 => BaudRate::B600, - 1200 => BaudRate::B1200, - 1800 => BaudRate::B1800, - 2400 => BaudRate::B2400, - 4800 => BaudRate::B4800, - 9600 => BaudRate::B9600, - 19200 => BaudRate::B19200, - 38400 => BaudRate::B38400, - 7200 => BaudRate::B7200, - 14400 => BaudRate::B14400, - 28800 => BaudRate::B28800, - 57600 => BaudRate::B57600, - 76800 => BaudRate::B76800, - 115200 => BaudRate::B115200, - 230400 => BaudRate::B230400, + B0 => BaudRate::B0, + B50 => BaudRate::B50, + B75 => BaudRate::B75, + B110 => BaudRate::B110, + B134 => BaudRate::B134, + B150 => BaudRate::B150, + B200 => BaudRate::B200, + B300 => BaudRate::B300, + B600 => BaudRate::B600, + B1200 => BaudRate::B1200, + B1800 => BaudRate::B1800, + B2400 => BaudRate::B2400, + B4800 => BaudRate::B4800, + B9600 => BaudRate::B9600, + B19200 => BaudRate::B19200, + B38400 => BaudRate::B38400, + B7200 => BaudRate::B7200, + B14400 => BaudRate::B14400, + B28800 => BaudRate::B28800, + B57600 => BaudRate::B57600, + B76800 => BaudRate::B76800, + B115200 => BaudRate::B115200, + B230400 => BaudRate::B230400, #[cfg(any(target_os = "netbsd", target_os = "freebsd"))] - 460800 => BaudRate::B460800, + B460800 => BaudRate::B460800, #[cfg(any(target_os = "netbsd", target_os = "freebsd"))] - 921600 => BaudRate::B921600, + B921600 => BaudRate::B921600, b @ _ => unreachable!("Invalid baud constant: {}", b), } } @@ -365,7 +376,7 @@ mod ffi { B50, B75, B110, - B130, + B134, B150, B200, B300, @@ -377,7 +388,6 @@ mod ffi { B9600, B19200, B38400, - BOTHER, B57600, B115200, B230400, @@ -397,39 +407,48 @@ mod ffi { impl From for BaudRate { fn from(s: speed_t) -> BaudRate { + + use libc::{ + B0, B50, B75, B110, B134, B150, + B200, B300, B600, B1200, B1800, B2400, + B4800, B9600, B19200, B38400, B57600, + B115200, B230400, B460800, B500000, + B576000, B921600, B1000000, B1152000, + B1500000, B2000000, B2500000, B3000000, + B3500000, B4000000}; + match s { - 0o0 => BaudRate::B0, - 0o1 => BaudRate::B50, - 0o2 => BaudRate::B75, - 0o3 => BaudRate::B110, - 0o4 => BaudRate::B130, - 0o5 => BaudRate::B150, - 0o6 => BaudRate::B200, - 0o7 => BaudRate::B300, - 0o10 => BaudRate::B600, - 0o11 => BaudRate::B1200, - 0o12 => BaudRate::B1800, - 0o13 => BaudRate::B2400, - 0o14 => BaudRate::B4800, - 0o15 => BaudRate::B9600, - 0o16 => BaudRate::B19200, - 0o17 => BaudRate::B38400, - 0o10000 => BaudRate::BOTHER, - 0o10001 => BaudRate::B57600, - 0o10002 => BaudRate::B115200, - 0o10003 => BaudRate::B230400, - 0o10004 => BaudRate::B460800, - 0o10005 => BaudRate::B500000, - 0o10006 => BaudRate::B576000, - 0o10007 => BaudRate::B921600, - 0o10010 => BaudRate::B1000000, - 0o10011 => BaudRate::B1152000, - 0o10012 => BaudRate::B1500000, - 0o10013 => BaudRate::B2000000, - 0o10014 => BaudRate::B2500000, - 0o10015 => BaudRate::B3000000, - 0o10016 => BaudRate::B3500000, - 0o10017 => BaudRate::B4000000, + B0 => BaudRate::B0, + B50 => BaudRate::B50, + B75 => BaudRate::B75, + B110 => BaudRate::B110, + B134 => BaudRate::B134, + B150 => BaudRate::B150, + B200 => BaudRate::B200, + B300 => BaudRate::B300, + B600 => BaudRate::B600, + B1200 => BaudRate::B1200, + B1800 => BaudRate::B1800, + B2400 => BaudRate::B2400, + B4800 => BaudRate::B4800, + B9600 => BaudRate::B9600, + B19200 => BaudRate::B19200, + B38400 => BaudRate::B38400, + B57600 => BaudRate::B57600, + B115200 => BaudRate::B115200, + B230400 => BaudRate::B230400, + B460800 => BaudRate::B460800, + B500000 => BaudRate::B500000, + B576000 => BaudRate::B576000, + B921600 => BaudRate::B921600, + B1000000 => BaudRate::B1000000, + B1152000 => BaudRate::B1152000, + B1500000 => BaudRate::B1500000, + B2000000 => BaudRate::B2000000, + B2500000 => BaudRate::B2500000, + B3000000 => BaudRate::B3000000, + B3500000 => BaudRate::B3500000, + B4000000 => BaudRate::B4000000, b @ _ => unreachable!("Invalid baud constant: {}", b), } }