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

This commit is contained in:
Sigrid 2020-08-01 15:23:51 +02:00
parent d287f178aa
commit 88a468f205

View file

@ -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 @@ nanosec(void)
{
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)
if((fasthz = _tos->cyclefreq) == 0){
fasthz = ~0ULL;
else
cycles(&xstart);
}
close(f);
if(fasthz == ~0ULL){
fprint(2, "couldn't get fasthz, falling back to nsec()\n");
fprint(2, "cyclefreq not available, falling back to nsec()\n");
fprint(2, "you might want to disable aux/timesync\n");
return 0;
}