2008-10-22 22:26:29 -07:00
# ifndef _ASM_X86_IA32_H
# define _ASM_X86_IA32_H
2005-04-16 15:20:36 -07:00
# ifdef CONFIG_IA32_EMULATION
# include <linux/compat.h>
/*
* 32 bit structures for IA32 support .
*/
# include <asm/sigcontext32.h>
/* signal.h */
struct ucontext_ia32 {
unsigned int uc_flags ;
unsigned int uc_link ;
2012-12-14 14:47:53 -05:00
compat_stack_t uc_stack ;
2005-04-16 15:20:36 -07:00
struct sigcontext_ia32 uc_mcontext ;
compat_sigset_t uc_sigmask ; /* mask last for extensibility */
} ;
2012-02-19 07:46:08 -08:00
struct ucontext_x32 {
unsigned int uc_flags ;
unsigned int uc_link ;
2012-12-14 14:47:53 -05:00
compat_stack_t uc_stack ;
2012-02-19 07:46:08 -08:00
unsigned int uc__pad0 ; /* needed for alignment */
struct sigcontext uc_mcontext ; /* the 64-bit sigcontext type */
compat_sigset_t uc_sigmask ; /* mask last for extensibility */
} ;
2005-04-16 15:20:36 -07:00
/* This matches struct stat64 in glibc2.2, hence the absolutely
* insane amounts of padding around dev_t ' s .
*/
struct stat64 {
unsigned long long st_dev ;
unsigned char __pad0 [ 4 ] ;
# define STAT64_HAS_BROKEN_ST_INO 1
unsigned int __st_ino ;
unsigned int st_mode ;
unsigned int st_nlink ;
unsigned int st_uid ;
unsigned int st_gid ;
unsigned long long st_rdev ;
unsigned char __pad3 [ 4 ] ;
long long st_size ;
unsigned int st_blksize ;
2008-03-23 01:02:20 -07:00
long long st_blocks ; /* Number 512-byte blocks allocated */
2005-04-16 15:20:36 -07:00
unsigned st_atime ;
unsigned st_atime_nsec ;
unsigned st_mtime ;
unsigned st_mtime_nsec ;
unsigned st_ctime ;
unsigned st_ctime_nsec ;
unsigned long long st_ino ;
} __attribute__ ( ( packed ) ) ;
# define IA32_STACK_TOP IA32_PAGE_OFFSET
# ifdef __KERNEL__
2005-11-05 17:25:54 +01:00
struct linux_binprm ;
extern int ia32_setup_arg_pages ( struct linux_binprm * bprm ,
unsigned long stack_top , int exec_stack ) ;
2006-01-17 07:03:38 +01:00
struct mm_struct ;
extern void ia32_pick_mmap_layout ( struct mm_struct * mm ) ;
2005-11-05 17:25:54 +01:00
2005-04-16 15:20:36 -07:00
# endif
# endif /* !CONFIG_IA32_SUPPORT */
2008-03-23 01:02:20 -07:00
2008-10-22 22:26:29 -07:00
# endif /* _ASM_X86_IA32_H */