summaryrefslogtreecommitdiff
blob: 02abcb0e95d239bc6252c14a900ec7842b815e89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
From 38702bf0f4aaafdddde51393106eeaf720c1fc63 Mon Sep 17 00:00:00 2001
From: Manuel Lauss <manuel.lauss@googlemail.com>
Date: Fri, 13 Jan 2012 11:59:55 -0500
Subject: [PATCH] serial: use cfgetispeed helpers

Rather than poking c_ispeed directly, use the cfgetispeed helper.  This
is part of POSIX, and we already use cfsetispeed, so there shouldn't be
any portability issues here.

Signed-off-by: Manuel Lauss <manuel.lauss@googlemail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 serial.c |    9 +--------
 1 files changed, 1 insertions(+), 8 deletions(-)

diff --git a/serial.c b/serial.c
index c1464dd..8eb03ce 100644
--- a/serial.c
+++ b/serial.c
@@ -594,13 +594,8 @@ void gpsd_close(struct gps_device_t *session)
 	 * them the first time.  Economical, and avoids tripping over an
 	 * obscure Linux 2.6 kernel bug that disables threaded
 	 * ioctl(TIOCMWAIT) on a device after tcsetattr() is called.
-         *
-         * Unfortunately the termios struct doesn't have c_ispeed/c_ospeed
-         * on all architectures. Its missing on sparc, mips/mispel and hurd-i386 at least.
 	 */
-#if defined(_HAVE_STRUCT_TERMIOS_C_ISPEED)
-	if (session->ttyset_old.c_ispeed != session->ttyset.c_ispeed || (session->ttyset_old.c_cflag & CSTOPB) != (session->ttyset.c_cflag & CSTOPB)) {
-#endif
+	if (cfgetispeed(&session->ttyset_old) != cfgetispeed(&session->ttyset) || (session->ttyset_old.c_cflag & CSTOPB) != (session->ttyset.c_cflag & CSTOPB)) {
 	    /*@ ignore @*/
 	    (void)cfsetispeed(&session->ttyset_old,
 			      (speed_t) session->gpsdata.dev.baudrate);
@@ -609,9 +604,7 @@ void gpsd_close(struct gps_device_t *session)
 	    /*@ end @*/
 	    (void)tcsetattr(session->gpsdata.gps_fd, TCSANOW,
 			    &session->ttyset_old);
-#if defined(_HAVE_STRUCT_TERMIOS_C_ISPEED)
 	}
-#endif
 	gpsd_report(LOG_SPIN, "close(%d) in gpsd_close(%s)\n",
 		    session->gpsdata.gps_fd, session->gpsdata.dev.path);
 	(void)close(session->gpsdata.gps_fd);
-- 
1.7.8.3