PageRenderTime 22ms CodeModel.GetById 13ms app.highlight 7ms RepoModel.GetById 0ms app.codeStats 0ms

/arch/x86/include/asm/ia32.h

https://bitbucket.org/cresqo/cm7-p500-kernel
C Header | 145 lines | 99 code | 31 blank | 15 comment | 0 complexity | 9667e7ab5034f5c39362f23a0b91358f MD5 | raw file
Possible License(s): LGPL-2.0, AGPL-1.0, GPL-2.0
  1#ifndef _ASM_X86_IA32_H
  2#define _ASM_X86_IA32_H
  3
  4
  5#ifdef CONFIG_IA32_EMULATION
  6
  7#include <linux/compat.h>
  8
  9/*
 10 * 32 bit structures for IA32 support.
 11 */
 12
 13#include <asm/sigcontext32.h>
 14
 15/* signal.h */
 16struct sigaction32 {
 17	unsigned int  sa_handler;	/* Really a pointer, but need to deal
 18					   with 32 bits */
 19	unsigned int sa_flags;
 20	unsigned int sa_restorer;	/* Another 32 bit pointer */
 21	compat_sigset_t sa_mask;	/* A 32 bit mask */
 22};
 23
 24struct old_sigaction32 {
 25	unsigned int  sa_handler;	/* Really a pointer, but need to deal
 26					   with 32 bits */
 27	compat_old_sigset_t sa_mask;	/* A 32 bit mask */
 28	unsigned int sa_flags;
 29	unsigned int sa_restorer;	/* Another 32 bit pointer */
 30};
 31
 32typedef struct sigaltstack_ia32 {
 33	unsigned int	ss_sp;
 34	int		ss_flags;
 35	unsigned int	ss_size;
 36} stack_ia32_t;
 37
 38struct ucontext_ia32 {
 39	unsigned int	  uc_flags;
 40	unsigned int 	  uc_link;
 41	stack_ia32_t	  uc_stack;
 42	struct sigcontext_ia32 uc_mcontext;
 43	compat_sigset_t	  uc_sigmask;	/* mask last for extensibility */
 44};
 45
 46/* This matches struct stat64 in glibc2.2, hence the absolutely
 47 * insane amounts of padding around dev_t's.
 48 */
 49struct stat64 {
 50	unsigned long long	st_dev;
 51	unsigned char		__pad0[4];
 52
 53#define STAT64_HAS_BROKEN_ST_INO	1
 54	unsigned int		__st_ino;
 55
 56	unsigned int		st_mode;
 57	unsigned int		st_nlink;
 58
 59	unsigned int		st_uid;
 60	unsigned int		st_gid;
 61
 62	unsigned long long	st_rdev;
 63	unsigned char		__pad3[4];
 64
 65	long long		st_size;
 66	unsigned int		st_blksize;
 67
 68	long long		st_blocks;/* Number 512-byte blocks allocated */
 69
 70	unsigned 		st_atime;
 71	unsigned 		st_atime_nsec;
 72	unsigned 		st_mtime;
 73	unsigned 		st_mtime_nsec;
 74	unsigned 		st_ctime;
 75	unsigned 		st_ctime_nsec;
 76
 77	unsigned long long	st_ino;
 78} __attribute__((packed));
 79
 80typedef struct compat_siginfo {
 81	int si_signo;
 82	int si_errno;
 83	int si_code;
 84
 85	union {
 86		int _pad[((128 / sizeof(int)) - 3)];
 87
 88		/* kill() */
 89		struct {
 90			unsigned int _pid;	/* sender's pid */
 91			unsigned int _uid;	/* sender's uid */
 92		} _kill;
 93
 94		/* POSIX.1b timers */
 95		struct {
 96			compat_timer_t _tid;	/* timer id */
 97			int _overrun;		/* overrun count */
 98			compat_sigval_t _sigval;	/* same as below */
 99			int _sys_private;	/* not to be passed to user */
100			int _overrun_incr;	/* amount to add to overrun */
101		} _timer;
102
103		/* POSIX.1b signals */
104		struct {
105			unsigned int _pid;	/* sender's pid */
106			unsigned int _uid;	/* sender's uid */
107			compat_sigval_t _sigval;
108		} _rt;
109
110		/* SIGCHLD */
111		struct {
112			unsigned int _pid;	/* which child */
113			unsigned int _uid;	/* sender's uid */
114			int _status;		/* exit code */
115			compat_clock_t _utime;
116			compat_clock_t _stime;
117		} _sigchld;
118
119		/* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
120		struct {
121			unsigned int _addr;	/* faulting insn/memory ref. */
122		} _sigfault;
123
124		/* SIGPOLL */
125		struct {
126			int _band;	/* POLL_IN, POLL_OUT, POLL_MSG */
127			int _fd;
128		} _sigpoll;
129	} _sifields;
130} compat_siginfo_t;
131
132#define IA32_STACK_TOP IA32_PAGE_OFFSET
133
134#ifdef __KERNEL__
135struct linux_binprm;
136extern int ia32_setup_arg_pages(struct linux_binprm *bprm,
137				unsigned long stack_top, int exec_stack);
138struct mm_struct;
139extern void ia32_pick_mmap_layout(struct mm_struct *mm);
140
141#endif
142
143#endif /* !CONFIG_IA32_SUPPORT */
144
145#endif /* _ASM_X86_IA32_H */