[PATCH] -mminimal-toc removal 5: Embed r2 in syscall table

Anton Blanchard anton at samba.org
Wed Aug 25 00:29:33 EST 2004


Alan tells me foo at tocbase has been around since last year, so lets
save ourselves a load and store the pc and r2 directly in the syscall
table.

Signed-off-by: Anton Blanchard <anton at samba.org>

---

 mminimal_toc_die_die_die-anton/arch/ppc64/kernel/entry.S  |    8
 mminimal_toc_die_die_die-anton/arch/ppc64/kernel/misc.S   | 1080 +++++++-------
 mminimal_toc_die_die_die-anton/include/asm-ppc64/unistd.h |    2
 3 files changed, 547 insertions(+), 543 deletions(-)

diff -puN arch/ppc64/kernel/misc.S~mminimal_toc_die_die_die_5 arch/ppc64/kernel/misc.S
--- mminimal_toc_die_die_die/arch/ppc64/kernel/misc.S~mminimal_toc_die_die_die_5	2004-08-24 23:40:58.783048356 +1000
+++ mminimal_toc_die_die_die-anton/arch/ppc64/kernel/misc.S	2004-08-25 00:08:14.888151052 +1000
@@ -606,547 +606,551 @@ _GLOBAL(kernel_thread)
 #define ppc_rtas	sys_ni_syscall
 #endif

+#define SYSCALL_ENTRY(ENTRY) \
+	.llong . ## ENTRY; \
+	.llong . ## ENTRY at tocbase
+
 /* Why isn't this a) automatic, b) written in 'C'? */
 	.balign 8
 _GLOBAL(sys_call_table32)
-	.llong sys_restart_syscall	/* 0 */
-	.llong sys_exit
-	.llong ppc_fork
-	.llong sys_read
-	.llong sys_write
-	.llong sys32_open		/* 5 */
-	.llong sys_close
-	.llong sys32_waitpid
-	.llong sys32_creat
-	.llong sys_link
-	.llong sys_unlink      	/* 10 */
-	.llong sys32_execve
-	.llong sys_chdir
-	.llong sys32_time
-	.llong sys_mknod
-	.llong sys_chmod		/* 15 */
-	.llong sys_lchown
-	.llong sys_ni_syscall		/* old break syscall */
-	.llong sys_ni_syscall		/* old stat syscall */
-	.llong ppc32_lseek
-	.llong sys_getpid              /* 20 */
-	.llong compat_sys_mount
-	.llong sys_oldumount
-	.llong sys_setuid
-	.llong sys_getuid
-	.llong ppc64_sys32_stime       /* 25 */
-	.llong sys32_ptrace
-	.llong sys_alarm
-	.llong sys_ni_syscall		/* old fstat syscall */
-	.llong sys32_pause
-	.llong compat_sys_utime		/* 30 */
-	.llong sys_ni_syscall		/* old stty syscall */
-	.llong sys_ni_syscall		/* old gtty syscall */
-	.llong sys32_access
-	.llong sys32_nice
-	.llong sys_ni_syscall		/* 35 - old ftime syscall */
-	.llong sys_sync
-	.llong sys32_kill
-	.llong sys_rename
-	.llong sys32_mkdir
-	.llong sys_rmdir		/* 40 */
-	.llong sys_dup
-	.llong sys_pipe
-	.llong compat_sys_times
-	.llong sys_ni_syscall		/* old prof syscall */
-	.llong sys_brk			/* 45 */
-	.llong sys_setgid
-	.llong sys_getgid
-	.llong sys_signal
-	.llong sys_geteuid
-	.llong sys_getegid		/* 50 */
-	.llong sys_acct
-	.llong sys_umount
-	.llong sys_ni_syscall		/* old lock syscall */
-	.llong compat_sys_ioctl
-	.llong compat_sys_fcntl		/* 55 */
-	.llong sys_ni_syscall		/* old mpx syscall */
-	.llong sys32_setpgid
-	.llong sys_ni_syscall		/* old ulimit syscall */
-	.llong sys32_olduname
-	.llong sys32_umask		/* 60 */
-	.llong sys_chroot
-	.llong sys_ustat
-	.llong sys_dup2
-	.llong sys_getppid
-	.llong sys_getpgrp	        /* 65 */
-	.llong sys_setsid
-	.llong sys32_sigaction
-	.llong sys_sgetmask
-	.llong sys32_ssetmask
-	.llong sys_setreuid	        /* 70 */
-	.llong sys_setregid
-	.llong ppc32_sigsuspend
-	.llong compat_sys_sigpending
-	.llong sys32_sethostname
-	.llong compat_sys_setrlimit	        /* 75 */
-	.llong compat_sys_old_getrlimit
-	.llong compat_sys_getrusage
-	.llong sys32_gettimeofday
-	.llong sys32_settimeofday
-	.llong sys32_getgroups	        /* 80 */
-	.llong sys32_setgroups
-	.llong sys_ni_syscall		/* old select syscall */
-	.llong sys_symlink
-	.llong sys_ni_syscall		/* old lstat syscall */
-	.llong sys32_readlink	        /* 85 */
-	.llong sys_uselib
-	.llong sys_swapon
-	.llong sys_reboot
-	.llong old32_readdir
-	.llong sys_mmap		/* 90 */
-	.llong sys_munmap
-	.llong sys_truncate
-	.llong sys_ftruncate
-	.llong sys_fchmod
-	.llong sys_fchown              /* 95 */
-	.llong sys32_getpriority
-	.llong sys32_setpriority
-	.llong sys_ni_syscall		/* old profil syscall */
-	.llong compat_sys_statfs
-	.llong compat_sys_fstatfs		/* 100 */
-	.llong sys_ni_syscall		/* old ioperm syscall */
-	.llong compat_sys_socketcall
-	.llong sys32_syslog
-	.llong compat_sys_setitimer
-	.llong compat_sys_getitimer		/* 105 */
-	.llong compat_sys_newstat
-	.llong compat_sys_newlstat
-	.llong compat_sys_newfstat
-	.llong sys_uname
-	.llong sys_ni_syscall		/* 110 old iopl syscall */
-	.llong sys_vhangup
-	.llong sys_ni_syscall		/* old idle syscall */
-	.llong sys_ni_syscall		/* old vm86 syscall */
-	.llong compat_sys_wait4
-	.llong sys_swapoff		/* 115 */
-	.llong sys32_sysinfo
-	.llong sys32_ipc
-	.llong sys_fsync
-	.llong ppc32_sigreturn
-	.llong ppc_clone		/* 120 */
-	.llong sys32_setdomainname
-	.llong ppc64_newuname
-	.llong sys_ni_syscall		/* old modify_ldt syscall */
-	.llong sys32_adjtimex
-	.llong sys_mprotect		/* 125 */
-	.llong compat_sys_sigprocmask
-	.llong sys_ni_syscall		/* old create_module syscall */
-	.llong sys_init_module
-	.llong sys_delete_module
-	.llong sys_ni_syscall		/* 130 old get_kernel_syms syscall */
-	.llong sys_quotactl
-	.llong sys32_getpgid
-	.llong sys_fchdir
-	.llong sys_bdflush
-	.llong sys32_sysfs		/* 135 */
-	.llong ppc64_personality
-	.llong sys_ni_syscall	        /* for afs_syscall */
-	.llong sys_setfsuid
-	.llong sys_setfsgid
-	.llong sys_llseek	        /* 140 */
-	.llong sys32_getdents
-	.llong ppc32_select
-	.llong sys_flock
-	.llong sys_msync
-	.llong compat_sys_readv	/* 145 */
-	.llong compat_sys_writev
-	.llong sys32_getsid
-	.llong sys_fdatasync
-	.llong sys32_sysctl
-	.llong sys_mlock		/* 150 */
-	.llong sys_munlock
-	.llong sys_mlockall
-	.llong sys_munlockall
-	.llong sys32_sched_setparam
-	.llong sys32_sched_getparam	/* 155 */
-	.llong sys32_sched_setscheduler
-	.llong sys32_sched_getscheduler
-	.llong sys_sched_yield
-	.llong sys32_sched_get_priority_max
-	.llong sys32_sched_get_priority_min  /* 160 */
-	.llong sys32_sched_rr_get_interval
-	.llong compat_sys_nanosleep
-	.llong sys_mremap
-	.llong sys_setresuid
-	.llong sys_getresuid	        /* 165 */
-	.llong sys_ni_syscall		/* old query_module syscall */
-	.llong sys_poll
-	.llong compat_sys_nfsservctl
-	.llong sys_setresgid
-	.llong sys_getresgid	        /* 170 */
-	.llong sys32_prctl
-	.llong ppc32_rt_sigreturn
-	.llong sys32_rt_sigaction
-	.llong sys32_rt_sigprocmask
-	.llong sys32_rt_sigpending     /* 175 */
-	.llong sys32_rt_sigtimedwait
-	.llong sys32_rt_sigqueueinfo
-	.llong ppc32_rt_sigsuspend
-	.llong sys32_pread64
-	.llong sys32_pwrite64	        /* 180 */
-	.llong sys_chown
-	.llong sys_getcwd
-	.llong sys_capget
-	.llong sys_capset
-	.llong sys32_sigaltstack	/* 185 */
-	.llong sys32_sendfile
-	.llong sys_ni_syscall		/* reserved for streams1 */
-	.llong sys_ni_syscall		/* reserved for streams2 */
-	.llong ppc_vfork
-	.llong compat_sys_getrlimit	        /* 190 */
-	.llong sys32_readahead
-	.llong sys32_mmap2
-	.llong sys32_truncate64
-	.llong sys32_ftruncate64
-	.llong sys_stat64      	/* 195 */
-	.llong sys_lstat64
-	.llong sys_fstat64
-	.llong sys32_pciconfig_read
-	.llong sys32_pciconfig_write
-	.llong sys32_pciconfig_iobase	/* 200 - pciconfig_iobase */
-	.llong sys_ni_syscall		/* reserved for MacOnLinux */
-	.llong sys_getdents64
-	.llong sys_pivot_root
-	.llong compat_sys_fcntl64
-	.llong sys_madvise		/* 205 */
-	.llong sys_mincore
-	.llong sys_gettid
-	.llong sys_tkill
-	.llong sys_setxattr
-	.llong sys_lsetxattr		/* 210 */
-	.llong sys_fsetxattr
-	.llong sys_getxattr
-	.llong sys_lgetxattr
-	.llong sys_fgetxattr
-	.llong sys_listxattr		/* 215 */
-	.llong sys_llistxattr
-	.llong sys_flistxattr
-	.llong sys_removexattr
-	.llong sys_lremovexattr
-	.llong sys_fremovexattr	/* 220 */
-	.llong compat_sys_futex
-	.llong compat_sys_sched_setaffinity
-	.llong compat_sys_sched_getaffinity
-	.llong sys_ni_syscall
-	.llong sys_ni_syscall		/* 225 - reserved for tux */
-	.llong sys32_sendfile64
-	.llong compat_sys_io_setup
-	.llong sys_io_destroy
-	.llong compat_sys_io_getevents
-	.llong compat_sys_io_submit
-	.llong sys_io_cancel
-	.llong sys_set_tid_address
-	.llong ppc32_fadvise64
-	.llong sys_exit_group
-	.llong ppc32_lookup_dcookie	/* 235 */
-	.llong sys_epoll_create
-	.llong sys_epoll_ctl
-	.llong sys_epoll_wait
-	.llong sys_remap_file_pages
-	.llong ppc32_timer_create	/* 240 */
-	.llong compat_timer_settime
-	.llong compat_timer_gettime
-	.llong sys_timer_getoverrun
-	.llong sys_timer_delete
-	.llong compat_clock_settime	/* 245 */
-	.llong compat_clock_gettime
-	.llong compat_clock_getres
-	.llong compat_clock_nanosleep
-	.llong ppc32_swapcontext
-	.llong sys32_tgkill		/* 250 */
-	.llong sys32_utimes
-	.llong compat_statfs64
-	.llong compat_fstatfs64
-	.llong ppc32_fadvise64_64	/* 32bit only fadvise64_64 */
-	.llong ppc_rtas		/* 255 */
-	.llong sys_ni_syscall		/* 256 reserved for sys_debug_setcontext */
-	.llong sys_ni_syscall		/* 257 reserved for vserver */
-	.llong sys_ni_syscall		/* 258 reserved for new sys_remap_file_pages */
-	.llong sys_ni_syscall		/* 259 reserved for new sys_mbind */
-	.llong sys_ni_syscall		/* 260 reserved for new sys_get_mempolicy */
-	.llong sys_ni_syscall		/* 261 reserved for new sys_set_mempolicy */
-	.llong compat_sys_mq_open
-	.llong sys_mq_unlink
-	.llong compat_sys_mq_timedsend
-	.llong compat_sys_mq_timedreceive /* 265 */
-	.llong compat_sys_mq_notify
-	.llong compat_sys_mq_getsetattr
-	.llong sys_ni_syscall		/* 268 reserved for sys_kexec_load */
+	SYSCALL_ENTRY(sys_restart_syscall)	/* 0 */
+	SYSCALL_ENTRY(sys_exit)
+	SYSCALL_ENTRY(ppc_fork)
+	SYSCALL_ENTRY(sys_read)
+	SYSCALL_ENTRY(sys_write)
+	SYSCALL_ENTRY(sys32_open)		/* 5 */
+	SYSCALL_ENTRY(sys_close)
+	SYSCALL_ENTRY(sys32_waitpid)
+	SYSCALL_ENTRY(sys32_creat)
+	SYSCALL_ENTRY(sys_link)
+	SYSCALL_ENTRY(sys_unlink)		/* 10 */
+	SYSCALL_ENTRY(sys32_execve)
+	SYSCALL_ENTRY(sys_chdir)
+	SYSCALL_ENTRY(sys32_time)
+	SYSCALL_ENTRY(sys_mknod)
+	SYSCALL_ENTRY(sys_chmod)		/* 15 */
+	SYSCALL_ENTRY(sys_lchown)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old break syscall */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old stat syscall */
+	SYSCALL_ENTRY(ppc32_lseek)
+	SYSCALL_ENTRY(sys_getpid)		/* 20 */
+	SYSCALL_ENTRY(compat_sys_mount)
+	SYSCALL_ENTRY(sys_oldumount)
+	SYSCALL_ENTRY(sys_setuid)
+	SYSCALL_ENTRY(sys_getuid)
+	SYSCALL_ENTRY(ppc64_sys32_stime)	/* 25 */
+	SYSCALL_ENTRY(sys32_ptrace)
+	SYSCALL_ENTRY(sys_alarm)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old fstat syscall */
+	SYSCALL_ENTRY(sys32_pause)
+	SYSCALL_ENTRY(compat_sys_utime)		/* 30 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old stty syscall */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old gtty syscall */
+	SYSCALL_ENTRY(sys32_access)
+	SYSCALL_ENTRY(sys32_nice)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 35 - old ftime syscall */
+	SYSCALL_ENTRY(sys_sync)
+	SYSCALL_ENTRY(sys32_kill)
+	SYSCALL_ENTRY(sys_rename)
+	SYSCALL_ENTRY(sys32_mkdir)
+	SYSCALL_ENTRY(sys_rmdir)		/* 40 */
+	SYSCALL_ENTRY(sys_dup)
+	SYSCALL_ENTRY(sys_pipe)
+	SYSCALL_ENTRY(compat_sys_times)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old prof syscall */
+	SYSCALL_ENTRY(sys_brk)			/* 45 */
+	SYSCALL_ENTRY(sys_setgid)
+	SYSCALL_ENTRY(sys_getgid)
+	SYSCALL_ENTRY(sys_signal)
+	SYSCALL_ENTRY(sys_geteuid)
+	SYSCALL_ENTRY(sys_getegid)		/* 50 */
+	SYSCALL_ENTRY(sys_acct)
+	SYSCALL_ENTRY(sys_umount)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old lock syscall */
+	SYSCALL_ENTRY(compat_sys_ioctl)
+	SYSCALL_ENTRY(compat_sys_fcntl)		/* 55 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old mpx syscall */
+	SYSCALL_ENTRY(sys32_setpgid)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old ulimit syscall */
+	SYSCALL_ENTRY(sys32_olduname)
+	SYSCALL_ENTRY(sys32_umask)		/* 60 */
+	SYSCALL_ENTRY(sys_chroot)
+	SYSCALL_ENTRY(sys_ustat)
+	SYSCALL_ENTRY(sys_dup2)
+	SYSCALL_ENTRY(sys_getppid)
+	SYSCALL_ENTRY(sys_getpgrp)	        /* 65 */
+	SYSCALL_ENTRY(sys_setsid)
+	SYSCALL_ENTRY(sys32_sigaction)
+	SYSCALL_ENTRY(sys_sgetmask)
+	SYSCALL_ENTRY(sys32_ssetmask)
+	SYSCALL_ENTRY(sys_setreuid)	        /* 70 */
+	SYSCALL_ENTRY(sys_setregid)
+	SYSCALL_ENTRY(ppc32_sigsuspend)
+	SYSCALL_ENTRY(compat_sys_sigpending)
+	SYSCALL_ENTRY(sys32_sethostname)
+	SYSCALL_ENTRY(compat_sys_setrlimit)	/* 75 */
+	SYSCALL_ENTRY(compat_sys_old_getrlimit)
+	SYSCALL_ENTRY(compat_sys_getrusage)
+	SYSCALL_ENTRY(sys32_gettimeofday)
+	SYSCALL_ENTRY(sys32_settimeofday)
+	SYSCALL_ENTRY(sys32_getgroups)	        /* 80 */
+	SYSCALL_ENTRY(sys32_setgroups)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old select syscall */
+	SYSCALL_ENTRY(sys_symlink)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old lstat syscall */
+	SYSCALL_ENTRY(sys32_readlink)	        /* 85 */
+	SYSCALL_ENTRY(sys_uselib)
+	SYSCALL_ENTRY(sys_swapon)
+	SYSCALL_ENTRY(sys_reboot)
+	SYSCALL_ENTRY(old32_readdir)
+	SYSCALL_ENTRY(sys_mmap)			/* 90 */
+	SYSCALL_ENTRY(sys_munmap)
+	SYSCALL_ENTRY(sys_truncate)
+	SYSCALL_ENTRY(sys_ftruncate)
+	SYSCALL_ENTRY(sys_fchmod)
+	SYSCALL_ENTRY(sys_fchown)		/* 95 */
+	SYSCALL_ENTRY(sys32_getpriority)
+	SYSCALL_ENTRY(sys32_setpriority)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old profil syscall */
+	SYSCALL_ENTRY(compat_sys_statfs)
+	SYSCALL_ENTRY(compat_sys_fstatfs)		/* 100 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old ioperm syscall */
+	SYSCALL_ENTRY(compat_sys_socketcall)
+	SYSCALL_ENTRY(sys32_syslog)
+	SYSCALL_ENTRY(compat_sys_setitimer)
+	SYSCALL_ENTRY(compat_sys_getitimer)	/* 105 */
+	SYSCALL_ENTRY(compat_sys_newstat)
+	SYSCALL_ENTRY(compat_sys_newlstat)
+	SYSCALL_ENTRY(compat_sys_newfstat)
+	SYSCALL_ENTRY(sys_uname)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 110 old iopl syscall */
+	SYSCALL_ENTRY(sys_vhangup)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old idle syscall */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old vm86 syscall */
+	SYSCALL_ENTRY(compat_sys_wait4)
+	SYSCALL_ENTRY(sys_swapoff)		/* 115 */
+	SYSCALL_ENTRY(sys32_sysinfo)
+	SYSCALL_ENTRY(sys32_ipc)
+	SYSCALL_ENTRY(sys_fsync)
+	SYSCALL_ENTRY(ppc32_sigreturn)
+	SYSCALL_ENTRY(ppc_clone)		/* 120 */
+	SYSCALL_ENTRY(sys32_setdomainname)
+	SYSCALL_ENTRY(ppc64_newuname)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old modify_ldt syscall */
+	SYSCALL_ENTRY(sys32_adjtimex)
+	SYSCALL_ENTRY(sys_mprotect)		/* 125 */
+	SYSCALL_ENTRY(compat_sys_sigprocmask)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old create_module syscall */
+	SYSCALL_ENTRY(sys_init_module)
+	SYSCALL_ENTRY(sys_delete_module)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 130 old get_kernel_syms syscall */
+	SYSCALL_ENTRY(sys_quotactl)
+	SYSCALL_ENTRY(sys32_getpgid)
+	SYSCALL_ENTRY(sys_fchdir)
+	SYSCALL_ENTRY(sys_bdflush)
+	SYSCALL_ENTRY(sys32_sysfs)		/* 135 */
+	SYSCALL_ENTRY(ppc64_personality)
+	SYSCALL_ENTRY(sys_ni_syscall)	        /* for afs_syscall */
+	SYSCALL_ENTRY(sys_setfsuid)
+	SYSCALL_ENTRY(sys_setfsgid)
+	SYSCALL_ENTRY(sys_llseek)	        /* 140 */
+	SYSCALL_ENTRY(sys32_getdents)
+	SYSCALL_ENTRY(ppc32_select)
+	SYSCALL_ENTRY(sys_flock)
+	SYSCALL_ENTRY(sys_msync)
+	SYSCALL_ENTRY(compat_sys_readv)		/* 145 */
+	SYSCALL_ENTRY(compat_sys_writev)
+	SYSCALL_ENTRY(sys32_getsid)
+	SYSCALL_ENTRY(sys_fdatasync)
+	SYSCALL_ENTRY(sys32_sysctl)
+	SYSCALL_ENTRY(sys_mlock)		/* 150 */
+	SYSCALL_ENTRY(sys_munlock)
+	SYSCALL_ENTRY(sys_mlockall)
+	SYSCALL_ENTRY(sys_munlockall)
+	SYSCALL_ENTRY(sys32_sched_setparam)
+	SYSCALL_ENTRY(sys32_sched_getparam)	/* 155 */
+	SYSCALL_ENTRY(sys32_sched_setscheduler)
+	SYSCALL_ENTRY(sys32_sched_getscheduler)
+	SYSCALL_ENTRY(sys_sched_yield)
+	SYSCALL_ENTRY(sys32_sched_get_priority_max)
+	SYSCALL_ENTRY(sys32_sched_get_priority_min) /* 160 */
+	SYSCALL_ENTRY(sys32_sched_rr_get_interval)
+	SYSCALL_ENTRY(compat_sys_nanosleep)
+	SYSCALL_ENTRY(sys_mremap)
+	SYSCALL_ENTRY(sys_setresuid)
+	SYSCALL_ENTRY(sys_getresuid)	        /* 165 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old query_module syscall */
+	SYSCALL_ENTRY(sys_poll)
+	SYSCALL_ENTRY(compat_sys_nfsservctl)
+	SYSCALL_ENTRY(sys_setresgid)
+	SYSCALL_ENTRY(sys_getresgid)	        /* 170 */
+	SYSCALL_ENTRY(sys32_prctl)
+	SYSCALL_ENTRY(ppc32_rt_sigreturn)
+	SYSCALL_ENTRY(sys32_rt_sigaction)
+	SYSCALL_ENTRY(sys32_rt_sigprocmask)
+	SYSCALL_ENTRY(sys32_rt_sigpending)	/* 175 */
+	SYSCALL_ENTRY(sys32_rt_sigtimedwait)
+	SYSCALL_ENTRY(sys32_rt_sigqueueinfo)
+	SYSCALL_ENTRY(ppc32_rt_sigsuspend)
+	SYSCALL_ENTRY(sys32_pread64)
+	SYSCALL_ENTRY(sys32_pwrite64)		/* 180 */
+	SYSCALL_ENTRY(sys_chown)
+	SYSCALL_ENTRY(sys_getcwd)
+	SYSCALL_ENTRY(sys_capget)
+	SYSCALL_ENTRY(sys_capset)
+	SYSCALL_ENTRY(sys32_sigaltstack)	/* 185 */
+	SYSCALL_ENTRY(sys32_sendfile)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for streams1 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for streams2 */
+	SYSCALL_ENTRY(ppc_vfork)
+	SYSCALL_ENTRY(compat_sys_getrlimit)	        /* 190 */
+	SYSCALL_ENTRY(sys32_readahead)
+	SYSCALL_ENTRY(sys32_mmap2)
+	SYSCALL_ENTRY(sys32_truncate64)
+	SYSCALL_ENTRY(sys32_ftruncate64)
+	SYSCALL_ENTRY(sys_stat64)		/* 195 */
+	SYSCALL_ENTRY(sys_lstat64)
+	SYSCALL_ENTRY(sys_fstat64)
+	SYSCALL_ENTRY(sys32_pciconfig_read)
+	SYSCALL_ENTRY(sys32_pciconfig_write)
+	SYSCALL_ENTRY(sys32_pciconfig_iobase)	/* 200 - pciconfig_iobase */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for MacOnLinux */
+	SYSCALL_ENTRY(sys_getdents64)
+	SYSCALL_ENTRY(sys_pivot_root)
+	SYSCALL_ENTRY(compat_sys_fcntl64)
+	SYSCALL_ENTRY(sys_madvise)		/* 205 */
+	SYSCALL_ENTRY(sys_mincore)
+	SYSCALL_ENTRY(sys_gettid)
+	SYSCALL_ENTRY(sys_tkill)
+	SYSCALL_ENTRY(sys_setxattr)
+	SYSCALL_ENTRY(sys_lsetxattr)		/* 210 */
+	SYSCALL_ENTRY(sys_fsetxattr)
+	SYSCALL_ENTRY(sys_getxattr)
+	SYSCALL_ENTRY(sys_lgetxattr)
+	SYSCALL_ENTRY(sys_fgetxattr)
+	SYSCALL_ENTRY(sys_listxattr)		/* 215 */
+	SYSCALL_ENTRY(sys_llistxattr)
+	SYSCALL_ENTRY(sys_flistxattr)
+	SYSCALL_ENTRY(sys_removexattr)
+	SYSCALL_ENTRY(sys_lremovexattr)
+	SYSCALL_ENTRY(sys_fremovexattr)		/* 220 */
+	SYSCALL_ENTRY(compat_sys_futex)
+	SYSCALL_ENTRY(compat_sys_sched_setaffinity)
+	SYSCALL_ENTRY(compat_sys_sched_getaffinity)
+	SYSCALL_ENTRY(sys_ni_syscall)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 225 - reserved for tux */
+	SYSCALL_ENTRY(sys32_sendfile64)
+	SYSCALL_ENTRY(compat_sys_io_setup)
+	SYSCALL_ENTRY(sys_io_destroy)
+	SYSCALL_ENTRY(compat_sys_io_getevents)
+	SYSCALL_ENTRY(compat_sys_io_submit)
+	SYSCALL_ENTRY(sys_io_cancel)
+	SYSCALL_ENTRY(sys_set_tid_address)
+	SYSCALL_ENTRY(ppc32_fadvise64)
+	SYSCALL_ENTRY(sys_exit_group)
+	SYSCALL_ENTRY(ppc32_lookup_dcookie)	/* 235 */
+	SYSCALL_ENTRY(sys_epoll_create)
+	SYSCALL_ENTRY(sys_epoll_ctl)
+	SYSCALL_ENTRY(sys_epoll_wait)
+	SYSCALL_ENTRY(sys_remap_file_pages)
+	SYSCALL_ENTRY(ppc32_timer_create)	/* 240 */
+	SYSCALL_ENTRY(compat_timer_settime)
+	SYSCALL_ENTRY(compat_timer_gettime)
+	SYSCALL_ENTRY(sys_timer_getoverrun)
+	SYSCALL_ENTRY(sys_timer_delete)
+	SYSCALL_ENTRY(compat_clock_settime)	/* 245 */
+	SYSCALL_ENTRY(compat_clock_gettime)
+	SYSCALL_ENTRY(compat_clock_getres)
+	SYSCALL_ENTRY(compat_clock_nanosleep)
+	SYSCALL_ENTRY(ppc32_swapcontext)
+	SYSCALL_ENTRY(sys32_tgkill)		/* 250 */
+	SYSCALL_ENTRY(sys32_utimes)
+	SYSCALL_ENTRY(compat_statfs64)
+	SYSCALL_ENTRY(compat_fstatfs64)
+	SYSCALL_ENTRY(ppc32_fadvise64_64)	/* 32bit only fadvise64_64 */
+	SYSCALL_ENTRY(ppc_rtas)			/* 255 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for sys_debug_setcontext */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for vserver */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for new sys_remap_file_pages */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for new sys_mbind */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 260 - reserved for new sys_get_mempolicy */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for new sys_set_mempolicy */
+	SYSCALL_ENTRY(compat_sys_mq_open)
+	SYSCALL_ENTRY(sys_mq_unlink)
+	SYSCALL_ENTRY(compat_sys_mq_timedsend)
+	SYSCALL_ENTRY(compat_sys_mq_timedreceive) /* 265 */
+	SYSCALL_ENTRY(compat_sys_mq_notify)
+	SYSCALL_ENTRY(compat_sys_mq_getsetattr)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 268 reserved for sys_kexec_load */

 	.balign 8
 _GLOBAL(sys_call_table)
-	.llong sys_restart_syscall	/* 0 */
-	.llong sys_exit
-	.llong ppc_fork
-	.llong sys_read
-	.llong sys_write
-	.llong sys_open			/* 5 */
-	.llong sys_close
-	.llong sys_waitpid
-	.llong sys_creat
-	.llong sys_link
-	.llong sys_unlink		/* 10 */
-	.llong sys_execve
-	.llong sys_chdir
-	.llong sys64_time
-	.llong sys_mknod
-	.llong sys_chmod		/* 15 */
-	.llong sys_lchown
-	.llong sys_ni_syscall		/* old break syscall */
-	.llong sys_ni_syscall		/* old stat syscall */
-	.llong sys_lseek
-	.llong sys_getpid		/* 20 */
-	.llong sys_mount
-	.llong sys_ni_syscall		/* old umount syscall */
-	.llong sys_setuid
-	.llong sys_getuid
-	.llong ppc64_sys_stime		/* 25 */
-	.llong sys_ptrace
-	.llong sys_alarm
-	.llong sys_ni_syscall		/* old fstat syscall */
-	.llong sys_pause
-	.llong sys_utime		/* 30 */
-	.llong sys_ni_syscall		/* old stty syscall */
-	.llong sys_ni_syscall		/* old gtty syscall */
-	.llong sys_access
-	.llong sys_nice
-	.llong sys_ni_syscall		/* 35 - old ftime syscall */
-	.llong sys_sync
-	.llong sys_kill
-	.llong sys_rename
-	.llong sys_mkdir
-	.llong sys_rmdir		/* 40 */
-	.llong sys_dup
-	.llong sys_pipe
-	.llong sys_times
-	.llong sys_ni_syscall		/* old prof syscall */
-	.llong sys_brk			/* 45 */
-	.llong sys_setgid
-	.llong sys_getgid
-	.llong sys_signal
-	.llong sys_geteuid
-	.llong sys_getegid		/* 50 */
-	.llong sys_acct
-	.llong sys_umount
-	.llong sys_ni_syscall		/* old lock syscall */
-	.llong sys_ioctl
-	.llong sys_fcntl		/* 55 */
-	.llong sys_ni_syscall		/* old mpx syscall */
-	.llong sys_setpgid
-	.llong sys_ni_syscall		/* old ulimit syscall */
-	.llong sys_ni_syscall		/* old uname syscall */
-	.llong sys_umask		/* 60 */
-	.llong sys_chroot
-	.llong sys_ustat
-	.llong sys_dup2
-	.llong sys_getppid
-	.llong sys_getpgrp		/* 65 */
-	.llong sys_setsid
-	.llong sys_ni_syscall
-	.llong sys_sgetmask
-	.llong sys_ssetmask
-	.llong sys_setreuid		/* 70 */
-	.llong sys_setregid
-	.llong sys_ni_syscall
-	.llong sys_ni_syscall
-	.llong sys_sethostname
-	.llong sys_setrlimit		/* 75 */
-	.llong sys_ni_syscall		/* old getrlimit syscall */
-	.llong sys_getrusage
-	.llong sys_gettimeofday
-	.llong sys_settimeofday
-	.llong sys_getgroups		/* 80 */
-	.llong sys_setgroups
-	.llong sys_ni_syscall		/* old select syscall */
-	.llong sys_symlink
-	.llong sys_ni_syscall		/* old lstat syscall */
-	.llong sys_readlink		/* 85 */
-	.llong sys_uselib
-	.llong sys_swapon
-	.llong sys_reboot
-	.llong sys_ni_syscall		/* old readdir syscall */
-	.llong sys_mmap			/* 90 */
-	.llong sys_munmap
-	.llong sys_truncate
-	.llong sys_ftruncate
-	.llong sys_fchmod
-	.llong sys_fchown		/* 95 */
-	.llong sys_getpriority
-	.llong sys_setpriority
-	.llong sys_ni_syscall		/* old profil syscall holder */
-	.llong sys_statfs
-	.llong sys_fstatfs		/* 100 */
-	.llong sys_ni_syscall		/* old ioperm syscall */
-	.llong sys_socketcall
-	.llong sys_syslog
-	.llong sys_setitimer
-	.llong sys_getitimer		/* 105 */
-	.llong sys_newstat
-	.llong sys_newlstat
-	.llong sys_newfstat
-	.llong sys_ni_syscall		/* old uname syscall */
-	.llong sys_ni_syscall		/* 110 old iopl syscall */
-	.llong sys_vhangup
-	.llong sys_ni_syscall		/* old idle syscall */
-	.llong sys_ni_syscall		/* old vm86 syscall */
-	.llong sys_wait4
-	.llong sys_swapoff		/* 115 */
-	.llong sys_sysinfo
-	.llong sys_ipc
-	.llong sys_fsync
-	.llong sys_ni_syscall
-	.llong ppc_clone		/* 120 */
-	.llong sys_setdomainname
-	.llong ppc64_newuname
-	.llong sys_ni_syscall		/* old modify_ldt syscall */
-	.llong sys_adjtimex
-	.llong sys_mprotect		/* 125 */
-	.llong sys_ni_syscall
-	.llong sys_ni_syscall		/* old create_module syscall */
-	.llong sys_init_module
-	.llong sys_delete_module
-	.llong sys_ni_syscall		/* 130 old get_kernel_syms syscall */
-	.llong sys_quotactl
-	.llong sys_getpgid
-	.llong sys_fchdir
-	.llong sys_bdflush
-	.llong sys_sysfs		/* 135 */
-	.llong ppc64_personality
-	.llong sys_ni_syscall	        /* for afs_syscall */
-	.llong sys_setfsuid
-	.llong sys_setfsgid
-	.llong sys_llseek	        /* 140 */
-	.llong sys_getdents
-	.llong sys_select
-	.llong sys_flock
-	.llong sys_msync
-	.llong sys_readv		/* 145 */
-	.llong sys_writev
-	.llong sys_getsid
-	.llong sys_fdatasync
-	.llong sys_sysctl
-	.llong sys_mlock		/* 150 */
-	.llong sys_munlock
-	.llong sys_mlockall
-	.llong sys_munlockall
-	.llong sys_sched_setparam
-	.llong sys_sched_getparam	/* 155 */
-	.llong sys_sched_setscheduler
-	.llong sys_sched_getscheduler
-	.llong sys_sched_yield
-	.llong sys_sched_get_priority_max
-	.llong sys_sched_get_priority_min  /* 160 */
-	.llong sys_sched_rr_get_interval
-	.llong sys_nanosleep
-	.llong sys_mremap
-	.llong sys_setresuid
-	.llong sys_getresuid	        /* 165 */
-	.llong sys_ni_syscall		/* old query_module syscall */
-	.llong sys_poll
-	.llong sys_nfsservctl
-	.llong sys_setresgid
-	.llong sys_getresgid	        /* 170 */
-	.llong sys_prctl
-	.llong ppc64_rt_sigreturn
-	.llong sys_rt_sigaction
-	.llong sys_rt_sigprocmask
-	.llong sys_rt_sigpending	/* 175 */
-	.llong sys_rt_sigtimedwait
-	.llong sys_rt_sigqueueinfo
-	.llong ppc64_rt_sigsuspend
-	.llong sys_pread64
-	.llong sys_pwrite64	        /* 180 */
-	.llong sys_chown
-	.llong sys_getcwd
-	.llong sys_capget
-	.llong sys_capset
-	.llong sys_sigaltstack	        /* 185 */
-	.llong sys_sendfile64
-	.llong sys_ni_syscall		/* reserved for streams1 */
-	.llong sys_ni_syscall		/* reserved for streams2 */
-	.llong ppc_vfork
-	.llong sys_getrlimit	        /* 190 */
-	.llong sys_readahead
-	.llong sys_ni_syscall		/* 32bit only mmap2 */
-	.llong sys_ni_syscall		/* 32bit only truncate64 */
-	.llong sys_ni_syscall		/* 32bit only ftruncate64 */
-	.llong sys_ni_syscall		/* 195 - 32bit only stat64 */
-	.llong sys_ni_syscall		/* 32bit only lstat64 */
-	.llong sys_ni_syscall		/* 32bit only fstat64 */
-	.llong sys_ni_syscall		/* 32bit only pciconfig_read */
-	.llong sys_ni_syscall		/* 32bit only pciconfig_write */
-	.llong sys_ni_syscall		/* 32bit only pciconfig_iobase */
-	.llong sys_ni_syscall		/* reserved for MacOnLinux */
-	.llong sys_getdents64
-	.llong sys_pivot_root
-	.llong sys_ni_syscall		/* 32bit only fcntl64 */
-	.llong sys_madvise		/* 205 */
-	.llong sys_mincore
-	.llong sys_gettid
-	.llong sys_tkill
-	.llong sys_setxattr
-	.llong sys_lsetxattr		/* 210 */
-	.llong sys_fsetxattr
-	.llong sys_getxattr
-	.llong sys_lgetxattr
-	.llong sys_fgetxattr
-	.llong sys_listxattr		/* 215 */
-	.llong sys_llistxattr
-	.llong sys_flistxattr
-	.llong sys_removexattr
-	.llong sys_lremovexattr
-	.llong sys_fremovexattr		/* 220 */
-	.llong sys_futex
-	.llong sys_sched_setaffinity
-	.llong sys_sched_getaffinity
-	.llong sys_ni_syscall
-	.llong sys_ni_syscall		/* 225 - reserved for tux */
-	.llong sys_ni_syscall		/* 32bit only sendfile64 */
-	.llong sys_io_setup
-	.llong sys_io_destroy
-	.llong sys_io_getevents
-	.llong sys_io_submit		/* 230 */
-	.llong sys_io_cancel
-	.llong sys_set_tid_address
-	.llong sys_fadvise64
-	.llong sys_exit_group
-	.llong sys_lookup_dcookie	/* 235 */
-	.llong sys_epoll_create
-	.llong sys_epoll_ctl
-	.llong sys_epoll_wait
-	.llong sys_remap_file_pages
-	.llong sys_timer_create		/* 240 */
-	.llong sys_timer_settime
-	.llong sys_timer_gettime
-	.llong sys_timer_getoverrun
-	.llong sys_timer_delete
-	.llong sys_clock_settime	/* 245 */
-	.llong sys_clock_gettime
-	.llong sys_clock_getres
-	.llong sys_clock_nanosleep
-	.llong ppc64_swapcontext
-	.llong sys_tgkill		/* 250 */
-	.llong sys_utimes
-	.llong sys_statfs64
-	.llong sys_fstatfs64
-	.llong sys_ni_syscall		/* 32bit only fadvise64_64 */
-	.llong ppc_rtas			/* 255 */
-	.llong sys_ni_syscall		/* 256 reserved for sys_debug_setcontext */
-	.llong sys_ni_syscall		/* 257 reserved for vserver */
-	.llong sys_ni_syscall		/* 258 reserved for new sys_remap_file_pages */
-	.llong sys_ni_syscall		/* 259 reserved for new sys_mbind */
-	.llong sys_ni_syscall		/* 260 reserved for new sys_get_mempolicy */
-	.llong sys_ni_syscall		/* 261 reserved for new sys_set_mempolicy */
-	.llong sys_mq_open
-	.llong sys_mq_unlink
-	.llong sys_mq_timedsend
-	.llong sys_mq_timedreceive	/* 265 */
-	.llong sys_mq_notify
-	.llong sys_mq_getsetattr
-	.llong sys_ni_syscall		/* 268 reserved for sys_kexec_load */
+	SYSCALL_ENTRY(sys_restart_syscall)	/* 0 */
+	SYSCALL_ENTRY(sys_exit)
+	SYSCALL_ENTRY(ppc_fork)
+	SYSCALL_ENTRY(sys_read)
+	SYSCALL_ENTRY(sys_write)
+	SYSCALL_ENTRY(sys_open)			/* 5 */
+	SYSCALL_ENTRY(sys_close)
+	SYSCALL_ENTRY(sys_waitpid)
+	SYSCALL_ENTRY(sys_creat)
+	SYSCALL_ENTRY(sys_link)
+	SYSCALL_ENTRY(sys_unlink)		/* 10 */
+	SYSCALL_ENTRY(sys_execve)
+	SYSCALL_ENTRY(sys_chdir)
+	SYSCALL_ENTRY(sys64_time)
+	SYSCALL_ENTRY(sys_mknod)
+	SYSCALL_ENTRY(sys_chmod)		/* 15 */
+	SYSCALL_ENTRY(sys_lchown)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old break syscall */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old stat syscall */
+	SYSCALL_ENTRY(sys_lseek)
+	SYSCALL_ENTRY(sys_getpid)		/* 20 */
+	SYSCALL_ENTRY(sys_mount)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old umount syscall */
+	SYSCALL_ENTRY(sys_setuid)
+	SYSCALL_ENTRY(sys_getuid)
+	SYSCALL_ENTRY(ppc64_sys_stime)		/* 25 */
+	SYSCALL_ENTRY(sys_ptrace)
+	SYSCALL_ENTRY(sys_alarm)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old fstat syscall */
+	SYSCALL_ENTRY(sys_pause)
+	SYSCALL_ENTRY(sys_utime)		/* 30 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old stty syscall */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old gtty syscall */
+	SYSCALL_ENTRY(sys_access)
+	SYSCALL_ENTRY(sys_nice)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 35 - old ftime syscall */
+	SYSCALL_ENTRY(sys_sync)
+	SYSCALL_ENTRY(sys_kill)
+	SYSCALL_ENTRY(sys_rename)
+	SYSCALL_ENTRY(sys_mkdir)
+	SYSCALL_ENTRY(sys_rmdir)		/* 40 */
+	SYSCALL_ENTRY(sys_dup)
+	SYSCALL_ENTRY(sys_pipe)
+	SYSCALL_ENTRY(sys_times)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old prof syscall */
+	SYSCALL_ENTRY(sys_brk)			/* 45 */
+	SYSCALL_ENTRY(sys_setgid)
+	SYSCALL_ENTRY(sys_getgid)
+	SYSCALL_ENTRY(sys_signal)
+	SYSCALL_ENTRY(sys_geteuid)
+	SYSCALL_ENTRY(sys_getegid)		/* 50 */
+	SYSCALL_ENTRY(sys_acct)
+	SYSCALL_ENTRY(sys_umount)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old lock syscall */
+	SYSCALL_ENTRY(sys_ioctl)
+	SYSCALL_ENTRY(sys_fcntl)		/* 55 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old mpx syscall */
+	SYSCALL_ENTRY(sys_setpgid)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old ulimit syscall */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old uname syscall */
+	SYSCALL_ENTRY(sys_umask)		/* 60 */
+	SYSCALL_ENTRY(sys_chroot)
+	SYSCALL_ENTRY(sys_ustat)
+	SYSCALL_ENTRY(sys_dup2)
+	SYSCALL_ENTRY(sys_getppid)
+	SYSCALL_ENTRY(sys_getpgrp)		/* 65 */
+	SYSCALL_ENTRY(sys_setsid)
+	SYSCALL_ENTRY(sys_ni_syscall)
+	SYSCALL_ENTRY(sys_sgetmask)
+	SYSCALL_ENTRY(sys_ssetmask)
+	SYSCALL_ENTRY(sys_setreuid)		/* 70 */
+	SYSCALL_ENTRY(sys_setregid)
+	SYSCALL_ENTRY(sys_ni_syscall)
+	SYSCALL_ENTRY(sys_ni_syscall)
+	SYSCALL_ENTRY(sys_sethostname)
+	SYSCALL_ENTRY(sys_setrlimit)		/* 75 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old getrlimit syscall */
+	SYSCALL_ENTRY(sys_getrusage)
+	SYSCALL_ENTRY(sys_gettimeofday)
+	SYSCALL_ENTRY(sys_settimeofday)
+	SYSCALL_ENTRY(sys_getgroups)		/* 80 */
+	SYSCALL_ENTRY(sys_setgroups)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old select syscall */
+	SYSCALL_ENTRY(sys_symlink)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old lstat syscall */
+	SYSCALL_ENTRY(sys_readlink)		/* 85 */
+	SYSCALL_ENTRY(sys_uselib)
+	SYSCALL_ENTRY(sys_swapon)
+	SYSCALL_ENTRY(sys_reboot)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old readdir syscall */
+	SYSCALL_ENTRY(sys_mmap)			/* 90 */
+	SYSCALL_ENTRY(sys_munmap)
+	SYSCALL_ENTRY(sys_truncate)
+	SYSCALL_ENTRY(sys_ftruncate)
+	SYSCALL_ENTRY(sys_fchmod)
+	SYSCALL_ENTRY(sys_fchown)		/* 95 */
+	SYSCALL_ENTRY(sys_getpriority)
+	SYSCALL_ENTRY(sys_setpriority)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old profil syscall holder */
+	SYSCALL_ENTRY(sys_statfs)
+	SYSCALL_ENTRY(sys_fstatfs)		/* 100 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old ioperm syscall */
+	SYSCALL_ENTRY(sys_socketcall)
+	SYSCALL_ENTRY(sys_syslog)
+	SYSCALL_ENTRY(sys_setitimer)
+	SYSCALL_ENTRY(sys_getitimer)		/* 105 */
+	SYSCALL_ENTRY(sys_newstat)
+	SYSCALL_ENTRY(sys_newlstat)
+	SYSCALL_ENTRY(sys_newfstat)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old uname syscall */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 110 old iopl syscall */
+	SYSCALL_ENTRY(sys_vhangup)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old idle syscall */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old vm86 syscall */
+	SYSCALL_ENTRY(sys_wait4)
+	SYSCALL_ENTRY(sys_swapoff)		/* 115 */
+	SYSCALL_ENTRY(sys_sysinfo)
+	SYSCALL_ENTRY(sys_ipc)
+	SYSCALL_ENTRY(sys_fsync)
+	SYSCALL_ENTRY(sys_ni_syscall)
+	SYSCALL_ENTRY(ppc_clone)		/* 120 */
+	SYSCALL_ENTRY(sys_setdomainname)
+	SYSCALL_ENTRY(ppc64_newuname)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old modify_ldt syscall */
+	SYSCALL_ENTRY(sys_adjtimex)
+	SYSCALL_ENTRY(sys_mprotect)		/* 125 */
+	SYSCALL_ENTRY(sys_ni_syscall)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old create_module syscall */
+	SYSCALL_ENTRY(sys_init_module)
+	SYSCALL_ENTRY(sys_delete_module)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 130 old get_kernel_syms syscall */
+	SYSCALL_ENTRY(sys_quotactl)
+	SYSCALL_ENTRY(sys_getpgid)
+	SYSCALL_ENTRY(sys_fchdir)
+	SYSCALL_ENTRY(sys_bdflush)
+	SYSCALL_ENTRY(sys_sysfs)		/* 135 */
+	SYSCALL_ENTRY(ppc64_personality)
+	SYSCALL_ENTRY(sys_ni_syscall)	        /* for afs_syscall */
+	SYSCALL_ENTRY(sys_setfsuid)
+	SYSCALL_ENTRY(sys_setfsgid)
+	SYSCALL_ENTRY(sys_llseek)	        /* 140 */
+	SYSCALL_ENTRY(sys_getdents)
+	SYSCALL_ENTRY(sys_select)
+	SYSCALL_ENTRY(sys_flock)
+	SYSCALL_ENTRY(sys_msync)
+	SYSCALL_ENTRY(sys_readv)		/* 145 */
+	SYSCALL_ENTRY(sys_writev)
+	SYSCALL_ENTRY(sys_getsid)
+	SYSCALL_ENTRY(sys_fdatasync)
+	SYSCALL_ENTRY(sys_sysctl)
+	SYSCALL_ENTRY(sys_mlock)		/* 150 */
+	SYSCALL_ENTRY(sys_munlock)
+	SYSCALL_ENTRY(sys_mlockall)
+	SYSCALL_ENTRY(sys_munlockall)
+	SYSCALL_ENTRY(sys_sched_setparam)
+	SYSCALL_ENTRY(sys_sched_getparam)	/* 155 */
+	SYSCALL_ENTRY(sys_sched_setscheduler)
+	SYSCALL_ENTRY(sys_sched_getscheduler)
+	SYSCALL_ENTRY(sys_sched_yield)
+	SYSCALL_ENTRY(sys_sched_get_priority_max)
+	SYSCALL_ENTRY(sys_sched_get_priority_min) /* 160 */
+	SYSCALL_ENTRY(sys_sched_rr_get_interval)
+	SYSCALL_ENTRY(sys_nanosleep)
+	SYSCALL_ENTRY(sys_mremap)
+	SYSCALL_ENTRY(sys_setresuid)
+	SYSCALL_ENTRY(sys_getresuid)	        /* 165 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* old query_module syscall */
+	SYSCALL_ENTRY(sys_poll)
+	SYSCALL_ENTRY(sys_nfsservctl)
+	SYSCALL_ENTRY(sys_setresgid)
+	SYSCALL_ENTRY(sys_getresgid)	        /* 170 */
+	SYSCALL_ENTRY(sys_prctl)
+	SYSCALL_ENTRY(ppc64_rt_sigreturn)
+	SYSCALL_ENTRY(sys_rt_sigaction)
+	SYSCALL_ENTRY(sys_rt_sigprocmask)
+	SYSCALL_ENTRY(sys_rt_sigpending)	/* 175 */
+	SYSCALL_ENTRY(sys_rt_sigtimedwait)
+	SYSCALL_ENTRY(sys_rt_sigqueueinfo)
+	SYSCALL_ENTRY(ppc64_rt_sigsuspend)
+	SYSCALL_ENTRY(sys_pread64)
+	SYSCALL_ENTRY(sys_pwrite64)	        /* 180 */
+	SYSCALL_ENTRY(sys_chown)
+	SYSCALL_ENTRY(sys_getcwd)
+	SYSCALL_ENTRY(sys_capget)
+	SYSCALL_ENTRY(sys_capset)
+	SYSCALL_ENTRY(sys_sigaltstack)	        /* 185 */
+	SYSCALL_ENTRY(sys_sendfile64)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for streams1 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for streams2 */
+	SYSCALL_ENTRY(ppc_vfork)
+	SYSCALL_ENTRY(sys_getrlimit)	        /* 190 */
+	SYSCALL_ENTRY(sys_readahead)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 32bit only mmap2 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 32bit only truncate64 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 32bit only ftruncate64 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 195 - 32bit only stat64 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 32bit only lstat64 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 32bit only fstat64 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 32bit only pciconfig_read */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 32bit only pciconfig_write */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 32bit only pciconfig_iobase */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for MacOnLinux */
+	SYSCALL_ENTRY(sys_getdents64)
+	SYSCALL_ENTRY(sys_pivot_root)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 32bit only fcntl64 */
+	SYSCALL_ENTRY(sys_madvise)		/* 205 */
+	SYSCALL_ENTRY(sys_mincore)
+	SYSCALL_ENTRY(sys_gettid)
+	SYSCALL_ENTRY(sys_tkill)
+	SYSCALL_ENTRY(sys_setxattr)
+	SYSCALL_ENTRY(sys_lsetxattr)		/* 210 */
+	SYSCALL_ENTRY(sys_fsetxattr)
+	SYSCALL_ENTRY(sys_getxattr)
+	SYSCALL_ENTRY(sys_lgetxattr)
+	SYSCALL_ENTRY(sys_fgetxattr)
+	SYSCALL_ENTRY(sys_listxattr)		/* 215 */
+	SYSCALL_ENTRY(sys_llistxattr)
+	SYSCALL_ENTRY(sys_flistxattr)
+	SYSCALL_ENTRY(sys_removexattr)
+	SYSCALL_ENTRY(sys_lremovexattr)
+	SYSCALL_ENTRY(sys_fremovexattr)		/* 220 */
+	SYSCALL_ENTRY(sys_futex)
+	SYSCALL_ENTRY(sys_sched_setaffinity)
+	SYSCALL_ENTRY(sys_sched_getaffinity)
+	SYSCALL_ENTRY(sys_ni_syscall)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 225 - reserved for tux */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 32bit only sendfile64 */
+	SYSCALL_ENTRY(sys_io_setup)
+	SYSCALL_ENTRY(sys_io_destroy)
+	SYSCALL_ENTRY(sys_io_getevents)
+	SYSCALL_ENTRY(sys_io_submit)		/* 230 */
+	SYSCALL_ENTRY(sys_io_cancel)
+	SYSCALL_ENTRY(sys_set_tid_address)
+	SYSCALL_ENTRY(sys_fadvise64)
+	SYSCALL_ENTRY(sys_exit_group)
+	SYSCALL_ENTRY(sys_lookup_dcookie)	/* 235 */
+	SYSCALL_ENTRY(sys_epoll_create)
+	SYSCALL_ENTRY(sys_epoll_ctl)
+	SYSCALL_ENTRY(sys_epoll_wait)
+	SYSCALL_ENTRY(sys_remap_file_pages)
+	SYSCALL_ENTRY(sys_timer_create)		/* 240 */
+	SYSCALL_ENTRY(sys_timer_settime)
+	SYSCALL_ENTRY(sys_timer_gettime)
+	SYSCALL_ENTRY(sys_timer_getoverrun)
+	SYSCALL_ENTRY(sys_timer_delete)
+	SYSCALL_ENTRY(sys_clock_settime)	/* 245 */
+	SYSCALL_ENTRY(sys_clock_gettime)
+	SYSCALL_ENTRY(sys_clock_getres)
+	SYSCALL_ENTRY(sys_clock_nanosleep)
+	SYSCALL_ENTRY(ppc64_swapcontext)
+	SYSCALL_ENTRY(sys_tgkill)		/* 250 */
+	SYSCALL_ENTRY(sys_utimes)
+	SYSCALL_ENTRY(sys_statfs64)
+	SYSCALL_ENTRY(sys_fstatfs64)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 32bit only fadvise64_64 */
+	SYSCALL_ENTRY(ppc_rtas)			/* 255 */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for sys_debug_setcontext */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for vserver */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for new sys_remap_file_pages */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for new sys_mbind */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 260 - reserved for new sys_get_mempolicy */
+	SYSCALL_ENTRY(sys_ni_syscall)		/* reserved for new sys_set_mempolicy */
+	SYSCALL_ENTRY(sys_mq_open)
+	SYSCALL_ENTRY(sys_mq_unlink)
+	SYSCALL_ENTRY(sys_mq_timedsend)
+	SYSCALL_ENTRY(sys_mq_timedreceive)	/* 265 */
+	SYSCALL_ENTRY(sys_mq_notify)
+	SYSCALL_ENTRY(sys_mq_getsetattr)
+	SYSCALL_ENTRY(sys_ni_syscall)		/* 268 reserved for sys_kexec_load */
diff -puN include/asm-ppc64/unistd.h~mminimal_toc_die_die_die_5 include/asm-ppc64/unistd.h
--- mminimal_toc_die_die_die/include/asm-ppc64/unistd.h~mminimal_toc_die_die_die_5	2004-08-25 00:09:23.984236354 +1000
+++ mminimal_toc_die_die_die-anton/include/asm-ppc64/unistd.h	2004-08-25 00:09:44.110715892 +1000
@@ -468,7 +468,7 @@ long sys_rt_sigaction(int sig, const str
  * What we want is __attribute__((weak,alias("sys_ni_syscall"))),
  * but it doesn't work on all toolchains, so we just do it by hand
  */
-#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall");
+#define cond_syscall(x) asm(".weak\t." #x "\n\t.set\t." #x ",.sys_ni_syscall");


 #endif		/* __KERNEL__ */
diff -puN arch/ppc64/kernel/entry.S~mminimal_toc_die_die_die_5 arch/ppc64/kernel/entry.S
--- mminimal_toc_die_die_die/arch/ppc64/kernel/entry.S~mminimal_toc_die_die_die_5	2004-08-25 00:11:02.793512345 +1000
+++ mminimal_toc_die_die_die-anton/arch/ppc64/kernel/entry.S	2004-08-25 00:17:41.562880771 +1000
@@ -142,10 +142,10 @@ system_call:			/* label this so stack tr
 	clrldi	r7,r7,32
 	clrldi	r8,r8,32
 15:
-	slwi	r0,r0,3
-	ldx	r10,r11,r0	/* Fetch OPD */
-	ld	r2,8(r10)	/* load r2 */
-	ld	r10,0(r10)	/* load pc */
+	slwi	r0,r0,4
+	ldx     r10,r11,r0	/* load pc */
+	addi	r11,r11,8
+	ldx     r2,r11,r0	/* load r2 */
 	mtctr   r10
 	bctrl			/* Call handler */
 	ld	r2,PACATOC(r13)	/* get kernel TOC into r2 */
_

** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list