gpsd-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gpsd-dev] [PATCH 1/6] Reverts most C99-related changes.


From: Fred Wright
Subject: [gpsd-dev] [PATCH 1/6] Reverts most C99-related changes.
Date: Mon, 5 Sep 2016 18:09:23 -0700

The C99 compatibility effort was ultimately put aside for now,
but not without leaving some changes that broke some builds,
some changes that violated the rule about never manipulating
the macros beginning with double underscores, and some changes
that could be done better.  This change reverts most of the
C99 changes, keeping only the ones that are appropriate as is.
A few more will be reintroduced in modified or redone form.

List of relevant commits (reverse chronological):
-------------------------------------------------
N d8eae2c for INADDR_LOOPBACK() FreeBSD wants __BSD_VISIBLE
Y bc4a4a9 Comment why time.h needed
N a7729b6 for vsnprintf() FreeBSD wants __ISO_C_VISIBLE >= 1999
Y 8066c57 Well, duh,  You can't change a constant!
N a1acc3a Fixups for NetBSD
N 1b6571a __DARWIN_C_LEVEL and _DARWIN_C_SOURCE to silence some warnings.
Y bbbc307 OS X has no sys/sysmacros.h, so hide it.
Y 1d29f15 OS X incorrectly complains about an uninitializzed variable.
N 0868e9c If you specify XOPEN version, you must specify POSIX version.
N 8bf402d Stop forcing C99 and POSIX 2001.
N e24c36e Enforce POSIX 2001 by default.
N dbf849d Fix for C99 and POSIX 2001.
N ff398eb In POSIX 2001, getsid() needs _XOPEN_SOURCE >= 500
N bdc2109 Force C99 with -D_ISOC99_SOURCE
N 40cf257 I can not figure out why this file will not C99.  Punt.
N 558586b putenv() needs _XOPEN_SOURCE
Y 2a72002 uint to unsigned int.  uint gone in C99.
N 31ece69 cfmakeraw() needs _DEFAULT_SOURCE
N 87b7df3 sys/ipc.h needs _XOPEN_SOURCE
N d01483e daemon() needs _DEFAULT_SOURCE
N d5b3f16 daemon() needs _DEFAULT_SOURCE
P 4c8a74f strsep() and daemon() needs _DEFAULT_SOURCE, replace bcopy()
R 0260b7d alloca() needs alloca.h
P 6692860 bzero() is gone in POSIX 2008.  Use memset()
N 8f8f6ed isascii() needs _XOPEN_SOURCE 500
N 67f0cb9 nice() needs _XOPEN_SOURCE 500, setgroups(), daemon() needs 
_DEFAULT_SOURCE
N 5e844a4 nice() needs _XOPEN_SOURCE 500 defined
N cca1925 C99 requires _XOPEN_SOURCE 500 for M_LN2
N aca3818 sys/ipc.h  needs XOPEN_SOURCE 500
Y 9a4bd35 With C99, macro() needs sys/sysmacros.h
N b4715a2 Fix a warning when C99 specified.
Y e9fdd7e More uint to unsigned int.
Y 51500bb uint was rmoved in C99.  If gpsd enforce C99, then uint must go.
R e67e411 usleep() is removed from POSIX-2008.  Replace with nanosleep()
N 1721d7c Prepare to insis on C99 and POSIX 2001.

Legend:
-------
Y - Kept as is
N - Dropped
P - To be partially reintroduced
R - To be redone

TESTED:
Ran "scons build-all check" successfully on:
OSX:       10.5, 10.6, 10.7, 10.8, 10.9, 10.10, 10.11
Linux:     Ubuntu 14.04.1, CentOS 7
FreeBSD 10.1
OpenBSD 5.6
NetBSD 6.1.5
---
 SConstruct          |  6 ------
 contrib/ashctl.c    |  7 +------
 contrib/binlog.c    |  8 ++------
 contrib/binreplay.c |  6 +-----
 contrib/motosend.c  | 13 ++++---------
 driver_ais.c        |  6 ------
 driver_garmin.c     |  7 +------
 driver_garmin_txt.c |  4 ++--
 driver_nmea0183.c   |  4 ----
 driver_nmea2000.c   |  6 +-----
 driver_sirf.c       |  2 +-
 driver_tsip.c       |  7 -------
 driver_zodiac.c     |  7 -------
 drivers.c           | 19 ++-----------------
 gps2udp.c           |  5 +----
 gpsctl.c            | 20 +-------------------
 gpsd.c              | 22 +---------------------
 gpsd_json.c         | 10 ----------
 gpsmon.c            | 18 ++----------------
 gpspacket.c         |  4 ----
 gpspipe.c           |  8 +-------
 gpxlogger.c         |  4 ----
 lcdgps.c            |  3 ---
 libgps_core.c       |  4 ----
 libgps_shm.c        |  4 ----
 libgpsd_core.c      | 13 -------------
 monitor_nmea0183.c  |  4 ----
 netlib.c            |  4 ----
 ntpshmmon.c         | 13 ++-----------
 ntpshmwrite.c       |  3 ---
 serial.c            | 10 +---------
 shmexport.c         |  4 ----
 timebase.c          |  3 ---
 timehint.c          |  7 -------
 34 files changed, 24 insertions(+), 241 deletions(-)

diff --git a/SConstruct b/SConstruct
index 5996513..a5be834 100644
--- a/SConstruct
+++ b/SConstruct
@@ -379,12 +379,6 @@ if 'CCFLAGS' not in os.environ:
     else:
         env.Append(CCFLAGS=['-O2'])
 
-# We are C99, tell the world
-#env.Append(CFLAGS=['-D_ISOC99_SOURCE'])
-
-# We are POSIX 2001, tell the world
-#env.Append(CFLAGS=['-D_POSIX_C_SOURCE=200112L'])
-
 # Get a slight speedup by not doing automatic RCS and SCCS fetches.
 env.SourceCode('.', None)
 
diff --git a/contrib/ashctl.c b/contrib/ashctl.c
index f1cfdcf..fdf04bf 100644
--- a/contrib/ashctl.c
+++ b/contrib/ashctl.c
@@ -157,7 +157,6 @@ static int nmea_send(int fd, const char *fmt, ... )
        size_t status;
        char buf[BUFSIZ];
        va_list ap;
-       struct timespec delay;
 
        va_start(ap, fmt) ;
        (void)vsnprintf(buf, sizeof(buf)-5, fmt, ap);
@@ -168,11 +167,7 @@ static int nmea_send(int fd, const char *fmt, ... )
        tcflush(fd, TCIOFLUSH);
        status = (size_t)write(fd, buf, strlen(buf));
        tcdrain(fd);
-        /* wait 100,000 uSec */
-       delay.tv_sec = 0;
-       delay.tv_nsec = 100000000L;
-       nanosleep(&delay, NULL);
-
+       usleep(100000);
        if (status == strlen(buf)) {
                return (int)status;
        } else {
diff --git a/contrib/binlog.c b/contrib/binlog.c
index 0e2c7cf..8e5e8d9 100644
--- a/contrib/binlog.c
+++ b/contrib/binlog.c
@@ -19,7 +19,6 @@ int main(int argc, char **argv) {
        int speed, n, ifd, ofd;
        struct termios term;
        char buf[BUFSIZ];
-       struct timespec delay;
 
        if (argc != 4){
                fprintf(stderr, "usage: binlog <speed> <port> <logfile>\n");
@@ -62,11 +61,8 @@ int main(int argc, char **argv) {
                int l = read(ifd, buf, BUFSIZ);
                if (l > 0)
                    assert(write(ofd, buf, l) > 0);
-               /* wait 1,000 uSec */
-               delay.tv_sec = 0;
-               delay.tv_nsec = 1000000L;
-               nanosleep(&delay, NULL);
-               memset(buf, 0, BUFSIZ);
+               usleep(1000);
+               bzero(buf, BUFSIZ);
                spinner( n++ );
        }
        /* NOTREACHED */
diff --git a/contrib/binreplay.c b/contrib/binreplay.c
index 8b68bc1..36389e0 100644
--- a/contrib/binreplay.c
+++ b/contrib/binreplay.c
@@ -31,7 +31,6 @@ int main( int argc, char **argv){
        char *buf, tn[32];
        int ifd, ofd, sfd;
        int dflag = 0, c, sleeptime, len, speed = 0;
-       struct timespec delay;
 
        while((c = getopt(argc, argv, "d:r:s:")) != -1) {
                switch(c){
@@ -118,10 +117,7 @@ int main( int argc, char **argv){
                        tcflush(sfd, TCIFLUSH);
                }
                spinner( len );
-               /* wait sleeptime Sec */
-               delay.tv_sec = (time_t)(sleeptime / 1000000000L);
-               delay.tv_nsec = sleeptime % 1000000000L;
-               nanosleep(&delay, NULL);
+               usleep(sleeptime);
        }
 
        munmap(buf, sb.st_size);
diff --git a/contrib/motosend.c b/contrib/motosend.c
index bd08b5f..3073158 100644
--- a/contrib/motosend.c
+++ b/contrib/motosend.c
@@ -31,7 +31,6 @@ int main(int argc, char **argv) {
        struct termios term;
        char buf[BSIZ];
        time_t s, t;
-       struct timespec delay;
 
        if (argc != 5){
                fprintf(stderr, "usage: motosend <speed> <port> msgtype 
moto-body-hex\n");
@@ -83,12 +82,8 @@ int main(int argc, char **argv) {
        tcflush(fd, TCIOFLUSH);
        t = 0; n = 0;
        while (1){
-               /* wait 1,000 uSec */
-               delay.tv_sec = 0;
-               delay.tv_nsec = 1000000L;
-               nanosleep(&delay, NULL);
-
-               memset(buf, 0, BSIZ);
+               usleep(1000);
+               bzero(buf, BSIZ);
                if ((l = read(fd, buf, BSIZ)) == -1)
                        if (!(EINTR == errno || EAGAIN == errno))
                                err(1, "read");
@@ -126,7 +121,7 @@ static int moto_send(int fd, char *type, char *body ) {
        if ((buf = malloc(l+7)) == NULL)
                return -1;
 
-       memset(buf, 0, l+7);
+       bzero(buf, l+7);
        buf[0] = '@'; buf[1] = '@';
        buf[2] = type[0]; buf[3] = type[1];
 
@@ -179,7 +174,7 @@ int gpsd_hexpack(char *src, char *dst, int len)
     if ((l < 1) || (l > len))
        return -1;
 
-    memset(dst, 0, len);
+    bzero(dst, len);
     for (i = 0; i < l; i++) {
        int k;
        if ((k = hex2bin(src+i*2)) != -1)
diff --git a/driver_ais.c b/driver_ais.c
index f7c5a79..d79e457 100644
--- a/driver_ais.c
+++ b/driver_ais.c
@@ -15,12 +15,6 @@
  * This file is Copyright (c) 2010 by the GPSD project
  * BSD terms apply: see the file COPYING in the distribution root for details.
  */
-
-/* isascii() needs _XOPEN_SOURCE, 500 means X/Open 1995 */
-#define _XOPEN_SOURCE 500
-/* strlcpy() needs _DARWIN_C_SOURCE */
-#define _DARWIN_C_SOURCE
-
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
diff --git a/driver_garmin.c b/driver_garmin.c
index 4ecb960..c80b842 100644
--- a/driver_garmin.c
+++ b/driver_garmin.c
@@ -1027,7 +1027,6 @@ gps_mask_t garmin_ser_parse(struct gps_device_t *session)
     unsigned char pkt_len = 0;
     unsigned char chksum = 0;
     gps_mask_t mask = 0;
-    struct timespec delay;
 
     gpsd_log(&session->context->errout, LOG_RAW, "Garmin: 
garmin_ser_parse()\n");
     if (6 > len) {
@@ -1159,11 +1158,7 @@ gps_mask_t garmin_ser_parse(struct gps_device_t *session)
 
     // sending ACK too soon might hang the session
     // so send ACK last, after a pause
-    /* wait 300 uSec */
-    delay.tv_sec = 0;
-    delay.tv_nsec = 300000L;
-    nanosleep(&delay, NULL);
-
+    (void)usleep(300);
     Send_ACK();
     gpsd_log(&session->context->errout, LOG_DATA,
             "Garmin: garmin_ser_parse( )\n");
diff --git a/driver_garmin_txt.c b/driver_garmin_txt.c
index c14c516..8631ee3 100644
--- a/driver_garmin_txt.c
+++ b/driver_garmin_txt.c
@@ -155,7 +155,7 @@ static int gar_decode(const struct gps_context_t *context,
        return -1;
     }
 
-    memset(buf, 0, (int)sizeof(buf));
+    bzero(buf, (int)sizeof(buf));
     (void)strlcpy(buf, data, length);
     gpsd_log(&context->errout, LOG_RAW + 2, "Decoded string: %s\n", buf);
 
@@ -223,7 +223,7 @@ static int gar_int_decode(const struct gps_context_t 
*context,
        return -1;
     }
 
-    memset(buf, 0, (int)sizeof(buf));
+    bzero(buf, (int)sizeof(buf));
     (void)strlcpy(buf, data, length);
     gpsd_log(&context->errout, LOG_RAW + 2, "Decoded string: %s\n", buf);
 
diff --git a/driver_nmea0183.c b/driver_nmea0183.c
index 337e90c..58c57ec 100644
--- a/driver_nmea0183.c
+++ b/driver_nmea0183.c
@@ -2,10 +2,6 @@
  * This file is Copyright (c) 2010 by the GPSD project
  * BSD terms apply: see the file COPYING in the distribution root for details.
  */
-
-/* for vsnprintf() FreeBSD wants __ISO_C_VISIBLE >= 1999 */
-#define __ISO_C_VISIBLE 1999
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdbool.h>
diff --git a/driver_nmea2000.c b/driver_nmea2000.c
index 47b051b..c5c6a8b 100644
--- a/driver_nmea2000.c
+++ b/driver_nmea2000.c
@@ -4,10 +4,6 @@
  * This file is Copyright (c) 2012 by the GPSD project
  * BSD terms apply: see the file COPYING in the distribution root for details.
  */
-
-/* need this for strnlen() and struct ifreq */
-#define _DEFAULT_SOURCE
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdbool.h>
@@ -19,8 +15,8 @@
 #include <fcntl.h>
 #include <unistd.h>
 #include <sys/socket.h>
-#include <sys/ioctl.h>
 #include <net/if.h>
+#include <sys/ioctl.h>
 
 #include "gpsd.h"
 #include "libgps.h"
diff --git a/driver_sirf.c b/driver_sirf.c
index deec232..a377d7f 100644
--- a/driver_sirf.c
+++ b/driver_sirf.c
@@ -415,7 +415,7 @@ static gps_mask_t sirf_msg_debug(struct gps_device_t 
*device,
     char msgbuf[MAX_PACKET_LENGTH * 3 + 2];
     int i;
 
-    memset(msgbuf, 0, (int)sizeof(msgbuf));
+    bzero(msgbuf, (int)sizeof(msgbuf));
 
     if (0xe1 == buf[0]) {      /* Development statistics messages */
        for (i = 2; i < (int)len; i++)
diff --git a/driver_tsip.c b/driver_tsip.c
index 34a53e8..5e09433 100644
--- a/driver_tsip.c
+++ b/driver_tsip.c
@@ -12,13 +12,6 @@
  * This file is Copyright (c) 2010 by the GPSD project
  * BSD terms apply: see the file COPYING in the distribution root for details.
  */
-
-/* if we insist on C99, then we need this to get M_LN2 from math.h */
-/* 500 mean X/Open 1995 */
-#define _XOPEN_SOURCE 500
-/* round() needs  _POSIX_C_SOURCE >= 200112L */
-#define  _POSIX_C_SOURCE 200112L
-
 #include <sys/time.h>          /* for select() */
 #include <string.h>
 #include <stdio.h>
diff --git a/driver_zodiac.c b/driver_zodiac.c
index e1ce407..65f76f0 100644
--- a/driver_zodiac.c
+++ b/driver_zodiac.c
@@ -9,13 +9,6 @@
  * This file is Copyright (c) 2010 by the GPSD project
  * BSD terms apply: see the file COPYING in the distribution root for details.
  */
-
-/* if we insisnt on C99, then we need this to get M_LN2 from math.h */
-/* 500 means X/Open 1995 */
-#define _XOPEN_SOURCE 500
-/* round() needs  _POSIX_C_SOURCE >= 200112L */
-#define  _POSIX_C_SOURCE 200112L
-
 #include <stdio.h>
 #include <stdbool.h>
 #include <string.h>
diff --git a/drivers.c b/drivers.c
index 98a2485..85b12a9 100644
--- a/drivers.c
+++ b/drivers.c
@@ -2,10 +2,6 @@
  * This file is Copyright (c) 2010 by the GPSD project
  * BSD terms apply: see the file COPYING in the distribution root for details.
  */
-
-/* for vsnprintf() FreeBSD wants __ISO_C_VISIBLE >= 1999 */
-#define __ISO_C_VISIBLE 1999
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdbool.h>
@@ -291,15 +287,10 @@ const struct gps_type_t driver_nmea0183 = {
 static void garmin_mode_switch(struct gps_device_t *session, int mode)
 /* only does anything in one direction, going to Garmin binary driver */
 {
-    struct timespec delay;
-
     if (mode == MODE_BINARY) {
        (void)nmea_send(session, "$PGRMC1,1,2,1,,,,2,W,N");
        (void)nmea_send(session, "$PGRMI,,,,,,,R");
-        /* wait 333 uSec, standard Garmin settling time */
-       delay.tv_sec = 0;
-       delay.tv_nsec = 333000L;
-       nanosleep(&delay, NULL);
+       (void)usleep(333);      /* standard Garmin settling time */
     }
 }
 #endif /* RECONFIGURE_ENABLE */
@@ -612,17 +603,11 @@ static const struct gps_type_t driver_tripmate = {
 
 static void earthmate_event_hook(struct gps_device_t *session, event_t event)
 {
-    struct timespec delay;
-
     if (session->context->readonly)
        return;
     if (event == event_triggermatch) {
        (void)gpsd_write(session, "EARTHA\r\n", 8);
-        /* wait 10,000 uSec */
-       delay.tv_sec = 0;
-       delay.tv_nsec = 10000000L;
-       nanosleep(&delay, NULL);
-
+       (void)usleep(10000);
        (void)gpsd_switch_driver(session, "Zodiac");
     }
 }
diff --git a/gps2udp.c b/gps2udp.c
index b07eaa1..8345079 100644
--- a/gps2udp.c
+++ b/gps2udp.c
@@ -12,9 +12,6 @@
  *
  */
 
-/* strsep() and daemon() needs _DEFAULT_SOURCE */
-#define _DEFAULT_SOURCE
-
 #include <time.h>
 #include "gpsd_config.h"
 
@@ -168,7 +165,7 @@ static int open_udp(char **hostport)
           return (-1);
        }
 
-       memcpy( &remote[channel].sin_addr, hp->h_addr, hp->h_length);
+       bcopy((char *)hp->h_addr, (char *)&remote[channel].sin_addr, 
hp->h_length);
        remote[channel].sin_port = htons((in_port_t)portnum);
    }
 return (0);
diff --git a/gpsctl.c b/gpsctl.c
index 6f392f9..e3835bd 100644
--- a/gpsctl.c
+++ b/gpsctl.c
@@ -4,17 +4,6 @@
  * BSD terms apply: see the file COPYING in the distribution root for details.
  *
  */
-
-/* sys/ipc.h needs _XOPEN_SOURCE, 500 means X/Open 1995 */
-#define _XOPEN_SOURCE 500
-/* pselect() needs _POSIX_C_SOURCE >= 200112L */
-#define _POSIX_C_SOURCE 200112L
-/* strlcpy() needs _DARWIN_C_SOURCE */
-#define _DARWIN_C_SOURCE
-
-/* for vsnprintf() FreeBSD wants __ISO_C_VISIBLE >= 1999 */
-#define __ISO_C_VISIBLE 1999
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdbool.h>
@@ -54,18 +43,11 @@ static bool hunting = true;
 static void settle(struct gps_device_t *session)
 /* allow the device to settle after a control operation */
 {
-    struct timespec delay;
-
     /*
      * See the 'deep black magic' comment in serial.c:set_serial().
      */
     (void)tcdrain(session->gpsdata.gps_fd);
-
-    /* wait 50,000 uSec */
-    delay.tv_sec = 0;
-    delay.tv_nsec = 50000000L;
-    nanosleep(&delay, NULL);
-
+    (void)usleep(50000);
     (void)tcdrain(session->gpsdata.gps_fd);
 }
 #endif /* defined(RECONFIGURE_ENABLE) || defined(CONTROLSEND_ENABLE) */
diff --git a/gpsd.c b/gpsd.c
index 8fa0b0e..726cba4 100644
--- a/gpsd.c
+++ b/gpsd.c
@@ -6,20 +6,6 @@
  * BSD terms apply: see the file COPYING in the distribution root for details.
  */
 
-/* nice() needs _XOPEN_SOURCE, 500 means X/Open 1995 */
-#define _XOPEN_SOURCE 500
-/* setgroups() and daemon() needs _DEFAULT_SOURCE */
-#define _DEFAULT_SOURCE
-/* vsnprintf() needs __DARWIN_C_LEVEL >= 200112L */
-#define __DARWIN_C_LEVEL 200112L
-/* strlcpy() needs _DARWIN_C_SOURCE */
-#define _DARWIN_C_SOURCE
-
-/* for vsnprintf() FreeBSD wants __ISO_C_VISIBLE >= 1999 */
-#define __ISO_C_VISIBLE 1999
-/* for INADDR_LOOPBACK() FreeBSD wants __BSD_VISIBLE */
-#define __BSD_VISIBLE
-
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <sys/time.h>          /* for select() */
@@ -1014,7 +1000,6 @@ static void set_serial(struct gps_device_t *device,
     unsigned int stopbits = device->gpsdata.dev.stopbits;
     char parity = device->gpsdata.dev.parity;
     int wordsize = 8;
-    struct timespec delay;
 
 #ifndef __clang_analyzer__
     while (isspace((unsigned char) *modestring))
@@ -1057,12 +1042,7 @@ static void set_serial(struct gps_device_t *device,
             * across any given type of UART.
             */
            (void)tcdrain(device->gpsdata.gps_fd);
-
-           /* wait 50,000 uSec */
-           delay.tv_sec = 0;
-           delay.tv_nsec = 50000000L;
-           nanosleep(&delay, NULL);
-
+           (void)usleep(50000);
            gpsd_set_speed(device, speed, parity, stopbits);
        }
     }
diff --git a/gpsd_json.c b/gpsd_json.c
index c089377..8a4adab 100644
--- a/gpsd_json.c
+++ b/gpsd_json.c
@@ -14,16 +14,6 @@ PERMISSIONS
 
 ***************************************************************************/
 
-/* isascii() needs _XOPEN_SOURCE, 500 means X/Open 1995 */
-#define _XOPEN_SOURCE 500
-/* vsnprintf() needs __DARWIN_C_LEVEL >= 200112L */
-#define __DARWIN_C_LEVEL 200112L
-/* strlcpy() needs _DARWIN_C_SOURCE */
-#define _DARWIN_C_SOURCE
-
-/* for vsnprintf() FreeBSD wants __ISO_C_VISIBLE >= 1999 */
-#define __ISO_C_VISIBLE 1999
-
 #include <stdio.h>
 #include <math.h>
 #include <assert.h>
diff --git a/gpsmon.c b/gpsmon.c
index ea0991b..ee4aaeb 100644
--- a/gpsmon.c
+++ b/gpsmon.c
@@ -4,10 +4,6 @@
  * This file is Copyright (c) 2010 by the GPSD project
  * BSD terms apply: see the file COPYING in the distribution root for details.
  */
-
-/* for vsnprintf() FreeBSD wants __ISO_C_VISIBLE >= 1999 */
-#define __ISO_C_VISIBLE 1999
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdbool.h>
@@ -865,7 +861,6 @@ static bool do_command(const char *line)
 {
 #ifdef RECONFIGURE_ENABLE
     unsigned int v;
-    struct timespec delay;
 #endif /* RECONFIGURE_ENABLE */
 #ifdef CONTROLSEND_ENABLE
     unsigned char buf[BUFLEN];
@@ -968,12 +963,7 @@ static bool do_command(const char *line)
                switcher->mode_switcher(&session, (int)v);
                context.readonly = true;
                (void)tcdrain(session.gpsdata.gps_fd);
-
-               /* wait 50,000 uSec */
-               delay.tv_sec = 0;
-               delay.tv_nsec = 50000000L;
-               nanosleep(&delay, NULL);
-
+               (void)usleep(50000);
                /*
                 * Session device change will be set to NMEA when
                 * gpsmon resyncs.  So stash the current type to
@@ -1045,11 +1035,7 @@ static bool do_command(const char *line)
                     * buffer.
                     */
                    (void)tcdrain(session.gpsdata.gps_fd);
-                   /* wait 50,000 uSec */
-                   delay.tv_sec = 0;
-                   delay.tv_nsec = 50000000L;
-                   nanosleep(&delay, NULL);
-
+                   (void)usleep(50000);
                    (void)gpsd_set_speed(&session, speed,
                                         parity, stopbits);
                } else
diff --git a/gpspacket.c b/gpspacket.c
index 58ec5db..0c9ade2 100644
--- a/gpspacket.c
+++ b/gpspacket.c
@@ -5,10 +5,6 @@
  * BSD terms apply: see the file COPYING in the distribution root for details.
  *
  */
-
-/* for vsnprintf() FreeBSD wants __ISO_C_VISIBLE >= 1999 */
-#define __ISO_C_VISIBLE 1999
-
 #include <Python.h>
 
 #include <stdio.h>
diff --git a/gpspipe.c b/gpspipe.c
index 6e133f4..33d015c 100644
--- a/gpspipe.c
+++ b/gpspipe.c
@@ -23,12 +23,6 @@
  *
  */
 
-/* cfmakeraw() needs _DEFAULT_SOURCE */
-#define _DEFAULT_SOURCE
-/* daemon() needs _DEFAULT_SOURCE */
-#define _DEFAULT_SOURCE
-
-
 #include <time.h>               /* for time_t */
 #include "gpsd_config.h"
 
@@ -83,7 +77,7 @@ static void open_serial(char *device)
     }
 
     /* Clear struct for new port settings. */
-    memset(&newtio, 0, sizeof(newtio));
+    bzero(&newtio, sizeof(newtio));
 
     /* make it raw */
     (void)cfmakeraw(&newtio);
diff --git a/gpxlogger.c b/gpxlogger.c
index 99bb3d0..d7ea508 100644
--- a/gpxlogger.c
+++ b/gpxlogger.c
@@ -2,10 +2,6 @@
  * This file is Copyright (c) 2010 by the GPSD project
  * BSD terms apply: see the file COPYING in the distribution root for details.
  */
-
-/* daemon() needs _DEFAULT_SOURCE */
-#define _DEFAULT_SOURCE
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdbool.h>
diff --git a/lcdgps.c b/lcdgps.c
index 75f9917..910f38d 100644
--- a/lcdgps.c
+++ b/lcdgps.c
@@ -33,9 +33,6 @@
 
 #define CLIMB 3
 
-/* daemon() needs _DEFAULT_SOURCE */
-#define _DEFAULT_SOURCE
-
 #include <netdb.h>
 #ifndef AF_UNSPEC
 #include <sys/types.h>
diff --git a/libgps_core.c b/libgps_core.c
index 644b96d..ca580bd 100644
--- a/libgps_core.c
+++ b/libgps_core.c
@@ -5,10 +5,6 @@
  * This file is Copyright (c) 2010 by the GPSD project
  * BSD terms apply: see the file COPYING in the distribution root for details.
  */
-
-/* for vsnprintf() FreeBSD wants __ISO_C_VISIBLE >= 1999 */
-#define __ISO_C_VISIBLE 1999
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
diff --git a/libgps_shm.c b/libgps_shm.c
index a9250ca..75aba8a 100644
--- a/libgps_shm.c
+++ b/libgps_shm.c
@@ -14,10 +14,6 @@ PERMISSIONS
    BSD terms apply: see the file COPYING in the distribution root for details.
 
 ***************************************************************************/
-
-/* sys/ipc.h needs _XOPEN_SOURCE, 500 means X/Open 1995 */
-#define _XOPEN_SOURCE 500
-
 #include <time.h>             /* for time_t */
 #include "gpsd_config.h"
 
diff --git a/libgpsd_core.c b/libgpsd_core.c
index 377674c..3fef4a8 100644
--- a/libgpsd_core.c
+++ b/libgpsd_core.c
@@ -9,22 +9,9 @@
  * This file is Copyright (c) 2010 by the GPSD project
  * BSD terms apply: see the file COPYING in the distribution root for details.
  */
-
-/* getsid() needs _XOPEN_SOURCE, 500 means X/Open 1995 */
-#define _XOPEN_SOURCE 500
-/* isfinite() and pselect() needs  _POSIX_C_SOURCE >= 200112L */
-#define  _POSIX_C_SOURCE 200112L
-/* strlcpy() needs _DARWIN_C_SOURCE */
-#define _DARWIN_C_SOURCE
-
-
 #include <time.h>
 #include <stdio.h>
-
-/* alloca() in stdlib.h needs __USE_MISC on Linux */
-#define __USE_MISC
 #include <stdlib.h>
-
 #include <stdbool.h>
 #include <libgen.h>
 #include <math.h>
diff --git a/monitor_nmea0183.c b/monitor_nmea0183.c
index a150ac4..426d9b0 100644
--- a/monitor_nmea0183.c
+++ b/monitor_nmea0183.c
@@ -6,10 +6,6 @@
  * This file is Copyright (c) 2010 by the GPSD project
  * BSD terms apply: see the file COPYING in the distribution root for details.
  */
-
-/* for vsnprintf() FreeBSD wants __ISO_C_VISIBLE >= 1999 */
-#define __ISO_C_VISIBLE 1999
-
 #include <stdio.h>
 #include <string.h>
 #include <math.h>
diff --git a/netlib.c b/netlib.c
index cc1c7bf..a0403cd 100644
--- a/netlib.c
+++ b/netlib.c
@@ -2,10 +2,6 @@
  * This file is Copyright (c) 2010 by the GPSD project
  * BSD terms apply: see the file COPYING in the distribution root for details.
  */
-
-/* for INADDR_LOOPBACK() FreeBSD wants __BSD_VISIBLE */
-#define __BSD_VISIBLE
-
 #include <string.h>
 #include <fcntl.h>
 #include <netdb.h>
diff --git a/ntpshmmon.c b/ntpshmmon.c
index f8768a3..8706f41 100644
--- a/ntpshmmon.c
+++ b/ntpshmmon.c
@@ -4,10 +4,6 @@
  * BSD terms apply: see the file COPYING in the distribution root for details.
  *
  */
-
-/* sys/ipc.h needs _XOPEN_SOURCE, 500 means X/Open 1995 */
-#define _XOPEN_SOURCE 500
-
 #include <stdio.h>
 #include <string.h>     /* for memset() */
 #include <stdlib.h>
@@ -102,7 +98,6 @@ int main(int argc, char **argv)
     do {
        /* the current segment */
        struct shm_stat_t       shm_stat;
-       struct timespec delay;
 
        for (i = 0; i < NTPSEGMENTS; i++) {
            long long diff;  /* 32 bit long is too short for a timespec */
@@ -169,7 +164,7 @@ int main(int argc, char **argv)
          * That is a 200 millSec cycle, minimum 20 milliSec duration
          * we will wait 1 milliSec out of caution
          *
-         * and, of course, nanosleep() may sleep a lot longer than we ask...
+         * and, of course, usleep() may sleep a lot longer than we ask...
         */
        if ( timeout ) {
            /* do not read time unless it matters */
@@ -178,11 +173,7 @@ int main(int argc, char **argv)
                break;
            }
        }
-
-        /* wait 1,000 uSec */
-       delay.tv_sec = 0;
-       delay.tv_nsec = 1000000L;
-       nanosleep(&delay, NULL);
+       (void)usleep((useconds_t)1000);
     } while ( 0 < nsamples );
 
     exit(EXIT_SUCCESS);
diff --git a/ntpshmwrite.c b/ntpshmwrite.c
index a9bfa02..9cb43a2 100644
--- a/ntpshmwrite.c
+++ b/ntpshmwrite.c
@@ -5,9 +5,6 @@
  * see the file COPYING in the distribution root for details.
  */
 
-/* sys/ipc.h needs _XOPEN_SOURCE, 500 means X/Open 1995 */
-#define _XOPEN_SOURCE 500
-
 #include <string.h>
 #include <libgen.h>
 #include <stdbool.h>
diff --git a/serial.c b/serial.c
index 0d68546..0a17007 100644
--- a/serial.c
+++ b/serial.c
@@ -3,9 +3,6 @@
  * BSD terms apply: see the file COPYING in the distribution root for details.
  */
 
-/* cfmakeraw() needs _DEFAULT_SOURCE */
-#define _DEFAULT_SOURCE
-
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/ioctl.h>
@@ -261,7 +258,6 @@ void gpsd_set_speed(struct gps_device_t *session,
                    speed_t speed, char parity, unsigned int stopbits)
 {
     speed_t rate;
-    struct timespec delay;
 
     /*
      * Yes, you can set speeds that aren't in the hunt loop.  If you
@@ -387,11 +383,7 @@ void gpsd_set_speed(struct gps_device_t *session,
         * occasional failure to lock.
         */
        (void)tcflush(session->gpsdata.gps_fd, TCIOFLUSH);
-
-        /* wait 200,000 uSec */
-       delay.tv_sec = 0;
-       delay.tv_nsec = 200000000L;
-       nanosleep(&delay, NULL);
+       (void)usleep(200000);
        (void)tcflush(session->gpsdata.gps_fd, TCIOFLUSH);
     }
     gpsd_log(&session->context->errout, LOG_INF,
diff --git a/shmexport.c b/shmexport.c
index cef94d7..2a0e416 100644
--- a/shmexport.c
+++ b/shmexport.c
@@ -14,10 +14,6 @@ PERMISSIONS
    BSD terms apply: see the file COPYING in the distribution root for details.
 
 ***************************************************************************/
-
-/* sys/ipc.h needs _XOPEN_SOURCE, 500 means X/Open 1995 */
-#define _XOPEN_SOURCE 500
-
 #include <time.h>            /* for time_t */
 #include "gpsd_config.h"
 
diff --git a/timebase.c b/timebase.c
index 227736d..b2e7939 100644
--- a/timebase.c
+++ b/timebase.c
@@ -190,9 +190,6 @@ BSD terms apply: see the file COPYING in the distribution 
root for details.
 
 *****************************************************************************/
 
-/* putenv() needs _XOPEN_SOURCE, 500 means X/Open 1995 */
-#define _XOPEN_SOURCE 500
-
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
diff --git a/timehint.c b/timehint.c
index c8b4bb8..dbbf09a 100644
--- a/timehint.c
+++ b/timehint.c
@@ -8,13 +8,6 @@
  * see the file COPYING in the distribution root for details.
  */
 
-/* nice() needs _XOPEN_SOURCE, 500 means X/Open 1995 */
-#define _XOPEN_SOURCE 500
-/* snprintf() needs __DARWIN_C_LEVEL >= 200112L */
-#define __DARWIN_C_LEVEL 200112L
-/* snprintf() needs _DARWIN_C_SOURCE */
-#define _DARWIN_C_SOURCE
-
 #include <string.h>
 #include <libgen.h>
 #include <stdbool.h>
-- 
2.9.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]