summaryrefslogtreecommitdiff
path: root/sys/src/9/port
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2014-05-20 05:06:31 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2014-05-20 05:06:31 +0200
commit3207e8b6a4339f39e2261d1f1878e8049b65c23c (patch)
tree07059a72dc0bc5fe6ef2c47fcc69fb5f584f670b /sys/src/9/port
parent7abf926bcf5a4f301a9ab48173093524196fd8ce (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.c4
-rw-r--r--sys/src/9/port/sysfile.c1
-rw-r--r--sys/src/9/port/sysproc.c13
-rw-r--r--sys/src/9/port/systab.h166
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]);