Remove initialization of native_scno field

* linux/i386/syscallent.h: Remove native_scno initialization for clone,
fork and vfork.
* linux/ia64/syscallent.h (sys_fork, sys_vfork): Remove redirections
to printargs.
* linux/syscall.h [IA64]: Do not define SYS_fork and SYS_vfork.
* util.c (printcall) [IA64]: Likewise.
(setbpt): Use sys_func to check for clone, fork and vfork syscalls.
diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h
index 46d61f9..83a901c 100644
--- a/linux/i386/syscallent.h
+++ b/linux/i386/syscallent.h
@@ -30,7 +30,7 @@
 
 	{ 0,	0,	sys_restart_syscall,	"restart_syscall" }, /* 0 */
 	{ 1,	TP,	sys_exit,		"_exit",	}, /* 1 */
-	{ 0,	TP,	sys_fork,		"fork", SYS_fork }, /* 2 */
+	{ 0,	TP,	sys_fork,		"fork",		}, /* 2 */
 	{ 3,	TD,	sys_read,		"read",		}, /* 3 */
 	{ 3,	TD,	sys_write,		"write",	}, /* 4 */
 	{ 3,	TD|TF,	sys_open,		"open"		}, /* 5 */
@@ -148,7 +148,7 @@
 	{ 6,	TI,	sys_ipc,		"ipc",		}, /* 117 */
 	{ 1,	TD,	sys_fsync,		"fsync"		}, /* 118 */
 	{ 0,	TS,	sys_sigreturn,		"sigreturn"	}, /* 119 */
-	{ 5,	TP,	sys_clone,		"clone", SYS_clone }, /* 120 */
+	{ 5,	TP,	sys_clone,		"clone"		}, /* 120 */
 	{ 2,	0,	sys_setdomainname,	"setdomainname"	}, /* 121 */
 	{ 1,	0,	sys_uname,		"uname"		}, /* 122 */
 	{ 3,	0,	sys_modify_ldt,		"modify_ldt"	}, /* 123 */
@@ -219,7 +219,7 @@
 	{ 4,	TD|TN,	sys_sendfile,		"sendfile"	}, /* 187 */
 	{ 5,	0,	sys_getpmsg,		"getpmsg"	}, /* 188 */
 	{ 5,	0,	sys_putpmsg,		"putpmsg"	}, /* 189 */
-	{ 0,	TP,	sys_vfork,		"vfork", SYS_vfork }, /* 190 */
+	{ 0,	TP,	sys_vfork,		"vfork"		}, /* 190 */
 	{ 2,	0,	sys_getrlimit,		"getrlimit"	}, /* 191 */
 	{ 6,	TD,	sys_mmap,		"mmap2"		}, /* 192 */
 	{ 3,	TF,	sys_truncate64,		"truncate64"	}, /* 193 */
diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h
index 25f7402..e3beb79 100644
--- a/linux/ia64/syscallent.h
+++ b/linux/ia64/syscallent.h
@@ -37,7 +37,6 @@
 #define sys_getpmsg		printargs
 #define sys_putpmsg		printargs
 #define sys_ugetrlimit		printargs
-#define sys_fork		printargs
 #define sys_waitpid		printargs
 #define sys_time		printargs
 #define sys_break		printargs
@@ -124,7 +123,6 @@
 #define sys_pwrite		printargs
 #define sys_sigaltstack		printargs
 #define sys_sendfile		printargs
-#define sys_vfork		printargs
 #define sys_truncate64		printargs
 #define sys_ftruncate64		printargs
 #define sys_stat64		printargs
@@ -139,7 +137,6 @@
 #undef sys_getpmsg
 #undef sys_putpmsg
 #undef sys_ugetrlimit
-#undef sys_fork
 #undef sys_waitpid
 #undef sys_time
 #undef sys_break
@@ -228,7 +225,6 @@
 #undef sys_pwrite
 #undef sys_sigaltstack
 #undef sys_sendfile
-#undef sys_vfork
 #undef sys_truncate64
 #undef sys_ftruncate64
 #undef sys_stat64
diff --git a/linux/syscall.h b/linux/syscall.h
index de33c10..23c67c7 100644
--- a/linux/syscall.h
+++ b/linux/syscall.h
@@ -332,16 +332,6 @@
 #define SYS_ipc_nsubcalls	25
 #endif /* !(ALPHA || MIPS || HPPA) */
 
-#ifdef IA64
-  /*
-   * IA64 syscall numbers (the only ones available from standard header
-   * files) are disjoint from IA32 syscall numbers.  We need to define
-   * some IA32 specific syscalls here.
-   */
-# define SYS_fork	2
-# define SYS_vfork	190
-#endif /* IA64 */
-
 #if defined(ALPHA) || defined(IA64) || defined(SPARC) || defined(SPARC64)
 int sys_getpagesize();
 #endif
diff --git a/util.c b/util.c
index bd166d2..3e6269f 100644
--- a/util.c
+++ b/util.c
@@ -1415,11 +1415,6 @@
 
 #  ifdef IA64
 
-/* We don't have fork()/vfork() syscalls on ia64 itself, but the ia32
-   subsystem has them for x86... */
-#   define SYS_fork	2
-#   define SYS_vfork	190
-
 typedef unsigned long *arg_setup_state;
 
 static int
@@ -1449,7 +1444,6 @@
 
 #   define arg_finish_change(tcp, state)	0
 
-#   ifdef SYS_fork
 static int
 get_arg0(struct tcb *tcp, arg_setup_state *state, long *valp)
 {
@@ -1477,7 +1471,6 @@
 			      sizeof(long), (void *) valp);
 	return ret;
 }
-#   endif
 
 static int
 set_arg0(struct tcb *tcp, arg_setup_state *state, long val)
@@ -1644,14 +1637,8 @@
 			}
 	}
 
-	switch (known_scno(tcp)) {
-#  ifdef SYS_vfork
-	case SYS_vfork:
-#  endif
-#  ifdef SYS_fork
-	case SYS_fork:
-#  endif
-#  if defined SYS_fork || defined SYS_vfork
+	if (sysent[tcp->scno].sys_func == sys_fork ||
+	    sysent[tcp->scno].sys_func == sys_vfork) {
 		if (arg_setup(tcp, &state) < 0
 		    || get_arg0(tcp, &state, &tcp->inst[0]) < 0
 		    || get_arg1(tcp, &state, &tcp->inst[1]) < 0
@@ -1664,14 +1651,11 @@
 		tcp->u_arg[arg1_index] = 0;
 		tcp->flags |= TCB_BPTSET;
 		return 0;
-#  endif
+	}
 
-	case SYS_clone: ;
-#  ifdef SYS_clone2
-	case SYS_clone2: ;
-#  endif
+	if (sysent[tcp->scno].sys_func == sys_clone) {
 		/* ia64 calls directly `clone (CLONE_VFORK | CLONE_VM)'
-		   contrary to x86 SYS_vfork above.  Even on x86 we turn the
+		   contrary to x86 vfork above.  Even on x86 we turn the
 		   vfork semantics into plain fork - each application must not
 		   depend on the vfork specifics according to POSIX.  We would
 		   hang waiting for the parent resume otherwise.  We need to
@@ -1689,13 +1673,10 @@
 		tcp->inst[0] = tcp->u_arg[arg0_index];
 		tcp->inst[1] = tcp->u_arg[arg1_index];
 		return 0;
-
-	default:
-		fprintf(stderr, "PANIC: setbpt for syscall %ld on %u???\n",
-			tcp->scno, tcp->pid);
-		break;
 	}
 
+	fprintf(stderr, "PANIC: setbpt for syscall %ld on %u???\n",
+		tcp->scno, tcp->pid);
 	return -1;
 }