vi: implement _nsec syscall
This commit is contained in:
parent
c8008e1ffd
commit
8348a233ae
1 changed files with 19 additions and 1 deletions
|
@ -65,6 +65,7 @@ char *sysctab[]={
|
||||||
[AWAIT] "Await",
|
[AWAIT] "Await",
|
||||||
[PREAD] "Pread",
|
[PREAD] "Pread",
|
||||||
[PWRITE] "Pwrite",
|
[PWRITE] "Pwrite",
|
||||||
|
[_NSEC] "_nsec",
|
||||||
};
|
};
|
||||||
|
|
||||||
void sys1(void) { Bprint(bioout, "No system call %s\n", sysctab[reg.r[REGRET]]); exits(0); }
|
void sys1(void) { Bprint(bioout, "No system call %s\n", sysctab[reg.r[REGRET]]); exits(0); }
|
||||||
|
@ -638,6 +639,22 @@ syssegflush(void)
|
||||||
reg.r[REGRET] = 0;
|
reg.r[REGRET] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
sys_nsec(void)
|
||||||
|
{
|
||||||
|
ulong ta;
|
||||||
|
vlong t;
|
||||||
|
|
||||||
|
ta = getmem_w(reg.r[REGSP]+4);
|
||||||
|
if(sysdbg)
|
||||||
|
itrace("_nsec(%lux)", ta);
|
||||||
|
|
||||||
|
t = nsec();
|
||||||
|
|
||||||
|
putmem_w(ta, t >> 32);
|
||||||
|
putmem_w(ta+4, t);
|
||||||
|
}
|
||||||
|
|
||||||
void sysfversion(void) { Bprint(bioout, "No system call %s\n", sysctab[reg.r[REGRET]]); exits(0); }
|
void sysfversion(void) { Bprint(bioout, "No system call %s\n", sysctab[reg.r[REGRET]]); exits(0); }
|
||||||
void sysfsession(void) { Bprint(bioout, "No system call %s\n", sysctab[reg.r[REGRET]]); exits(0); }
|
void sysfsession(void) { Bprint(bioout, "No system call %s\n", sysctab[reg.r[REGRET]]); exits(0); }
|
||||||
void sysfauth(void) { Bprint(bioout, "No system call %s\n", sysctab[reg.r[REGRET]]); exits(0); }
|
void sysfauth(void) { Bprint(bioout, "No system call %s\n", sysctab[reg.r[REGRET]]); exits(0); }
|
||||||
|
@ -710,6 +727,7 @@ void (*systab[])(void) ={
|
||||||
[AWAIT] sysawait,
|
[AWAIT] sysawait,
|
||||||
[PREAD] syspread,
|
[PREAD] syspread,
|
||||||
[PWRITE] syspwrite,
|
[PWRITE] syspwrite,
|
||||||
|
[_NSEC] sys_nsec,
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -719,7 +737,7 @@ Ssyscall(ulong inst)
|
||||||
|
|
||||||
USED(inst);
|
USED(inst);
|
||||||
call = reg.r[REGRET];
|
call = reg.r[REGRET];
|
||||||
if(call < 0 || call > PWRITE || systab[call] == nil) {
|
if(call < 0 || call > _NSEC || systab[call] == nil) {
|
||||||
Bprint(bioout, "Bad system call\n");
|
Bprint(bioout, "Bad system call\n");
|
||||||
dumpreg();
|
dumpreg();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue