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;