Eliminate native_scno and known_scno

* defs.h (known_scno): Remove.
(sysent): Remove native_scno field.
* process.c [IA64]: Replace known_scno(tcp) with tcp->scno.
(internal_fork) [USE_PROCFS || !LINUX]: Likewise.
* syscall.c: Do not define NR_SYSCALL_BASE.
(known_scno): Remove.
(syscall_fixup_on_sysenter) [USE_PROCFS]: Replace known_scno(tcp)
with tcp->scno.
(trace_syscall_entering) [SVR4 || FREEBSD || SUNOS4]: Likewise.
(syscall_fixup_on_sysexit) [SUNOS4]: Likewise.
diff --git a/defs.h b/defs.h
index 5bf3d8d..f88ae3a 100644
--- a/defs.h
+++ b/defs.h
@@ -610,7 +610,6 @@
 #ifdef USE_PROCFS
 extern int get_scno(struct tcb *);
 #endif
-extern long known_scno(struct tcb *);
 extern long do_ptrace(int request, struct tcb *tcp, void *addr, void *data);
 extern int ptrace_restart(int request, struct tcb *tcp, int sig);
 extern int trace_syscall(struct tcb *);
@@ -742,7 +741,6 @@
 	int	sys_flags;
 	int	(*sys_func)();
 	const char *sys_name;
-	long	native_scno;	/* Match against SYS_* constants.  */
 };
 
 struct ioctlent {
diff --git a/process.c b/process.c
index 8f6bfed..6262edc 100644
--- a/process.c
+++ b/process.c
@@ -475,7 +475,7 @@
 
 	if (exiting(tcp)) {
 #ifdef SYS_rfork
-		if (known_scno(tcp) == SYS_rfork && !(tcp->u_arg[0]&RFPROC))
+		if (tcp->scno == SYS_rfork && !(tcp->u_arg[0]&RFPROC))
 			return 0;
 #endif
 		if (getrval2(tcp))
@@ -562,10 +562,10 @@
 # if defined IA64
 #  define ARG_FLAGS	0
 #  define ARG_STACK	1
-#  define ARG_STACKSIZE	(known_scno(tcp) == SYS_clone2 ? 2 : -1)
-#  define ARG_PTID	(known_scno(tcp) == SYS_clone2 ? 3 : 2)
-#  define ARG_CTID	(known_scno(tcp) == SYS_clone2 ? 4 : 3)
-#  define ARG_TLS	(known_scno(tcp) == SYS_clone2 ? 5 : 4)
+#  define ARG_STACKSIZE	(tcp->scno == SYS_clone2 ? 2 : -1)
+#  define ARG_PTID	(tcp->scno == SYS_clone2 ? 3 : 2)
+#  define ARG_CTID	(tcp->scno == SYS_clone2 ? 4 : 3)
+#  define ARG_TLS	(tcp->scno == SYS_clone2 ? 5 : 4)
 # elif defined S390 || defined S390X || defined CRISV10 || defined CRISV32
 #  define ARG_STACK	0
 #  define ARG_FLAGS	1
@@ -802,7 +802,7 @@
 	int dont_follow = 0;
 
 #ifdef SYS_vfork
-	if (known_scno(tcp) == SYS_vfork) {
+	if (tcp->scno == SYS_vfork) {
 		/* Attempt to make vfork into fork, which we can follow. */
 		if (change_syscall(tcp, SYS_fork) < 0)
 			dont_follow = 1;
diff --git a/syscall.c b/syscall.c
index bbd2e58..c2099a7 100644
--- a/syscall.c
+++ b/syscall.c
@@ -72,7 +72,6 @@
 # include <asm/rse.h>
 #endif
 
-#define NR_SYSCALL_BASE 0
 #ifdef LINUX
 #ifndef ERESTARTSYS
 #define ERESTARTSYS	512
@@ -97,8 +96,6 @@
 /* Ugh. Is this really correct? ARM has no RT signals?! */
 #undef NSIG
 #define NSIG 32
-#undef NR_SYSCALL_BASE
-#define NR_SYSCALL_BASE __NR_SYSCALL_BASE
 #endif
 #endif /* LINUX */
 
@@ -1226,19 +1223,6 @@
 	return 1;
 }
 
-long
-known_scno(struct tcb *tcp)
-{
-	long scno = tcp->scno;
-#if SUPPORTED_PERSONALITIES > 1
-	if (SCNO_IN_RANGE(scno) && sysent[scno].native_scno != 0)
-		scno = sysent[scno].native_scno;
-	else
-#endif
-		scno += NR_SYSCALL_BASE;
-	return scno;
-}
-
 /* Called at each syscall entry.
  * Returns:
  * 0: "ignore this ptrace stop", bail out of trace_syscall() silently.
@@ -1250,7 +1234,7 @@
 syscall_fixup_on_sysenter(struct tcb *tcp)
 {
 #ifdef USE_PROCFS
-	int scno = known_scno(tcp);
+	int scno = tcp->scno;
 
 	if (tcp->status.PR_WHY != PR_SYSENTRY) {
 		if (
@@ -1754,7 +1738,7 @@
 #endif /* SYS_socket_subcall || SYS_ipc_subcall */
 
 #if defined(SVR4) || defined(FREEBSD) || defined(SUNOS4)
-	switch (known_scno(tcp)) {
+	switch (tcp->scno) {
 #ifdef SVR4
 #ifdef SYS_pgrpsys_subcall
 	case SYS_pgrpsys:
@@ -2002,7 +1986,7 @@
 
 #ifdef SUNOS4
 	{
-		int scno = known_scno(tcp);
+		int scno = tcp->scno;
 		if (scno != 0) {
 			if (debug) {
 				/*