summaryrefslogtreecommitdiff
path: root/driver_garmin.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2010-04-13 14:18:14 -0400
committerEric S. Raymond <esr@thyrsus.com>2010-04-13 14:18:14 -0400
commitddc34f3c17cab4fe29e1adffad81f006fbf0d632 (patch)
tree9704f8451717da108587c4e523a107bd71a67c13 /driver_garmin.c
parentacfef8f978a6a95880fb2058bc3fc7e0c4be3de8 (diff)
downloadgpsd-ddc34f3c17cab4fe29e1adffad81f006fbf0d632.tar.gz
Properly guard the USB-garmin probe.
Diffstat (limited to 'driver_garmin.c')
-rw-r--r--driver_garmin.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/driver_garmin.c b/driver_garmin.c
index 5a69c2c7..c3b3b761 100644
--- a/driver_garmin.c
+++ b/driver_garmin.c
@@ -817,11 +817,15 @@ static void Build_Send_SER_Packet( struct gps_device_t *session,
*/
static bool garmin_usb_detect(struct gps_device_t *session)
{
-
+#if defined(__linux__) || defined(S_SPLINT_S)
FILE *fp = NULL;
char buf[256];
bool ok = false;
+ /* only perform this check if we're looking at a USB-serial device */
+ if (session->sourcetype != source_usb)
+ return false;
+
/* check for garmin USB serial driver -- very Linux-specific */
if (access("/sys/module/garmin_gps", R_OK) != 0) {
gpsd_report(LOG_WARN, "Garmin: garmin_gps Linux USB module not active.\n");
@@ -881,6 +885,9 @@ static bool garmin_usb_detect(struct gps_device_t *session)
// expect no return packet !?
return true;
+#else
+ return false;
+#endif /* __linux__ */
}
static void garmin_event_hook(struct gps_device_t *session, event_t event)