Skip to content

Commit 8b6242e

Browse files
committed
Using baud constants from libc
New baud constants landed in rust-lang/libc#530, we'll use them.
1 parent a217212 commit 8b6242e

File tree

1 file changed

+78
-59
lines changed

1 file changed

+78
-59
lines changed

src/sys/termios.rs

Lines changed: 78 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -158,34 +158,45 @@ mod ffi {
158158

159159
impl From<speed_t> for BaudRate {
160160
fn from(s: speed_t) -> BaudRate {
161+
162+
use libc::{
163+
B0, B50, B75, B110, B134, B150,
164+
B200, B300, B600, B1200, B1800, B2400,
165+
B4800, B9600, B19200, B38400,
166+
B7200, B14400, B28800, B57600,
167+
B76800, B115200, B230400};
168+
169+
#[cfg(any(target_os = "netbsd", target_os = "freebsd"))]
170+
use libc::{B460800, B921600};
171+
161172
match s {
162-
0 => BaudRate::B0,
163-
50 => BaudRate::B50,
164-
75 => BaudRate::B75,
165-
110 => BaudRate::B110,
166-
134 => BaudRate::B134,
167-
150 => BaudRate::B150,
168-
200 => BaudRate::B200,
169-
300 => BaudRate::B300,
170-
600 => BaudRate::B600,
171-
1200 => BaudRate::B1200,
172-
1800 => BaudRate::B1800,
173-
2400 => BaudRate::B2400,
174-
4800 => BaudRate::B4800,
175-
9600 => BaudRate::B9600,
176-
19200 => BaudRate::B19200,
177-
38400 => BaudRate::B38400,
178-
7200 => BaudRate::B7200,
179-
14400 => BaudRate::B14400,
180-
28800 => BaudRate::B28800,
181-
57600 => BaudRate::B57600,
182-
76800 => BaudRate::B76800,
183-
115200 => BaudRate::B115200,
184-
230400 => BaudRate::B230400,
173+
B0 => BaudRate::B0,
174+
B50 => BaudRate::B50,
175+
B75 => BaudRate::B75,
176+
B110 => BaudRate::B110,
177+
B134 => BaudRate::B134,
178+
B150 => BaudRate::B150,
179+
B200 => BaudRate::B200,
180+
B300 => BaudRate::B300,
181+
B600 => BaudRate::B600,
182+
B1200 => BaudRate::B1200,
183+
B1800 => BaudRate::B1800,
184+
B2400 => BaudRate::B2400,
185+
B4800 => BaudRate::B4800,
186+
B9600 => BaudRate::B9600,
187+
B19200 => BaudRate::B19200,
188+
B38400 => BaudRate::B38400,
189+
B7200 => BaudRate::B7200,
190+
B14400 => BaudRate::B14400,
191+
B28800 => BaudRate::B28800,
192+
B57600 => BaudRate::B57600,
193+
B76800 => BaudRate::B76800,
194+
B115200 => BaudRate::B115200,
195+
B230400 => BaudRate::B230400,
185196
#[cfg(any(target_os = "netbsd", target_os = "freebsd"))]
186-
460800 => BaudRate::B460800,
197+
B460800 => BaudRate::B460800,
187198
#[cfg(any(target_os = "netbsd", target_os = "freebsd"))]
188-
921600 => BaudRate::B921600,
199+
B921600 => BaudRate::B921600,
189200
b @ _ => unreachable!("Invalid baud constant: {}", b),
190201
}
191202
}
@@ -365,7 +376,7 @@ mod ffi {
365376
B50,
366377
B75,
367378
B110,
368-
B130,
379+
B134,
369380
B150,
370381
B200,
371382
B300,
@@ -377,7 +388,6 @@ mod ffi {
377388
B9600,
378389
B19200,
379390
B38400,
380-
BOTHER,
381391
B57600,
382392
B115200,
383393
B230400,
@@ -397,39 +407,48 @@ mod ffi {
397407

398408
impl From<speed_t> for BaudRate {
399409
fn from(s: speed_t) -> BaudRate {
410+
411+
use libc::{
412+
B0, B50, B75, B110, B134, B150,
413+
B200, B300, B600, B1200, B1800, B2400,
414+
B4800, B9600, B19200, B38400, B57600,
415+
B115200, B230400, B460800, B500000,
416+
B576000, B921600, B1000000, B1152000,
417+
B1500000, B2000000, B2500000, B3000000,
418+
B3500000, B4000000};
419+
400420
match s {
401-
0o0 => BaudRate::B0,
402-
0o1 => BaudRate::B50,
403-
0o2 => BaudRate::B75,
404-
0o3 => BaudRate::B110,
405-
0o4 => BaudRate::B130,
406-
0o5 => BaudRate::B150,
407-
0o6 => BaudRate::B200,
408-
0o7 => BaudRate::B300,
409-
0o10 => BaudRate::B600,
410-
0o11 => BaudRate::B1200,
411-
0o12 => BaudRate::B1800,
412-
0o13 => BaudRate::B2400,
413-
0o14 => BaudRate::B4800,
414-
0o15 => BaudRate::B9600,
415-
0o16 => BaudRate::B19200,
416-
0o17 => BaudRate::B38400,
417-
0o10000 => BaudRate::BOTHER,
418-
0o10001 => BaudRate::B57600,
419-
0o10002 => BaudRate::B115200,
420-
0o10003 => BaudRate::B230400,
421-
0o10004 => BaudRate::B460800,
422-
0o10005 => BaudRate::B500000,
423-
0o10006 => BaudRate::B576000,
424-
0o10007 => BaudRate::B921600,
425-
0o10010 => BaudRate::B1000000,
426-
0o10011 => BaudRate::B1152000,
427-
0o10012 => BaudRate::B1500000,
428-
0o10013 => BaudRate::B2000000,
429-
0o10014 => BaudRate::B2500000,
430-
0o10015 => BaudRate::B3000000,
431-
0o10016 => BaudRate::B3500000,
432-
0o10017 => BaudRate::B4000000,
421+
B0 => BaudRate::B0,
422+
B50 => BaudRate::B50,
423+
B75 => BaudRate::B75,
424+
B110 => BaudRate::B110,
425+
B134 => BaudRate::B134,
426+
B150 => BaudRate::B150,
427+
B200 => BaudRate::B200,
428+
B300 => BaudRate::B300,
429+
B600 => BaudRate::B600,
430+
B1200 => BaudRate::B1200,
431+
B1800 => BaudRate::B1800,
432+
B2400 => BaudRate::B2400,
433+
B4800 => BaudRate::B4800,
434+
B9600 => BaudRate::B9600,
435+
B19200 => BaudRate::B19200,
436+
B38400 => BaudRate::B38400,
437+
B57600 => BaudRate::B57600,
438+
B115200 => BaudRate::B115200,
439+
B230400 => BaudRate::B230400,
440+
B460800 => BaudRate::B460800,
441+
B500000 => BaudRate::B500000,
442+
B576000 => BaudRate::B576000,
443+
B921600 => BaudRate::B921600,
444+
B1000000 => BaudRate::B1000000,
445+
B1152000 => BaudRate::B1152000,
446+
B1500000 => BaudRate::B1500000,
447+
B2000000 => BaudRate::B2000000,
448+
B2500000 => BaudRate::B2500000,
449+
B3000000 => BaudRate::B3000000,
450+
B3500000 => BaudRate::B3500000,
451+
B4000000 => BaudRate::B4000000,
433452
b @ _ => unreachable!("Invalid baud constant: {}", b),
434453
}
435454
}

0 commit comments

Comments
 (0)