summaryrefslogtreecommitdiff
path: root/ntpshmread.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2015-02-25 17:28:12 -0500
committerEric S. Raymond <esr@thyrsus.com>2015-02-25 17:28:12 -0500
commit05b3c089bc0ba94281190b453dedbe9adf70d25c (patch)
tree3fe7bebbb0fb12ea82b36626ddbf24c7d80e2830 /ntpshmread.c
parentbf6b99d4440d85c5cbe506f7e1076394e1c96f5c (diff)
downloadgpsd-05b3c089bc0ba94281190b453dedbe9adf70d25c.tar.gz
In gpmon, it was confusing to use 'mode' as a report field that wasn't SHM mode.
Diffstat (limited to 'ntpshmread.c')
-rw-r--r--ntpshmread.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/ntpshmread.c b/ntpshmread.c
index 710dfd33..da449811 100644
--- a/ntpshmread.c
+++ b/ntpshmread.c
@@ -70,14 +70,16 @@ enum segstat_t shm_query(struct shmTime *shm_in, struct shm_stat_t *shm_stat)
clock_gettime(CLOCK_REALTIME, &shm_stat->tvc);
if (shm == NULL) {
- shm_stat->mode = NO_SEGMENT;
+ shm_stat->status = NO_SEGMENT;
return NO_SEGMENT;
}
if (!shm->valid) {
- shm_stat->mode = NOT_READY;
+ shm_stat->status = NOT_READY;
return NOT_READY;
}
+ shm_stat->status = OK;
+
switch (shm->mode) {
case 0:
shm_stat->tvr.tv_sec = shm->receiveTimeStampSec;
@@ -119,8 +121,7 @@ enum segstat_t shm_query(struct shmTime *shm_in, struct shm_stat_t *shm_stat)
shm_stat->tvt.tv_nsec = shm->clockTimeStampUSec * 1000;
cns_new = shm->clockTimeStampNSec;
if (cnt != shm->count) {
- shm_stat->mode = CLASH;
- return CLASH;
+ shm_stat->status = CLASH;
}
/* See the case above for an explanation of the
@@ -138,12 +139,9 @@ enum segstat_t shm_query(struct shmTime *shm_in, struct shm_stat_t *shm_stat)
break;
default:
- shm_stat->mode = BAD_MODE;
- return BAD_MODE;
+ shm_stat->status = BAD_MODE;
break;
}
- shm->valid = 0;
-
/*
* leap field is not a leap offset but a leap notification code.
* The values are magic numbers used by NTP and set by GPSD, if at all, in
@@ -151,8 +149,9 @@ enum segstat_t shm_query(struct shmTime *shm_in, struct shm_stat_t *shm_stat)
*/
shm_stat->leap = shm->leap;
shm_stat->precision = shm->precision;
- shm_stat->mode = OK;
- return OK;
+ shm->valid = 0;
+
+ return shm_stat->status;
}
/* end */