@@ -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