0001
0002 #ifndef _ASM_X86_IA32_H
0003 #define _ASM_X86_IA32_H
0004
0005
0006 #ifdef CONFIG_IA32_EMULATION
0007
0008 #include <linux/compat.h>
0009
0010
0011
0012
0013
0014 #include <uapi/asm/sigcontext.h>
0015
0016
0017
0018 struct ucontext_ia32 {
0019 unsigned int uc_flags;
0020 unsigned int uc_link;
0021 compat_stack_t uc_stack;
0022 struct sigcontext_32 uc_mcontext;
0023 compat_sigset_t uc_sigmask;
0024 };
0025
0026
0027
0028
0029 struct stat64 {
0030 unsigned long long st_dev;
0031 unsigned char __pad0[4];
0032
0033 #define STAT64_HAS_BROKEN_ST_INO 1
0034 unsigned int __st_ino;
0035
0036 unsigned int st_mode;
0037 unsigned int st_nlink;
0038
0039 unsigned int st_uid;
0040 unsigned int st_gid;
0041
0042 unsigned long long st_rdev;
0043 unsigned char __pad3[4];
0044
0045 long long st_size;
0046 unsigned int st_blksize;
0047
0048 long long st_blocks;
0049
0050 unsigned st_atime;
0051 unsigned st_atime_nsec;
0052 unsigned st_mtime;
0053 unsigned st_mtime_nsec;
0054 unsigned st_ctime;
0055 unsigned st_ctime_nsec;
0056
0057 unsigned long long st_ino;
0058 } __attribute__((packed));
0059
0060 #define IA32_STACK_TOP IA32_PAGE_OFFSET
0061
0062 #ifdef __KERNEL__
0063 struct linux_binprm;
0064 extern int ia32_setup_arg_pages(struct linux_binprm *bprm,
0065 unsigned long stack_top, int exec_stack);
0066 struct mm_struct;
0067 extern void ia32_pick_mmap_layout(struct mm_struct *mm);
0068
0069 #endif
0070
0071 #endif
0072
0073 #endif