summaryrefslogtreecommitdiff
path: root/driver_sirf.c
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2010-04-18 21:23:42 -0700
committerGary E. Miller <gem@rellim.com>2010-04-18 21:23:42 -0700
commit0e7ff3dcd0e44e9b0b556e1770cc55e6ac723d68 (patch)
treeb9c4ce369c11e4b91714e1c3cd582e38fbae6ad6 /driver_sirf.c
parent948770e120fe7028ed0f65c539b9dda129ee2a31 (diff)
downloadgpsd-0e7ff3dcd0e44e9b0b556e1770cc55e6ac723d68.tar.gz
Eliminate a lot of private copies of gps_tow for one global copy in
sesion->context.
Diffstat (limited to 'driver_sirf.c')
-rw-r--r--driver_sirf.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/driver_sirf.c b/driver_sirf.c
index 6d426ab1..2d2d676a 100644
--- a/driver_sirf.c
+++ b/driver_sirf.c
@@ -471,12 +471,12 @@ static gps_mask_t sirf_msg_svinfo(struct gps_device_t *session,
gpsd_zero_satellites(&session->gpsdata);
session->context->gps_week = getbesw(buf, 1);
+ session->context->gps_tow = getbeul(buf, 3) * 1e-2;
/*@ ignore @*//*@ splint is confused @ */
session->gpsdata.skyview_time
=
- gpstime_to_unix( session->context->gps_week,
- getbeul(buf,
- 3) * 1e-2) - session->context->leap_seconds;
+ gpstime_to_unix( session->context->gps_week, session->context->gps_tow)
+ - session->context->leap_seconds;
/*@ end @*/
for (i = st = 0; i < SIRF_CHANNELS; i++) {
int off = 8 + 15 * i;
@@ -614,9 +614,10 @@ static gps_mask_t sirf_msg_navsol(struct gps_device_t *session,
/* byte 20 is HDOP, see below */
/* byte 21 is "mode 2", not clear how to interpret that */
session->context->gps_week = getbesw(buf, 22);
+ session->context->gps_tow = getbeul(buf, 24) * 1e-2;
/*@ ignore @*//*@ splint is confused @ */
session->newdata.time =
- gpstime_to_unix(getbesw(buf, 22), getbeul(buf, 24) * 1e-2) -
+ gpstime_to_unix(session->context->gps_week, session->context->gps_tow) -
session->context->leap_seconds;
/*@ end @*/
#ifdef NTPSHM_ENABLE