summaryrefslogtreecommitdiff
path: root/sys/src/cmd/aux/gps
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2012-04-24 06:57:02 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2012-04-24 06:57:02 +0200
commit8562240e8c0222a2bf5f666218cbce01bfae0f62 (patch)
tree577e4ceea38d2d59185b0c085ab47c05e7c28aba /sys/src/cmd/aux/gps
parent7e4d9a4bfa2148c07930dd45b4e7d3071ff6180e (diff)
fix more fd <= 0 bugs
Diffstat (limited to 'sys/src/cmd/aux/gps')
-rw-r--r--sys/src/cmd/aux/gps/gpsfs.c32
-rw-r--r--sys/src/cmd/aux/gps/util.c8
2 files changed, 5 insertions, 35 deletions
diff --git a/sys/src/cmd/aux/gps/gpsfs.c b/sys/src/cmd/aux/gps/gpsfs.c
index 62b3073a0..f02be2db9 100644
--- a/sys/src/cmd/aux/gps/gpsfs.c
+++ b/sys/src/cmd/aux/gps/gpsfs.c
@@ -126,6 +126,7 @@ void setline(void);
int getonechar(vlong*);
void getline(char*, int, vlong*);
void putline(char*);
+void rtcset(long t);
int gettime(Fix*);
int getzulu(char *, Fix*);
int getalt(char*, char*, Fix*);
@@ -570,37 +571,6 @@ readraw(Req *r)
return nil;
}
-void
-rtcset(long t)
-{
- static int fd;
- long r;
- int n;
- char buf[32];
-
- if(fd <= 0 && (fd = open("#r/rtc", ORDWR)) < 0){
- fprint(2, "Can't open #r/rtc: %r\n");
- return;
- }
- n = read(fd, buf, sizeof buf - 1);
- if(n <= 0){
- fprint(2, "Can't read #r/rtc: %r\n");
- return;
- }
- buf[n] = '\0';
- r = strtol(buf, nil, 0);
- if(r <= 0){
- fprint(2, "ridiculous #r/rtc: %ld\n", r);
- return;
- }
- if(r - t > 1 || t - r > 0){
- seek(fd, 0, 0);
- fprint(fd, "%ld", t);
- fprint(2, "correcting #r/rtc: %ld → %ld\n", r, t);
- }
- seek(fd, 0, 0);
-}
-
int
gettime(Fix *f){
/* Convert zulu time and date to Plan9 time(2) */
diff --git a/sys/src/cmd/aux/gps/util.c b/sys/src/cmd/aux/gps/util.c
index 44ae03da9..799a7beb1 100644
--- a/sys/src/cmd/aux/gps/util.c
+++ b/sys/src/cmd/aux/gps/util.c
@@ -142,15 +142,15 @@ strtopos(char *p, char **ep)
return pl;
}
-static void
-rtcset(long t) /* We may use this some day */
+void
+rtcset(long t)
{
- static int fd;
+ static int fd = -1;
long r;
int n;
char buf[32];
- if(fd <= 0 && (fd = open("#r/rtc", ORDWR)) < 0){
+ if(fd < 0 && (fd = open("#r/rtc", ORDWR)) < 0){
fprint(2, "Can't open #r/rtc: %r\n");
return;
}