Skip to content

Commit

Permalink
Using baud constants from libc
Browse files Browse the repository at this point in the history
New baud constants landed in rust-lang/libc#530, we'll use them.
  • Loading branch information
berkowski committed Feb 25, 2017
1 parent a217212 commit 8b6242e
Showing 1 changed file with 78 additions and 59 deletions.
137 changes: 78 additions & 59 deletions src/sys/termios.rs
Original file line number Diff line number Diff line change
Expand Up @@ -158,34 +158,45 @@ mod ffi {

impl From<speed_t> 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),
}
}
Expand Down Expand Up @@ -365,7 +376,7 @@ mod ffi {
B50,
B75,
B110,
B130,
B134,
B150,
B200,
B300,
Expand All @@ -377,7 +388,6 @@ mod ffi {
B9600,
B19200,
B38400,
BOTHER,
B57600,
B115200,
B230400,
Expand All @@ -397,39 +407,48 @@ mod ffi {

impl From<speed_t> 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),
}
}
Expand Down

0 comments on commit 8b6242e

Please sign in to comment.