FreeCalypso > hg > freecalypso-tools
diff libserial-newlnx/setbaud.c @ 255:ab8410d06ca7
libserial-newlnx: new way implemented, compiles
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 22 Sep 2017 00:19:41 +0000 |
parents | 6984b76f3def |
children |
line wrap: on
line diff
--- a/libserial-newlnx/setbaud.c Fri Sep 22 00:09:37 2017 +0000 +++ b/libserial-newlnx/setbaud.c Fri Sep 22 00:19:41 2017 +0000 @@ -4,7 +4,8 @@ #include <sys/types.h> #include <sys/ioctl.h> -#include <termios.h> +#include <asm/ioctls.h> +#include <asm/termbits.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -17,18 +18,18 @@ set_serial_baudrate(br) struct baudrate *br; { - struct termios target_termios; + struct termios2 target_termios; target_termios.c_iflag = IGNBRK; target_termios.c_oflag = 0; - target_termios.c_cflag = CLOCAL|HUPCL|CREAD|CS8; + target_termios.c_cflag = br->termios_code | CLOCAL|HUPCL|CREAD|CS8; target_termios.c_lflag = 0; target_termios.c_cc[VMIN] = 1; target_termios.c_cc[VTIME] = 0; - cfsetispeed(&target_termios, br->termios_code); - cfsetospeed(&target_termios, br->termios_code); - if (tcsetattr(target_fd, TCSAFLUSH, &target_termios) < 0) { - perror("tcsetattr"); + target_termios.c_ispeed = br->nonstd_speed; + target_termios.c_ospeed = br->nonstd_speed; + if (ioctl(target_fd, TCSETSF2, &target_termios) < 0) { + perror("TCSETSF2"); exit(1); } current_baud_rate = br;