ALSA: usb-audio: add support for Akai MPD16
[safe/jmp/linux-2.6] / arch / mips / kernel / scall64-o32.S
index 8efb23a..813689e 100644 (file)
  * to ABI64 calling convention.  64-bit syscalls are also processed
  * here for now.
  */
-#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>
@@ -28,6 +28,7 @@
 NESTED(handle_sys, PT_SIZE, sp)
        .set    noat
        SAVE_SOME
+       TRACE_IRQS_ON_RELOAD
        STI
        .set    at
        ld      t1, PT_EPC(sp)          # skip syscall on return
@@ -173,14 +174,12 @@ not_o32_scall:
        END(handle_sys)
 
 LEAF(sys32_syscall)
-       sltu    v0, a0, __NR_O32_Linux + __NR_O32_Linux_syscalls + 1
+       subu    t0, a0, __NR_O32_Linux  # check syscall number
+       sltiu   v0, t0, __NR_O32_Linux_syscalls + 1
+       beqz    t0, einval              # do not recurse
+       dsll    t1, t0, 3
        beqz    v0, einval
-
-       dsll    v0, a0, 3
-       ld      t2, (sys_call_table - (__NR_O32_Linux * 8))(v0)
-
-       li      v1, 4000                # indirect syscall number
-       beq     a0, v1, einval          # do not recurse
+       ld      t2, sys_call_table(t1)          # syscall routine
 
        move    a0, a1                  # shift argument registers
        move    a1, a2
@@ -197,7 +196,7 @@ LEAF(sys32_syscall)
        jr      t2
        /* Unreached */
 
-einval:        li      v0, -EINVAL
+einval:        li      v0, -ENOSYS
        jr      ra
        END(sys32_syscall)
 
@@ -225,12 +224,12 @@ sys_call_table:
        PTR     sys_ni_syscall                  /* was sys_stat */
        PTR     sys_lseek
        PTR     sys_getpid                      /* 4020 */
-       PTR     sys_mount
+       PTR     compat_sys_mount
        PTR     sys_oldumount
        PTR     sys_setuid
        PTR     sys_getuid
        PTR     compat_sys_stime                /* 4025 */
-       PTR     sys32_ptrace
+       PTR     compat_sys_ptrace
        PTR     sys_alarm
        PTR     sys_ni_syscall                  /* was sys_fstat */
        PTR     sys_pause
@@ -246,7 +245,7 @@ sys_call_table:
        PTR     sys_mkdir
        PTR     sys_rmdir                       /* 4040 */
        PTR     sys_dup
-       PTR     sys_pipe
+       PTR     sysm_pipe
        PTR     compat_sys_times
        PTR     sys_ni_syscall
        PTR     sys_brk                         /* 4045 */
@@ -266,12 +265,12 @@ sys_call_table:
        PTR     sys_olduname
        PTR     sys_umask                       /* 4060 */
        PTR     sys_chroot
-       PTR     sys32_ustat
+       PTR     compat_sys_ustat
        PTR     sys_dup2
        PTR     sys_getppid
        PTR     sys_getpgrp                     /* 4065 */
        PTR     sys_setsid
-       PTR     sys32_sigaction
+       PTR     sys_32_sigaction
        PTR     sys_sgetmask
        PTR     sys_ssetmask
        PTR     sys_setreuid                    /* 4070 */
@@ -282,8 +281,8 @@ sys_call_table:
        PTR     compat_sys_setrlimit            /* 4075 */
        PTR     compat_sys_getrlimit
        PTR     compat_sys_getrusage
-       PTR     sys32_gettimeofday
-       PTR     sys32_settimeofday
+       PTR     compat_sys_gettimeofday
+       PTR     compat_sys_settimeofday
        PTR     sys_getgroups                   /* 4080 */
        PTR     sys_setgroups
        PTR     sys_ni_syscall                  /* old_select */
@@ -294,7 +293,7 @@ sys_call_table:
        PTR     sys_swapon
        PTR     sys_reboot
        PTR     compat_sys_old_readdir
-       PTR     old_mmap                        /* 4090 */
+       PTR     sys_mips_mmap                   /* 4090 */
        PTR     sys_munmap
        PTR     sys_truncate
        PTR     sys_ftruncate
@@ -306,7 +305,7 @@ sys_call_table:
        PTR     compat_sys_statfs
        PTR     compat_sys_fstatfs              /* 4100 */
        PTR     sys_ni_syscall                  /* sys_ioperm */
-       PTR     sys32_socketcall
+       PTR     compat_sys_socketcall
        PTR     sys_syslog
        PTR     compat_sys_setitimer
        PTR     compat_sys_getitimer            /* 4105 */
@@ -320,13 +319,13 @@ sys_call_table:
        PTR     sys_ni_syscall                  /* sys_vm86 */
        PTR     compat_sys_wait4
        PTR     sys_swapoff                     /* 4115 */
-       PTR     sys32_sysinfo
-       PTR     sys32_ipc
+       PTR     compat_sys_sysinfo
+       PTR     sys_32_ipc
        PTR     sys_fsync
        PTR     sys32_sigreturn
        PTR     sys32_clone                     /* 4120 */
        PTR     sys_setdomainname
-       PTR     sys32_newuname
+       PTR     sys_newuname
        PTR     sys_ni_syscall                  /* sys_modify_ldt */
        PTR     compat_sys_adjtimex
        PTR     sys_mprotect                    /* 4125 */
@@ -340,11 +339,11 @@ sys_call_table:
        PTR     sys_fchdir
        PTR     sys_bdflush
        PTR     sys_sysfs                       /* 4135 */
-       PTR     sys32_personality
+       PTR     sys_32_personality
        PTR     sys_ni_syscall                  /* for afs_syscall */
        PTR     sys_setfsuid
        PTR     sys_setfsgid
-       PTR     sys32_llseek                    /* 4140 */
+       PTR     sys_32_llseek                   /* 4140 */
        PTR     compat_sys_getdents
        PTR     compat_sys_select
        PTR     sys_flock
@@ -357,7 +356,7 @@ sys_call_table:
        PTR     sys_ni_syscall                  /* 4150 */
        PTR     sys_getsid
        PTR     sys_fdatasync
-       PTR     sys32_sysctl
+       PTR     compat_sys_sysctl
        PTR     sys_mlock
        PTR     sys_munlock                     /* 4155 */
        PTR     sys_mlockall
@@ -369,7 +368,7 @@ sys_call_table:
        PTR     sys_sched_yield
        PTR     sys_sched_get_priority_max
        PTR     sys_sched_get_priority_min
-       PTR     sys32_sched_rr_get_interval     /* 4165 */
+       PTR     sys_32_sched_rr_get_interval    /* 4165 */
        PTR     compat_sys_nanosleep
        PTR     sys_mremap
        PTR     sys_accept
@@ -379,8 +378,8 @@ sys_call_table:
        PTR     sys_getsockname
        PTR     sys_getsockopt
        PTR     sys_listen
-       PTR     sys_recv                        /* 4175 */
-       PTR     sys_recvfrom
+       PTR     compat_sys_recv                 /* 4175 */
+       PTR     compat_sys_recvfrom
        PTR     compat_sys_recvmsg
        PTR     sys_send
        PTR     compat_sys_sendmsg
@@ -398,25 +397,25 @@ sys_call_table:
        PTR     sys_getresgid
        PTR     sys_prctl
        PTR     sys32_rt_sigreturn
-       PTR     sys32_rt_sigaction
-       PTR     sys32_rt_sigprocmask            /* 4195 */
-       PTR     sys32_rt_sigpending
+       PTR     sys_32_rt_sigaction
+       PTR     sys_32_rt_sigprocmask           /* 4195 */
+       PTR     sys_32_rt_sigpending
        PTR     compat_sys_rt_sigtimedwait
-       PTR     sys32_rt_sigqueueinfo
+       PTR     sys_32_rt_sigqueueinfo
        PTR     sys32_rt_sigsuspend
-       PTR     sys32_pread                     /* 4200 */
-       PTR     sys32_pwrite
+       PTR     sys_32_pread                    /* 4200 */
+       PTR     sys_32_pwrite
        PTR     sys_chown
        PTR     sys_getcwd
        PTR     sys_capget
        PTR     sys_capset                      /* 4205 */
        PTR     sys32_sigaltstack
-       PTR     sys32_sendfile
+       PTR     sys_32_sendfile
        PTR     sys_ni_syscall
        PTR     sys_ni_syscall
-       PTR     sys32_mmap2                     /* 4210 */
-       PTR     sys32_truncate64
-       PTR     sys32_ftruncate64
+       PTR     sys_mips_mmap2                  /* 4210 */
+       PTR     sys_32_truncate64
+       PTR     sys_32_ftruncate64
        PTR     sys_newstat
        PTR     sys_newlstat
        PTR     sys_newfstat                    /* 4215 */
@@ -451,17 +450,17 @@ sys_call_table:
        PTR     sys_io_submit
        PTR     sys_io_cancel                   /* 4245 */
        PTR     sys_exit_group
-       PTR     sys_lookup_dcookie
+       PTR     sys32_lookup_dcookie
        PTR     sys_epoll_create
        PTR     sys_epoll_ctl
        PTR     sys_epoll_wait                  /* 4250 */
        PTR     sys_remap_file_pages
        PTR     sys_set_tid_address
        PTR     sys_restart_syscall
-       PTR     sys_fadvise64_64
+       PTR     sys32_fadvise64_64
        PTR     compat_sys_statfs64             /* 4255 */
        PTR     compat_sys_fstatfs64
-       PTR     sys32_timer_create
+       PTR     compat_sys_timer_create
        PTR     compat_sys_timer_settime
        PTR     compat_sys_timer_gettime
        PTR     sys_timer_getoverrun            /* 4260 */
@@ -482,7 +481,7 @@ sys_call_table:
        PTR     compat_sys_mq_notify            /* 4275 */
        PTR     compat_sys_mq_getsetattr
        PTR     sys_ni_syscall                  /* sys_vserver */
-       PTR     sys32_waitid
+       PTR     sys_32_waitid
        PTR     sys_ni_syscall                  /* available, was setaltroot */
        PTR     sys_add_key                     /* 4280 */
        PTR     sys_request_key
@@ -497,7 +496,7 @@ sys_call_table:
        PTR     sys_mknodat                     /* 4290 */
        PTR     sys_fchownat
        PTR     compat_sys_futimesat
-       PTR     compat_sys_newfstatat
+       PTR     sys_newfstatat
        PTR     sys_unlinkat
        PTR     sys_renameat                    /* 4295 */
        PTR     sys_linkat
@@ -505,9 +504,39 @@ sys_call_table:
        PTR     sys_readlinkat
        PTR     sys_fchmodat
        PTR     sys_faccessat                   /* 4300 */
-       PTR     sys_pselect6
-       PTR     sys_ppoll
+       PTR     compat_sys_pselect6
+       PTR     compat_sys_ppoll
        PTR     sys_unshare
        PTR     sys_splice
        PTR     sys32_sync_file_range           /* 4305 */
+       PTR     sys_tee
+       PTR     compat_sys_vmsplice
+       PTR     compat_sys_move_pages
+       PTR     compat_sys_set_robust_list
+       PTR     compat_sys_get_robust_list      /* 4310 */
+       PTR     compat_sys_kexec_load
+       PTR     sys_getcpu
+       PTR     compat_sys_epoll_pwait
+       PTR     sys_ioprio_set
+       PTR     sys_ioprio_get                  /* 4315 */
+       PTR     compat_sys_utimensat
+       PTR     compat_sys_signalfd
+       PTR     sys_ni_syscall
+       PTR     sys_eventfd
+       PTR     sys32_fallocate                 /* 4320 */
+       PTR     sys_timerfd_create
+       PTR     compat_sys_timerfd_gettime
+       PTR     compat_sys_timerfd_settime
+       PTR     compat_sys_signalfd4
+       PTR     sys_eventfd2                    /* 4325 */
+       PTR     sys_epoll_create1
+       PTR     sys_dup3
+       PTR     sys_pipe2
+       PTR     sys_inotify_init1
+       PTR     compat_sys_preadv               /* 4330 */
+       PTR     compat_sys_pwritev
+       PTR     compat_sys_rt_tgsigqueueinfo
+       PTR     sys_perf_event_open
+       PTR     sys_accept4
+       PTR     compat_sys_recvmmsg
        .size   sys_call_table,.-sys_call_table