fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / ia64 / ia32 / ia32_entry.S
index 4ee1e55..722eb76 100644 (file)
@@ -1,6 +1,6 @@
 #include <asm/asmmacro.h>
 #include <asm/ia32.h>
-#include <asm/offsets.h>
+#include <asm/asm-offsets.h>
 #include <asm/signal.h>
 #include <asm/thread_info.h>
 
@@ -32,7 +32,7 @@ ENTRY(ia32_execve)
 END(ia32_execve)
 
 ENTRY(ia32_clone)
-       .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2)
+       .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(5)
        alloc r16=ar.pfs,5,2,6,0
        DO_SAVE_SWITCH_STACK
        mov loc0=rp
@@ -41,7 +41,7 @@ ENTRY(ia32_clone)
        zxt4 out1=in1                           // newsp
        mov out3=16                             // stacksize (compensates for 16-byte scratch area)
        adds out2=IA64_SWITCH_STACK_SIZE+16,sp  // out2 = &regs
-       dep out0=0,in0,CLONE_IDLETASK_BIT,1     // out0 = clone_flags & ~CLONE_IDLETASK
+       mov out0=in0                            // out0 = clone_flags
        zxt4 out4=in2                           // out4 = parent_tidptr
        zxt4 out5=in4                           // out5 = child_tidptr
        br.call.sptk.many rp=do_fork
@@ -110,7 +110,9 @@ GLOBAL_ENTRY(ia32_ret_from_clone)
        ld4 r2=[r2]
        ;;
        mov r8=0
-       tbit.nz p6,p0=r2,TIF_SYSCALL_TRACE
+       and r2=_TIF_SYSCALL_TRACEAUDIT,r2
+       ;;
+       cmp.ne p6,p0=r2,r0
 (p6)   br.cond.spnt .ia32_strace_check_retval
        ;;                                      // prevent RAW on r8
 END(ia32_ret_from_clone)
@@ -142,7 +144,7 @@ GLOBAL_ENTRY(ia32_trace_syscall)
        adds r2=IA64_PT_REGS_R8_OFFSET+16,sp
        ;;
        st8 [r2]=r3                             // initialize return code to -ENOSYS
-       br.call.sptk.few rp=syscall_trace       // give parent a chance to catch syscall args
+       br.call.sptk.few rp=syscall_trace_enter // give parent a chance to catch syscall args
 .ret2: // Need to reload arguments (they may be changed by the tracing process)
        adds r2=IA64_PT_REGS_R1_OFFSET+16,sp    // r2 = &pt_regs.r1
        adds r3=IA64_PT_REGS_R13_OFFSET+16,sp   // r3 = &pt_regs.r13
@@ -170,7 +172,7 @@ GLOBAL_ENTRY(ia32_trace_syscall)
        adds r2=IA64_PT_REGS_R8_OFFSET+16,sp    // r2 = &pt_regs.r8
        ;;
        st8.spill [r2]=r8                       // store return value in slot for r8
-       br.call.sptk.few rp=syscall_trace       // give parent a chance to catch return value
+       br.call.sptk.few rp=syscall_trace_leave // give parent a chance to catch return value
 .ret4: alloc r2=ar.pfs,0,0,0,0                 // drop the syscall argument frame
        br.cond.sptk.many ia64_leave_kernel
 END(ia32_trace_syscall)
@@ -213,7 +215,7 @@ ia32_syscall_table:
        data8 sys32_fork
        data8 sys_read
        data8 sys_write
-       data8 sys32_open          /* 5 */
+       data8 compat_sys_open     /* 5 */
        data8 sys_close
        data8 sys32_waitpid
        data8 sys_creat
@@ -221,7 +223,7 @@ ia32_syscall_table:
        data8 sys_unlink          /* 10 */
        data8 ia32_execve
        data8 sys_chdir
-       data8 sys32_time
+       data8 compat_sys_time
        data8 sys_mknod
        data8 sys_chmod           /* 15 */
        data8 sys_lchown        /* 16-bit version */
@@ -233,8 +235,8 @@ ia32_syscall_table:
        data8 sys_oldumount
        data8 sys_setuid        /* 16-bit version */
        data8 sys_getuid        /* 16-bit version */
-       data8 sys_ni_syscall    /* sys_stime is not supported on IA64 */  /* 25 */
-       data8 sys32_ptrace
+       data8 compat_sys_stime    /* 25 */
+       data8 compat_sys_ptrace
        data8 sys32_alarm
        data8 sys_ni_syscall
        data8 sys32_pause
@@ -309,7 +311,7 @@ ia32_syscall_table:
        data8 sys_ni_syscall      /* old profil syscall holder */
        data8 compat_sys_statfs
        data8 compat_sys_fstatfs          /* 100 */
-       data8 sys32_ioperm
+       data8 sys_ni_syscall    /* ioperm */
        data8 compat_sys_socketcall
        data8 sys_syslog
        data8 compat_sys_setitimer
@@ -318,7 +320,7 @@ ia32_syscall_table:
        data8 compat_sys_newlstat
        data8 compat_sys_newfstat
        data8 sys_ni_syscall
-       data8 sys32_iopl                  /* 110 */
+       data8 sys_ni_syscall    /* iopl */      /* 110 */
        data8 sys_vhangup
        data8 sys_ni_syscall            /* used to be sys_idle */
        data8 sys_ni_syscall
@@ -332,7 +334,7 @@ ia32_syscall_table:
        data8 sys_setdomainname
        data8 sys32_newuname
        data8 sys32_modify_ldt
-       data8 sys_ni_syscall    /* adjtimex */
+       data8 compat_sys_adjtimex
        data8 sys32_mprotect      /* 125 */
        data8 compat_sys_sigprocmask
        data8 sys_ni_syscall    /* create_module */
@@ -349,7 +351,7 @@ ia32_syscall_table:
        data8 sys_setfsuid      /* 16-bit version */
        data8 sys_setfsgid      /* 16-bit version */
        data8 sys_llseek          /* 140 */
-       data8 sys32_getdents
+       data8 compat_sys_getdents
        data8 compat_sys_select
        data8 sys_flock
        data8 sys32_msync
@@ -371,7 +373,7 @@ ia32_syscall_table:
        data8 sys_sched_get_priority_min         /* 160 */
        data8 sys32_sched_rr_get_interval
        data8 compat_sys_nanosleep
-       data8 sys_mremap
+       data8 sys32_mremap
        data8 sys_setresuid     /* 16-bit version */
        data8 sys32_getresuid16 /* 16-bit version */      /* 165 */
        data8 sys_ni_syscall    /* vm86 */
@@ -385,7 +387,7 @@ ia32_syscall_table:
        data8 sys32_rt_sigaction
        data8 sys32_rt_sigprocmask /* 175 */
        data8 sys_rt_sigpending
-       data8 sys32_rt_sigtimedwait
+       data8 compat_sys_rt_sigtimedwait
        data8 sys32_rt_sigqueueinfo
        data8 sys32_rt_sigsuspend
        data8 sys32_pread         /* 180 */
@@ -428,7 +430,7 @@ ia32_syscall_table:
        data8 sys_pivot_root
        data8 sys_mincore
        data8 sys_madvise
-       data8 sys_getdents64      /* 220 */
+       data8 compat_sys_getdents64       /* 220 */
        data8 compat_sys_fcntl64
        data8 sys_ni_syscall            /* reserved for TUX */
        data8 sys_ni_syscall            /* reserved for Security */
@@ -467,21 +469,21 @@ ia32_syscall_table:
        data8 sys32_epoll_wait
        data8 sys_remap_file_pages
        data8 sys_set_tid_address
-       data8 sys32_timer_create
-       data8 compat_timer_settime      /* 260 */
-       data8 compat_timer_gettime
+       data8 compat_sys_timer_create
+       data8 compat_sys_timer_settime  /* 260 */
+       data8 compat_sys_timer_gettime
        data8 sys_timer_getoverrun
        data8 sys_timer_delete
-       data8 compat_clock_settime
-       data8 compat_clock_gettime /* 265 */
-       data8 compat_clock_getres
-       data8 compat_clock_nanosleep
-       data8 sys_statfs64
-       data8 sys_fstatfs64
+       data8 compat_sys_clock_settime
+       data8 compat_sys_clock_gettime /* 265 */
+       data8 compat_sys_clock_getres
+       data8 compat_sys_clock_nanosleep
+       data8 compat_sys_statfs64
+       data8 compat_sys_fstatfs64
        data8 sys_tgkill        /* 270 */
        data8 compat_sys_utimes
        data8 sys32_fadvise64_64
-       data8 sys_ni_syscall
+       data8 sys32_vserver
        data8 sys_ni_syscall
        data8 sys_ni_syscall    /* 275 */
        data8 sys_ni_syscall
@@ -491,6 +493,8 @@ ia32_syscall_table:
        data8 compat_sys_mq_timedreceive        /* 280 */
        data8 compat_sys_mq_notify
        data8 compat_sys_mq_getsetattr
+       data8 sys_ni_syscall            /* reserved for kexec */
+       data8 compat_sys_waitid
 
        // guard against failures to increase IA32_NR_syscalls
        .org ia32_syscall_table + 8*IA32_NR_syscalls