shithub: riscv

Download patch

ref: 88a468f205af2bfdaa015a5bc33424ae0d56de08
parent: d287f178aac4710b11ca24fa312d740518b78a08
author: Sigrid <ftrvxmtrx@gmail.com>
date: Sat Aug 1 11:23:51 EDT 2020

vmx(1): use _tos->cyclefreq (thanks cinap)

--- a/sys/src/cmd/vmx/nanosec.c
+++ b/sys/src/cmd/vmx/nanosec.c
@@ -1,5 +1,6 @@
 #include <u.h>
 #include <libc.h>
+#include <tos.h>
 
 /*
  * nsec() is wallclock and can be adjusted by timesync
@@ -14,28 +15,15 @@
 {
 	static uvlong fasthz, xstart;
 	uvlong x, div;
-	int f, n, i;
-	char tmp[128], *e;
 
 	if(fasthz == ~0ULL)
 		return nsec() - xstart;
 
 	if(fasthz == 0){
-		fasthz = ~0ULL;
 		xstart = nsec();
-		if((f = open("/dev/time", OREAD)) >= 0 && (n = read(f, tmp, sizeof(tmp)-1)) > 2){
-			tmp[n] = 0;
-			e = tmp;
-			for(i = 0; i < 3; i++)
-				strtoll(e, &e, 10);
-			if((fasthz = strtoll(e, nil, 10)) < 1)
-				fasthz = ~0ULL;
-			else
-				cycles(&xstart);
-		}
-		close(f);
-		if(fasthz == ~0ULL){
-			fprint(2, "couldn't get fasthz, falling back to nsec()\n");
+		if((fasthz = _tos->cyclefreq) == 0){
+			fasthz = ~0ULL;
+			fprint(2, "cyclefreq not available, falling back to nsec()\n");
 			fprint(2, "you might want to disable aux/timesync\n");
 			return 0;
 		}