Merge to Fedora kernel-2.6.18-1.2224_FC5 patched with stable patch-2.6.18.1-vs2.0...
[linux-2.6.git] / arch / mips / kernel / scall64-n32.S
index 9993a8a..a28aba1 100644 (file)
@@ -7,10 +7,10 @@
  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
  * Copyright (C) 2001 MIPS Technologies, Inc.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <asm/asm.h>
 #include <asm/asmmacro.h>
+#include <asm/irqflags.h>
 #include <asm/mipsregs.h>
 #include <asm/regdef.h>
 #include <asm/stackframe.h>
@@ -33,11 +33,12 @@ NESTED(handle_sysn32, PT_SIZE, sp)
 #ifndef CONFIG_MIPS32_O32
        .set    noat
        SAVE_SOME
+       TRACE_IRQS_ON
        STI
        .set    at
 #endif
 
-       subu    t0, v0, __NR_N32_Linux  # check syscall number
+       dsubu   t0, v0, __NR_N32_Linux  # check syscall number
        sltiu   t0, t0, __NR_N32_Linux_syscalls + 1
 
 #ifndef CONFIG_MIPS32_O32
@@ -64,11 +65,10 @@ NESTED(handle_sysn32, PT_SIZE, sp)
        sd      t0, PT_R7(sp)           # set error flag
        beqz    t0, 1f
 
-       negu    v0                      # error
+       dnegu   v0                      # error
        sd      v0, PT_R0(sp)           # set flag for syscall restarting
 1:     sd      v0, PT_R2(sp)           # result
 
-FEXPORT(n32_syscall_exit)
        local_irq_disable               # make sure need_resched and
                                        # signals dont change between
                                        # sampling and return
@@ -86,28 +86,31 @@ n32_syscall_exit_work:
 
 n32_syscall_trace_entry:
        SAVE_STATIC
-       sd      t2,PT_R1(sp)
+       move    s0, t2
        move    a0, sp
        li      a1, 0
        jal     do_syscall_trace
-       ld      t2,PT_R1(sp)
 
+       move    t0, s0
+       RESTORE_STATIC
        ld      a0, PT_R4(sp)           # Restore argument registers
        ld      a1, PT_R5(sp)
        ld      a2, PT_R6(sp)
        ld      a3, PT_R7(sp)
-       jalr    t2
+       ld      a4, PT_R8(sp)
+       ld      a5, PT_R9(sp)
+       jalr    t0
 
        li      t0, -EMAXERRNO - 1      # error?
        sltu    t0, t0, v0
        sd      t0, PT_R7(sp)           # set error flag
        beqz    t0, 1f
 
-       negu    v0                      # error
+       dnegu   v0                      # error
        sd      v0, PT_R0(sp)           # set flag for syscall restarting
 1:     sd      v0, PT_R2(sp)           # result
 
-       j       n32_syscall_exit
+       j       syscall_exit
 
 not_n32_scall:
        /* This is not an n32 compatibility syscall, pass it on to
@@ -176,7 +179,7 @@ EXPORT(sysn32_call_table)
        PTR     sys_fork
        PTR     sys32_execve
        PTR     sys_exit
-       PTR     sys32_wait4
+       PTR     compat_sys_wait4
        PTR     sys_kill                        /* 6060 */
        PTR     sys32_newuname
        PTR     sys_semget
@@ -193,7 +196,7 @@ EXPORT(sysn32_call_table)
        PTR     sys_fdatasync
        PTR     sys_truncate
        PTR     sys_ftruncate                   /* 6075 */
-       PTR     sys32_getdents
+       PTR     compat_sys_getdents
        PTR     sys_getcwd
        PTR     sys_chdir
        PTR     sys_fchdir
@@ -216,7 +219,7 @@ EXPORT(sysn32_call_table)
        PTR     compat_sys_getrusage
        PTR     sys32_sysinfo
        PTR     compat_sys_times
-       PTR     sys_ptrace
+       PTR     sys32_ptrace
        PTR     sys_getuid                      /* 6100 */
        PTR     sys_syslog
        PTR     sys_getgid
@@ -243,14 +246,14 @@ EXPORT(sysn32_call_table)
        PTR     sys_capget
        PTR     sys_capset
        PTR     sys32_rt_sigpending             /* 6125 */
-       PTR     sys32_rt_sigtimedwait
-       PTR     sys32_rt_sigqueueinfo
-       PTR     sys32_rt_sigsuspend
+       PTR     compat_sys_rt_sigtimedwait
+       PTR     sys_rt_sigqueueinfo
+       PTR     sysn32_rt_sigsuspend
        PTR     sys32_sigaltstack
        PTR     compat_sys_utime                /* 6130 */
        PTR     sys_mknod
        PTR     sys32_personality
-       PTR     sys_ustat
+       PTR     sys32_ustat
        PTR     compat_sys_statfs
        PTR     compat_sys_fstatfs              /* 6135 */
        PTR     sys_sysfs
@@ -271,7 +274,7 @@ EXPORT(sysn32_call_table)
        PTR     sys_pivot_root
        PTR     sys32_sysctl
        PTR     sys_prctl
-       PTR     sys32_adjtimex
+       PTR     compat_sys_adjtimex
        PTR     compat_sys_setrlimit            /* 6155 */
        PTR     sys_chroot
        PTR     sys_sync
@@ -329,23 +332,23 @@ EXPORT(sysn32_call_table)
        PTR     sys_epoll_wait
        PTR     sys_remap_file_pages            /* 6210 */
        PTR     sysn32_rt_sigreturn
-       PTR     sys_fcntl
+       PTR     compat_sys_fcntl64
        PTR     sys_set_tid_address
        PTR     sys_restart_syscall
        PTR     sys_semtimedop                  /* 6215 */
        PTR     sys_fadvise64_64
-       PTR     sys_statfs64
-       PTR     sys_fstatfs64
+       PTR     compat_sys_statfs64
+       PTR     compat_sys_fstatfs64
        PTR     sys_sendfile64
-       PTR     sys_timer_create                /* 6220 */
-       PTR     sys_timer_settime
-       PTR     sys_timer_gettime
+       PTR     sys32_timer_create              /* 6220 */
+       PTR     compat_sys_timer_settime
+       PTR     compat_sys_timer_gettime
        PTR     sys_timer_getoverrun
        PTR     sys_timer_delete
-       PTR     sys_clock_settime               /* 6225 */
-       PTR     sys_clock_gettime
-       PTR     sys_clock_getres
-       PTR     sys_clock_nanosleep
+       PTR     compat_sys_clock_settime                /* 6225 */
+       PTR     compat_sys_clock_gettime
+       PTR     compat_sys_clock_getres
+       PTR     compat_sys_clock_nanosleep
        PTR     sys_tgkill
        PTR     compat_sys_utimes               /* 6230 */
        PTR     sys_ni_syscall                  /* sys_mbind */
@@ -356,4 +359,36 @@ EXPORT(sysn32_call_table)
        PTR     compat_sys_mq_timedsend
        PTR     compat_sys_mq_timedreceive
        PTR     compat_sys_mq_notify
-       PTR     compat_sys_mq_getsetattr        /* 6239 */
+       PTR     compat_sys_mq_getsetattr
+       PTR     sys32_vserver                   /* 6240 */
+       PTR     sysn32_waitid
+       PTR     sys_ni_syscall                  /* available, was setaltroot */
+       PTR     sys_add_key
+       PTR     sys_request_key
+       PTR     sys_keyctl                      /* 6245 */
+       PTR     sys_set_thread_area
+       PTR     sys_inotify_init
+       PTR     sys_inotify_add_watch
+       PTR     sys_inotify_rm_watch
+       PTR     sys_migrate_pages               /* 6250 */
+       PTR     sys_openat
+       PTR     sys_mkdirat
+       PTR     sys_mknodat
+       PTR     sys_fchownat
+       PTR     sys_futimesat                   /* 6255 */
+       PTR     sys_newfstatat
+       PTR     sys_unlinkat
+       PTR     sys_renameat
+       PTR     sys_linkat
+       PTR     sys_symlinkat                   /* 6260 */
+       PTR     sys_readlinkat
+       PTR     sys_fchmodat
+       PTR     sys_faccessat
+       PTR     sys_pselect6
+       PTR     sys_ppoll                       /* 6265 */
+       PTR     sys_unshare
+       PTR     sys_splice
+       PTR     sys_sync_file_range
+       PTR     sys_tee
+       PTR     sys_vmsplice                    /* 6271 */
+       PTR     sys_move_pages