fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / h8300 / kernel / syscalls.S
index 6d16380..dab98fd 100644 (file)
@@ -1,5 +1,4 @@
 /* Systemcall Entry Table */
-#include <linux/config.h>
 #include <linux/sys.h>
 #include <asm/linkage.h>
 #include <asm/unistd.h>
@@ -265,8 +264,8 @@ SYMBOL_NAME_LABEL(sys_call_table)
        .long SYMBOL_NAME(sys_io_getevents)
        .long SYMBOL_NAME(sys_io_submit)
        .long SYMBOL_NAME(sys_io_cancel)
-       .long SYMBOL_NAME(sys_ni_syscall)       /* 250 */ /* sys_alloc_hugepages */
-       .long SYMBOL_NAME(sys_ni_syscall)       /* sys_freec_hugepages */
+       .long SYMBOL_NAME(sys_fadvise64)        /* 250 */
+       .long SYMBOL_NAME(sys_ni_syscall)
        .long SYMBOL_NAME(sys_exit_group)
        .long SYMBOL_NAME(sys_lookup_dcookie)
        .long SYMBOL_NAME(sys_epoll_create)
@@ -287,36 +286,54 @@ SYMBOL_NAME_LABEL(sys_call_table)
        .long SYMBOL_NAME(sys_fstatfs64)        
        .long SYMBOL_NAME(sys_tgkill)           /* 270 */
        .long SYMBOL_NAME(sys_utimes)
+       .long SYMBOL_NAME(sys_fadvise64_64)
+       .long SYMBOL_NAME(sys_ni_syscall)       /* sys_vserver */
+       .long SYMBOL_NAME(sys_mbind)
+       .long SYMBOL_NAME(sys_get_mempolicy)
+       .long SYMBOL_NAME(sys_set_mempolicy)
+       .long SYMBOL_NAME(sys_mq_open)
+       .long SYMBOL_NAME(sys_mq_unlink)
+       .long SYMBOL_NAME(sys_mq_timedsend)
+       .long SYMBOL_NAME(sys_mq_timedreceive)  /* 280 */
+       .long SYMBOL_NAME(sys_mq_notify)
+       .long SYMBOL_NAME(sys_mq_getsetattr)
+       .long SYMBOL_NAME(sys_ni_syscall)       /* reserved for kexec */
+       .long SYMBOL_NAME(sys_waitid)
+       .long SYMBOL_NAME(sys_ni_syscall)       /* 285 */ /* available */
+       .long SYMBOL_NAME(sys_add_key)
+       .long SYMBOL_NAME(sys_request_key)
+       .long SYMBOL_NAME(sys_keyctl)
 
        .rept NR_syscalls-(.-SYMBOL_NAME(sys_call_table))/4
                .long SYMBOL_NAME(sys_ni_syscall)
        .endr
 
+       .macro  call_sp addr
+       mov.l   #SYMBOL_NAME(\addr),er6
+       bra     SYMBOL_NAME(syscall_trampoline):8
+       .endm
+
 SYMBOL_NAME_LABEL(sys_clone)   
-       mov.l   #SYMBOL_NAME(h8300_clone),er0
-       jmp     @SYMBOL_NAME(syscall_trampoline)
+       call_sp h8300_clone
        
 SYMBOL_NAME_LABEL(sys_sigsuspend)
-       mov.l   #SYMBOL_NAME(do_sigsuspend),er0
-       jmp     @SYMBOL_NAME(syscall_trampoline)
+       call_sp do_sigsuspend
 
 SYMBOL_NAME_LABEL(sys_rt_sigsuspend)
-       mov.l   #SYMBOL_NAME(do_rt_sigsuspend),er0
-       jmp     @SYMBOL_NAME(syscall_trampoline)
+       call_sp do_rt_sigsuspend
 
 SYMBOL_NAME_LABEL(sys_sigreturn)
-       mov.l   #SYMBOL_NAME(do_sigreturn),er0
-       jmp     @SYMBOL_NAME(syscall_trampoline)
+       call_sp do_sigreturn
 
 SYMBOL_NAME_LABEL(sys_rt_sigreturn)
-       mov.l   #SYMBOL_NAME(do_rt_sigreturn),er0
-       jmp     @SYMBOL_NAME(syscall_trampoline)
+       call_sp do_rt_sigreturn
 
 SYMBOL_NAME_LABEL(sys_fork)
-       mov.l   #SYMBOL_NAME(h8300_fork),er0
-       jmp     @SYMBOL_NAME(syscall_trampoline)
+       call_sp h8300_fork
 
 SYMBOL_NAME_LABEL(sys_vfork)
-       mov.l   #SYMBOL_NAME(h8300_vfork),er0
-       jmp     @SYMBOL_NAME(syscall_trampoline)
+       call_sp h8300_vfork
 
+SYMBOL_NAME_LABEL(syscall_trampoline)
+       mov.l   sp,er0
+       jmp     @er6