This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / arch / x86_64 / ia32 / ia32entry.S
index 0a2fb66..97bf25f 100644 (file)
@@ -270,35 +270,32 @@ quiet_ni_syscall:
        ret
        CFI_ENDPROC
        
-       .macro PTREGSCALL label, func
+       .macro PTREGSCALL label, func, arg
        .globl \label
 \label:
        leaq \func(%rip),%rax
+       leaq -ARGOFFSET+8(%rsp),\arg    /* 8 for return address */
        jmp  ia32_ptregs_common 
        .endm
 
-       PTREGSCALL stub32_rt_sigreturn, sys32_rt_sigreturn
-       PTREGSCALL stub32_sigreturn, sys32_sigreturn
-       PTREGSCALL stub32_sigaltstack, sys32_sigaltstack
-       PTREGSCALL stub32_sigsuspend, sys32_sigsuspend
-       PTREGSCALL stub32_execve, sys32_execve
-       PTREGSCALL stub32_fork, sys_fork
-       PTREGSCALL stub32_clone, sys32_clone
-       PTREGSCALL stub32_vfork, sys_vfork
-       PTREGSCALL stub32_iopl, sys_iopl
-       PTREGSCALL stub32_rt_sigsuspend, sys_rt_sigsuspend
+       PTREGSCALL stub32_rt_sigreturn, sys32_rt_sigreturn, %rdi
+       PTREGSCALL stub32_sigreturn, sys32_sigreturn, %rdi
+       PTREGSCALL stub32_sigaltstack, sys32_sigaltstack, %rdx
+       PTREGSCALL stub32_sigsuspend, sys32_sigsuspend, %rcx
+       PTREGSCALL stub32_execve, sys32_execve, %rcx
+       PTREGSCALL stub32_fork, sys_fork, %rdi
+       PTREGSCALL stub32_clone, sys32_clone, %rdx
+       PTREGSCALL stub32_vfork, sys_vfork, %rdi
+       PTREGSCALL stub32_iopl, sys_iopl, %rsi
+       PTREGSCALL stub32_rt_sigsuspend, sys_rt_sigsuspend, %rdx
 
 ENTRY(ia32_ptregs_common)
        CFI_STARTPROC
        popq %r11
        SAVE_REST
-       movq %r11, %r15
        call *%rax
-       movq %r15, %r11
        RESTORE_REST
-       leaq ia32_sysret(%rip),%r11
-       pushq %r11
-       ret
+       jmp  ia32_sysret        /* misbalances the return cache */
        CFI_ENDPROC
 
        .data
@@ -332,7 +329,7 @@ ia32_sys_call_table:
        .quad sys_getuid16
        .quad sys_stime         /* stime */             /* 25 */
        .quad sys32_ptrace      /* ptrace */
-       .quad sys_alarm         /* XXX sign extension??? */ 
+       .quad sys_alarm
        .quad sys_fstat /* (old)fstat */
        .quad sys_pause
        .quad compat_sys_utime  /* 30 */
@@ -350,7 +347,7 @@ ia32_sys_call_table:
        .quad sys32_pipe
        .quad compat_sys_times
        .quad quiet_ni_syscall                  /* old prof syscall holder */
-       .quad sys_brk           /* 45 */
+       .quad sys32_brk         /* 45 */
        .quad sys_setgid16
        .quad sys_getgid16
        .quad sys_signal
@@ -394,9 +391,9 @@ ia32_sys_call_table:
        .quad sys_uselib
        .quad sys_swapon
        .quad sys_reboot
-       .quad sys32_oldreaddir
+       .quad compat_sys_old_readdir
        .quad sys32_mmap                /* 90 */
-       .quad sys_munmap
+       .quad sys32_munmap
        .quad sys_truncate
        .quad sys_ftruncate
        .quad sys_fchmod
@@ -436,7 +433,7 @@ ia32_sys_call_table:
        .quad sys_init_module
        .quad sys_delete_module
        .quad quiet_ni_syscall          /* 130  get_kernel_syms */
-       .quad sys32_quotactl            /* quotactl */ 
+       .quad sys_quotactl
        .quad sys_getpgid
        .quad sys_fchdir
        .quad quiet_ni_syscall  /* bdflush */
@@ -446,7 +443,7 @@ ia32_sys_call_table:
        .quad sys_setfsuid16
        .quad sys_setfsgid16
        .quad sys_llseek                /* 140 */
-       .quad sys32_getdents
+       .quad compat_sys_getdents
        .quad compat_sys_select
        .quad sys_flock
        .quad sys_msync
@@ -468,7 +465,7 @@ ia32_sys_call_table:
        .quad sys_sched_get_priority_min  /* 160 */
        .quad sys_sched_rr_get_interval
        .quad compat_sys_nanosleep
-       .quad sys_mremap
+       .quad sys32_mremap
        .quad sys_setresuid16
        .quad sys_getresuid16   /* 165 */
        .quad sys32_vm86_warning        /* vm86 */ 
@@ -525,9 +522,17 @@ ia32_sys_call_table:
        .quad sys_pivot_root
        .quad sys_mincore
        .quad sys_madvise
-       .quad sys_getdents64    /* 220 getdents64 */ 
+       .quad compat_sys_getdents64     /* 220 getdents64 */
        .quad compat_sys_fcntl64        
-       .quad quiet_ni_syscall          /* tux */
+#ifdef CONFIG_TUX
+       .quad __sys_tux
+#else
+# ifdef CONFIG_TUX_MODULE
+       .quad sys_tux
+# else
+       .quad quiet_ni_syscall
+# endif
+#endif
        .quad quiet_ni_syscall          /* security */
        .quad sys_gettid        
        .quad sys_readahead     /* 225 */
@@ -550,37 +555,37 @@ ia32_sys_call_table:
        .quad compat_sys_sched_getaffinity
        .quad sys32_set_thread_area
        .quad sys32_get_thread_area
-       .quad sys32_io_setup            /* 245 */
+       .quad compat_sys_io_setup       /* 245 */
        .quad sys_io_destroy
-       .quad sys32_io_getevents
-       .quad sys32_io_submit
+       .quad compat_sys_io_getevents
+       .quad compat_sys_io_submit
        .quad sys_io_cancel
        .quad sys_fadvise64             /* 250 */
        .quad quiet_ni_syscall  /* free_huge_pages */
        .quad sys_exit_group
-       .quad sys_lookup_dcookie
+       .quad sys32_lookup_dcookie
        .quad sys_epoll_create
        .quad sys_epoll_ctl             /* 255 */
        .quad sys_epoll_wait
        .quad sys_remap_file_pages
        .quad sys_set_tid_address
        .quad sys32_timer_create
-       .quad compat_timer_settime      /* 260 */
-       .quad compat_timer_gettime
+       .quad compat_sys_timer_settime  /* 260 */
+       .quad compat_sys_timer_gettime
        .quad sys_timer_getoverrun
        .quad sys_timer_delete
-       .quad compat_clock_settime
-       .quad compat_clock_gettime      /* 265 */
-       .quad compat_clock_getres
-       .quad compat_clock_nanosleep
-       .quad compat_statfs64
-       .quad compat_fstatfs64
+       .quad compat_sys_clock_settime
+       .quad compat_sys_clock_gettime  /* 265 */
+       .quad compat_sys_clock_getres
+       .quad compat_sys_clock_nanosleep
+       .quad compat_sys_statfs64
+       .quad compat_sys_fstatfs64
        .quad sys_tgkill                /* 270 */
        .quad compat_sys_utimes
        .quad sys32_fadvise64_64
-       .quad quiet_ni_syscall  /* sys_vserver */
+       .quad sys_vserver
        .quad sys_mbind
-       .quad compat_get_mempolicy      /* 275 */
+       .quad compat_sys_get_mempolicy  /* 275 */
        .quad sys_set_mempolicy
        .quad compat_sys_mq_open
        .quad sys_mq_unlink
@@ -589,6 +594,7 @@ ia32_sys_call_table:
        .quad compat_sys_mq_notify
        .quad compat_sys_mq_getsetattr
        .quad quiet_ni_syscall          /* reserved for kexec */
+       .quad sys32_waitid
        /* don't forget to change IA32_NR_syscalls */
 ia32_syscall_end:              
        .rept IA32_NR_syscalls-(ia32_syscall_end-ia32_sys_call_table)/8