summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2011-10-09 07:59:31 -0400
committerEric S. Raymond <esr@thyrsus.com>2011-10-09 07:59:31 -0400
commitafe4984bb17a7a72764b84d7b959dc0431d0a130 (patch)
treeb95a77a2619bce7d7e7b4f28a41e8520c0c6eda2
parent8d2eba18012a75cdf2b55ceee824fec684cd2e3b (diff)
downloadgpsd-afe4984bb17a7a72764b84d7b959dc0431d0a130.tar.gz
Ensure that enabling timing won't break object file compatibility.
-rw-r--r--gps.h5
-rw-r--r--gps_json.h4
-rw-r--r--gpsd.c4
-rw-r--r--gpsd.h-tail4
-rw-r--r--gpsd_json.c12
-rw-r--r--gpsdecode.c2
-rw-r--r--libgpsd_core.c8
7 files changed, 20 insertions, 19 deletions
diff --git a/gps.h b/gps.h
index 84f88b95..1717a1e9 100644
--- a/gps.h
+++ b/gps.h
@@ -1689,11 +1689,6 @@ struct gps_data_t {
/* should be moved to privdata sometday */
char tag[MAXTAGLEN+1]; /* tag of last sentence processed */
-#ifdef TIMING_ENABLE
- timestamp_t sor; /* timestamp start of this reporting cycle */
- unsigned long chars; /* characters in the cycle */
-#endif /* TIMING_ENABLE */
-
/* pack things never reported together to reduce structure size */
#define UNION_SET (RTCM2_SET|RTCM3_SET|SUBFRAME_SET|AIS_SET|ATTITUDE_SET|VERSION_SET|DEVICELIST_SET|LOGMESSAGE_SET|ERROR_SET|GST_SET|VERSION_SET)
union {
diff --git a/gps_json.h b/gps_json.h
index e3419928..91306097 100644
--- a/gps_json.h
+++ b/gps_json.h
@@ -13,10 +13,10 @@
#ifdef __cplusplus
extern "C" {
#endif
-void json_data_report(gps_mask_t, struct gps_data_t *, struct policy_t *,
+void json_data_report(gps_mask_t, struct gps_device_t *, struct policy_t *,
/*@out@*/char *, size_t);
char *json_stringify(/*@out@*/char *, size_t, /*@in@*/const char *);
-void json_tpv_dump(const struct gps_data_t *,
+void json_tpv_dump(const struct gps_device_t *,
const struct policy_t *, /*@out@*/char *, size_t);
void json_noise_dump(const struct gps_data_t *, /*@out@*/char *, size_t);
void json_sky_dump(const struct gps_data_t *, /*@out@*/char *, size_t);
diff --git a/gpsd.c b/gpsd.c
index fdcf622e..5ed59173 100644
--- a/gpsd.c
+++ b/gpsd.c
@@ -1227,7 +1227,7 @@ static void handle_request(struct subscriber_t *sub,
for (devp = devices; devp < devices + MAXDEVICES; devp++) {
if (allocated_device(devp) && subscribed(sub, devp)) {
if ((devp->observed & GPS_TYPEMASK) != 0) {
- json_tpv_dump(&devp->gpsdata, &sub->policy,
+ json_tpv_dump(devp, &sub->policy,
reply + strlen(reply),
replylen - strlen(reply));
rstrip(reply);
@@ -1629,7 +1629,7 @@ static void consume_packets(struct gps_device_t *device)
char buf[GPS_JSON_RESPONSE_MAX * 4];
json_data_report(changed,
- &device->gpsdata, &sub->policy,
+ device, &sub->policy,
buf, sizeof(buf));
if (buf[0] != '\0')
(void)throttled_write(sub, buf, strlen(buf));
diff --git a/gpsd.h-tail b/gpsd.h-tail
index 309e34d9..acff12f4 100644
--- a/gpsd.h-tail
+++ b/gpsd.h-tail
@@ -399,6 +399,10 @@ struct gps_device_t {
timestamp_t releasetime;
bool zerokill;
timestamp_t reawake;
+#ifdef TIMING_ENABLE
+ timestamp_t sor; /* timestamp start of this reporting cycle */
+ unsigned long chars; /* characters in the cycle */
+#endif /* TIMING_ENABLE */
#ifdef NTPSHM_ENABLE
int shmindex;
timestamp_t last_fixtime; /* so updates happen once */
diff --git a/gpsd_json.c b/gpsd_json.c
index f3311d06..e89012a6 100644
--- a/gpsd_json.c
+++ b/gpsd_json.c
@@ -120,11 +120,12 @@ void json_version_dump( /*@out@*/ char *reply, size_t replylen)
#endif /* TIMING_ENABLE */
-void json_tpv_dump(const struct gps_data_t *gpsdata,
+void json_tpv_dump(const struct gps_device_t *session,
const struct policy_t *policy CONDITIONALLY_UNUSED,
/*@out@*/ char *reply, size_t replylen)
{
char tbuf[JSON_DATE_MAX+1];
+ const struct gps_data_t *gpsdata = &session->gpsdata;
#ifdef TIMING_ENABLE
timestamp_t rtime = timestamp();
#endif /* TIMING_ENABLE */
@@ -215,8 +216,8 @@ void json_tpv_dump(const struct gps_data_t *gpsdata,
(void)snprintf(reply + strlen(reply),
replylen - strlen(reply),
"\"sor\":%f,\"chars\":%lu,\"sats\":%2d,\"rtime\":%f,",
- gpsdata->sor,
- gpsdata->chars,
+ session->sor,
+ session->chars,
gpsdata->satellites_used,
rtime);
#endif /* TIMING_ENABLE */
@@ -2935,15 +2936,16 @@ void json_att_dump(const struct gps_data_t *gpsdata,
#endif /* COMPASS_ENABLE */
void json_data_report(gps_mask_t changed,
- struct gps_data_t *datap,
+ struct gps_device_t *session,
struct policy_t *policy,
/*@out@*/char *buf, size_t buflen)
/* report a session state in JSON */
{
+ struct gps_data_t *datap = &session->gpsdata;
buf[0] = '\0';
if ((changed & REPORT_IS) != 0) {
- json_tpv_dump(datap, policy, buf+strlen(buf), buflen-strlen(buf));
+ json_tpv_dump(session, policy, buf+strlen(buf), buflen-strlen(buf));
}
if ((changed & GST_SET) != 0) {
diff --git a/gpsdecode.c b/gpsdecode.c
index 7649518b..7027cc6c 100644
--- a/gpsdecode.c
+++ b/gpsdecode.c
@@ -427,7 +427,7 @@ static void decode(FILE *fpin, FILE*fpout)
#ifdef SOCKET_EXPORT_ENABLE
else
json_data_report(changed,
- &session.gpsdata, &policy,
+ &session, &policy,
buf, sizeof(buf));
#endif /* SOCKET_EXPORT_ENABLE */
(void)fputs(buf, fpout);
diff --git a/libgpsd_core.c b/libgpsd_core.c
index 4fe943af..88b37854 100644
--- a/libgpsd_core.c
+++ b/libgpsd_core.c
@@ -144,8 +144,8 @@ void gpsd_init(struct gps_device_t *session, struct gps_context_t *context,
session->mag_var = NAN;
session->gpsdata.dev.cycle = session->gpsdata.dev.mincycle = 1;
#ifdef TIMING_ENABLE
- session->gpsdata.sor = 0.0;
- session->gpsdata.chars = 0;
+ session->sor = 0.0;
+ session->chars = 0;
#endif /* TIMING_ENABLE */
/* tty-level initialization */
@@ -866,7 +866,7 @@ gps_mask_t gpsd_poll(struct gps_device_t *session)
gpsd_report(LOG_WARN, "cycle-start detector failed.\n");
else if (gap > quiet_time) {
gpsd_report(LOG_PROG, "transmission pause of %f\n", gap);
- session->gpsdata.sor = now;
+ session->sor = now;
session->packet.start_char = session->packet.char_counter;
}
}
@@ -1005,7 +1005,7 @@ gps_mask_t gpsd_poll(struct gps_device_t *session)
#ifdef TIMING_ENABLE
/* are we going to generate a report? if so, count characters */
if ((received & REPORT_IS) != 0) {
- session->gpsdata.chars = session->packet.char_counter - session->packet.start_char;
+ session->chars = session->packet.char_counter - session->packet.start_char;
}
#endif /* TIMING_ENABLE */