diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-05-20 05:06:31 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-05-20 05:06:31 +0200 |
commit | 3207e8b6a4339f39e2261d1f1878e8049b65c23c (patch) | |
tree | 07059a72dc0bc5fe6ef2c47fcc69fb5f584f670b /sys/src/9/port | |
parent | 7abf926bcf5a4f301a9ab48173093524196fd8ce (diff) |
add _nsec() syscall 53 for binary compatibility with labs distribution
the new syscall is added under the symbol _nsec() for
binary compatibility.
nsec() is still a library function reading /dev/bintime.
Diffstat (limited to 'sys/src/9/port')
-rw-r--r-- | sys/src/9/port/syscallfmt.c | 4 | ||||
-rw-r--r-- | sys/src/9/port/sysfile.c | 1 | ||||
-rw-r--r-- | sys/src/9/port/sysproc.c | 13 | ||||
-rw-r--r-- | sys/src/9/port/systab.h | 166 |
4 files changed, 18 insertions, 166 deletions
diff --git a/sys/src/9/port/syscallfmt.c b/sys/src/9/port/syscallfmt.c index 3d1753b02..803481835 100644 --- a/sys/src/9/port/syscallfmt.c +++ b/sys/src/9/port/syscallfmt.c @@ -297,6 +297,10 @@ syscallfmt(ulong syscallno, uintptr pc, va_list list) fmtprint(&fmt, " %lld", vl); } break; + case _NSEC: + v = va_arg(list, vlong*); + fmtprint(&fmt, "%#p", v); + break; } a = fmtstrflush(&fmt); diff --git a/sys/src/9/port/sysfile.c b/sys/src/9/port/sysfile.c index 260b324ad..9dfeb5371 100644 --- a/sys/src/9/port/sysfile.c +++ b/sys/src/9/port/sysfile.c @@ -879,6 +879,7 @@ sysseek(va_list list) vlong n, *v; v = va_arg(list, vlong*); + evenaddr((uintptr)v); validaddr((uintptr)v, sizeof(vlong), 1); fd = va_arg(list, int); diff --git a/sys/src/9/port/sysproc.c b/sys/src/9/port/sysproc.c index 5a602112a..fbe4f2fbc 100644 --- a/sys/src/9/port/sysproc.c +++ b/sys/src/9/port/sysproc.c @@ -1182,3 +1182,16 @@ syssemrelease(va_list list) error(Ebadarg); return (uintptr)semrelease(s, addr, delta); } + +/* For binary compatibility */ +uintptr +sys_nsec(va_list list) +{ + vlong *v; + + v = va_arg(list, vlong*); + evenaddr((uintptr)v); + validaddr((uintptr)v, sizeof(vlong), 1); + *v = todget(nil); + return 0; +} diff --git a/sys/src/9/port/systab.h b/sys/src/9/port/systab.h deleted file mode 100644 index 3ac2e960a..000000000 --- a/sys/src/9/port/systab.h +++ /dev/null @@ -1,166 +0,0 @@ -#include "/sys/src/libc/9syscall/sys.h" - -typedef uintptr Syscall(va_list); - -Syscall sysr1; -Syscall sys_errstr; -Syscall sysbind; -Syscall syschdir; -Syscall sysclose; -Syscall sysdup; -Syscall sysalarm; -Syscall sysexec; -Syscall sysexits; -Syscall sys_fsession; -Syscall sysfauth; -Syscall sys_fstat; -Syscall syssegbrk; -Syscall sys_mount; -Syscall sysopen; -Syscall sys_read; -Syscall sysoseek; -Syscall syssleep; -Syscall sys_stat; -Syscall sysrfork; -Syscall sys_write; -Syscall syspipe; -Syscall syscreate; -Syscall sysfd2path; -Syscall sysbrk_; -Syscall sysremove; -Syscall sys_wstat; -Syscall sys_fwstat; -Syscall sysnotify; -Syscall sysnoted; -Syscall syssegattach; -Syscall syssegdetach; -Syscall syssegfree; -Syscall syssegflush; -Syscall sysrendezvous; -Syscall sysunmount; -Syscall sys_wait; -Syscall syssemacquire; -Syscall syssemrelease; -Syscall sysseek; -Syscall sysfversion; -Syscall syserrstr; -Syscall sysstat; -Syscall sysfstat; -Syscall syswstat; -Syscall sysfwstat; -Syscall sysmount; -Syscall sysawait; -Syscall syspread; -Syscall syspwrite; -Syscall systsemacquire; -Syscall sysdeath; - -Syscall *systab[]={ - [SYSR1] sysr1, - [_ERRSTR] sys_errstr, - [BIND] sysbind, - [CHDIR] syschdir, - [CLOSE] sysclose, - [DUP] sysdup, - [ALARM] sysalarm, - [EXEC] sysexec, - [EXITS] sysexits, - [_FSESSION] sys_fsession, - [FAUTH] sysfauth, - [_FSTAT] sys_fstat, - [SEGBRK] syssegbrk, - [_MOUNT] sys_mount, - [OPEN] sysopen, - [_READ] sys_read, - [OSEEK] sysoseek, - [SLEEP] syssleep, - [_STAT] sys_stat, - [RFORK] sysrfork, - [_WRITE] sys_write, - [PIPE] syspipe, - [CREATE] syscreate, - [FD2PATH] sysfd2path, - [BRK_] sysbrk_, - [REMOVE] sysremove, - [_WSTAT] sys_wstat, - [_FWSTAT] sys_fwstat, - [NOTIFY] sysnotify, - [NOTED] sysnoted, - [SEGATTACH] syssegattach, - [SEGDETACH] syssegdetach, - [SEGFREE] syssegfree, - [SEGFLUSH] syssegflush, - [RENDEZVOUS] sysrendezvous, - [UNMOUNT] sysunmount, - [_WAIT] sys_wait, - [SEMACQUIRE] syssemacquire, - [SEMRELEASE] syssemrelease, - [SEEK] sysseek, - [FVERSION] sysfversion, - [ERRSTR] syserrstr, - [STAT] sysstat, - [FSTAT] sysfstat, - [WSTAT] syswstat, - [FWSTAT] sysfwstat, - [MOUNT] sysmount, - [AWAIT] sysawait, - [PREAD] syspread, - [PWRITE] syspwrite, - [TSEMACQUIRE] systsemacquire, -}; - -char *sysctab[]={ - [SYSR1] "Running", - [_ERRSTR] "_errstr", - [BIND] "Bind", - [CHDIR] "Chdir", - [CLOSE] "Close", - [DUP] "Dup", - [ALARM] "Alarm", - [EXEC] "Exec", - [EXITS] "Exits", - [_FSESSION] "_fsession", - [FAUTH] "Fauth", - [_FSTAT] "_fstat", - [SEGBRK] "Segbrk", - [_MOUNT] "_mount", - [OPEN] "Open", - [_READ] "_read", - [OSEEK] "Oseek", - [SLEEP] "Sleep", - [_STAT] "_stat", - [RFORK] "Rfork", - [_WRITE] "_write", - [PIPE] "Pipe", - [CREATE] "Create", - [FD2PATH] "Fd2path", - [BRK_] "Brk", - [REMOVE] "Remove", - [_WSTAT] "_wstat", - [_FWSTAT] "_fwstat", - [NOTIFY] "Notify", - [NOTED] "Noted", - [SEGATTACH] "Segattach", - [SEGDETACH] "Segdetach", - [SEGFREE] "Segfree", - [SEGFLUSH] "Segflush", - [RENDEZVOUS] "Rendez", - [UNMOUNT] "Unmount", - [_WAIT] "_wait", - [SEMACQUIRE] "Semacquire", - [SEMRELEASE] "Semrelease", - [SEEK] "Seek", - [FVERSION] "Fversion", - [ERRSTR] "Errstr", - [STAT] "Stat", - [FSTAT] "Fstat", - [WSTAT] "Wstat", - [FWSTAT] "Fwstat", - [MOUNT] "Mount", - [AWAIT] "Await", - [PREAD] "Pread", - [PWRITE] "Pwrite", - [TSEMACQUIRE] "Tsemacquire", -}; - -int nsyscall = (sizeof systab/sizeof systab[0]); |