From 8da5412c9a827ad576859f1d664152c53c42dff2 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Fri, 5 Feb 1999 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1999-02-05 --- pc/clock.c | 13 +++++++++++++ pc/fns.h | 1 + pc/mem.h | 3 +-- port/devcons.c | 4 ++-- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/pc/clock.c b/pc/clock.c index b4e3a5cd7e7b5caff2f99d77d548f33c04848b8a..a036d7efd41ee324490a55f963cca8e2a0347869 100644 --- a/pc/clock.c +++ b/pc/clock.c @@ -95,3 +95,16 @@ microdelay(int microsecs) microsecs = 1; aamloop(microsecs); } + +ulong +TK2MS(ulong ticks) +{ + uvlong t, hz; + + t = ticks; + hz = HZ; + t *= 1000L; + t = t/hz; + ticks = t; + return ticks; +} diff --git a/pc/fns.h b/pc/fns.h index 453536699cfcc77bd053149abf49472b34694ead..ff0553ca75dcba8928910ec2b4e4929e9cc4a745 100644 --- a/pc/fns.h +++ b/pc/fns.h @@ -110,6 +110,7 @@ void vectortable(void); void wrmsr(int, vlong); void wbflush(void); int xchgw(ushort*, int); +ulong TK2MS(ulong); /* ticks to milliseconds */ #define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1])) #define getcallerpc(x) (((ulong*)(&x))[-1]) diff --git a/pc/mem.h b/pc/mem.h index 6bdd05aad1d00088aac49327c4a0f5e4966b6e1d..9c47d662d3f687de3b680ecfe06aff32ade2e4ad 100644 --- a/pc/mem.h +++ b/pc/mem.h @@ -24,8 +24,7 @@ #define HZ (100) /* clock frequency */ #define MS2HZ (1000/HZ) /* millisec per clock tick */ #define TK2SEC(t) ((t)/HZ) /* ticks to seconds */ -#define TK2MS(t) ((t)*MS2HZ) /* ticks to milliseconds */ -#define MS2TK(t) ((t)/MS2HZ) /* milliseconds to ticks */ +#define MS2TK(t) (((t)*HZ)/1000) /* milliseconds to ticks */ /* * Fundamental addresses diff --git a/port/devcons.c b/port/devcons.c index 31fa67e7bf48cc9e2cccc24f0a0492166e0d9e9c..69cec5d75e0b6c2eb4aab78974b54eef3f75ae78 100644 --- a/port/devcons.c +++ b/port/devcons.c @@ -604,7 +604,7 @@ consread(Chan *c, void *buf, long n, vlong off) return readnum((ulong)offset, buf, n, up->parentpid, NUMSIZE); case Qtime: - return readnum((ulong)offset, buf, n, rtctime(), 12); + return readnum((ulong)offset, buf, n, boottime+TK2SEC(MACHP(0)->ticks), 12); case Qclock: k = offset; @@ -777,7 +777,7 @@ conswrite(Chan *c, void *va, long n, vlong off) break; case Qtime: - if(n<=0 || (boottime != 0 && !iseve())) /* write once file */ + if(n<=0 || !iseve()) return 0; if(n >= sizeof cbuf) n = sizeof cbuf - 1;