fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / asm-x86_64 / ia32.h
index b29899e..0190b7c 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef _ASM_X86_64_IA32_H
 #define _ASM_X86_64_IA32_H
 
-#include <linux/config.h>
 
 #ifdef CONFIG_IA32_EMULATION
 
@@ -78,13 +77,7 @@ struct stat64 {
        unsigned long long      st_ino;
 } __attribute__((packed));
 
-
-typedef union sigval32 {
-       int sival_int;
-       unsigned int sival_ptr;
-} sigval_t32;
-
-typedef struct siginfo32 {
+typedef struct compat_siginfo{
        int si_signo;
        int si_errno;
        int si_code;
@@ -100,9 +93,9 @@ typedef struct siginfo32 {
 
                /* POSIX.1b timers */
                struct {
-                       int _tid;               /* timer id */
+                       compat_timer_t _tid;    /* timer id */
                        int _overrun;           /* overrun count */
-                       sigval_t32 _sigval;     /* same as below */
+                       compat_sigval_t _sigval;        /* same as below */
                        int _sys_private;       /* not to be passed to user */
                        int _overrun_incr;      /* amount to add to overrun */
                } _timer;
@@ -111,7 +104,7 @@ typedef struct siginfo32 {
                struct {
                        unsigned int _pid;      /* sender's pid */
                        unsigned int _uid;      /* sender's uid */
-                       sigval_t32 _sigval;
+                       compat_sigval_t _sigval;
                } _rt;
 
                /* SIGCHLD */
@@ -134,7 +127,7 @@ typedef struct siginfo32 {
                        int _fd;
                } _sigpoll;
        } _sifields;
-} siginfo_t32;
+} compat_siginfo_t;
 
 struct sigframe32
 {
@@ -151,7 +144,7 @@ struct rt_sigframe32
         int sig;
         u32 pinfo;
         u32 puc;
-        struct siginfo32 info;
+        compat_siginfo_t info;
         struct ucontext_ia32 uc;
         struct _fpstate_ia32 fpstate;
 };
@@ -168,11 +161,16 @@ struct ustat32 {
 #ifdef __KERNEL__
 struct user_desc;
 struct siginfo_t;
-int do_get_thread_area(struct thread_struct *t, struct user_desc *u_info);
-int do_set_thread_area(struct thread_struct *t, struct user_desc *u_info);
+int do_get_thread_area(struct thread_struct *t, struct user_desc __user *info);
+int do_set_thread_area(struct thread_struct *t, struct user_desc __user *info);
 int ia32_child_tls(struct task_struct *p, struct pt_regs *childregs);
-int ia32_copy_siginfo_from_user(siginfo_t *to, siginfo_t32 __user *from);
-int ia32_copy_siginfo_to_user(siginfo_t32 __user *to, siginfo_t *from);
+
+struct linux_binprm;
+extern int ia32_setup_arg_pages(struct linux_binprm *bprm,
+                               unsigned long stack_top, int exec_stack);
+struct mm_struct;
+extern void ia32_pick_mmap_layout(struct mm_struct *mm);
+
 #endif
 
 #endif /* !CONFIG_IA32_SUPPORT */