| 
									
										
										
										
											2008-10-22 22:26:29 -07:00
										 |  |  | #ifndef _ASM_X86_SIGCONTEXT32_H
 | 
					
						
							|  |  |  | #define _ASM_X86_SIGCONTEXT32_H
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-30 22:55:20 +05:30
										 |  |  | #include <linux/types.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /* signal context for 32bit programs. */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define X86_FXSR_MAGIC		0x0000
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct _fpreg { | 
					
						
							|  |  |  | 	unsigned short significand[4]; | 
					
						
							|  |  |  | 	unsigned short exponent; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct _fpxreg { | 
					
						
							|  |  |  | 	unsigned short significand[4]; | 
					
						
							|  |  |  | 	unsigned short exponent; | 
					
						
							|  |  |  | 	unsigned short padding[3]; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct _xmmreg { | 
					
						
							|  |  |  | 	__u32	element[4]; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* FSAVE frame with extensions */ | 
					
						
							|  |  |  | struct _fpstate_ia32 { | 
					
						
							|  |  |  | 	/* Regular FPU environment */ | 
					
						
							|  |  |  | 	__u32 	cw; | 
					
						
							|  |  |  | 	__u32	sw; | 
					
						
							|  |  |  | 	__u32	tag;	/* not compatible to 64bit twd */ | 
					
						
							| 
									
										
										
										
											2008-03-23 01:03:26 -07:00
										 |  |  | 	__u32	ipoff; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	__u32	cssel; | 
					
						
							|  |  |  | 	__u32	dataoff; | 
					
						
							|  |  |  | 	__u32	datasel; | 
					
						
							|  |  |  | 	struct _fpreg	_st[8]; | 
					
						
							|  |  |  | 	unsigned short	status; | 
					
						
							|  |  |  | 	unsigned short	magic;		/* 0xffff = regular FPU data only */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/* FXSR FPU environment */ | 
					
						
							|  |  |  | 	__u32	_fxsr_env[6]; | 
					
						
							|  |  |  | 	__u32	mxcsr; | 
					
						
							|  |  |  | 	__u32	reserved; | 
					
						
							|  |  |  | 	struct _fpxreg	_fxsr_st[8]; | 
					
						
							| 
									
										
										
										
											2008-03-23 01:03:26 -07:00
										 |  |  | 	struct _xmmreg	_xmm[8];	/* It's actually 16 */ | 
					
						
							| 
									
										
										
										
											2008-07-29 10:29:24 -07:00
										 |  |  | 	__u32	padding[44]; | 
					
						
							|  |  |  | 	union { | 
					
						
							|  |  |  | 		__u32 padding2[12]; | 
					
						
							|  |  |  | 		struct _fpx_sw_bytes sw_reserved; | 
					
						
							|  |  |  | 	}; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct sigcontext_ia32 { | 
					
						
							|  |  |  |        unsigned short gs, __gsh; | 
					
						
							|  |  |  |        unsigned short fs, __fsh; | 
					
						
							|  |  |  |        unsigned short es, __esh; | 
					
						
							|  |  |  |        unsigned short ds, __dsh; | 
					
						
							| 
									
										
										
										
											2008-01-30 13:30:56 +01:00
										 |  |  |        unsigned int di; | 
					
						
							|  |  |  |        unsigned int si; | 
					
						
							|  |  |  |        unsigned int bp; | 
					
						
							|  |  |  |        unsigned int sp; | 
					
						
							|  |  |  |        unsigned int bx; | 
					
						
							|  |  |  |        unsigned int dx; | 
					
						
							|  |  |  |        unsigned int cx; | 
					
						
							|  |  |  |        unsigned int ax; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |        unsigned int trapno; | 
					
						
							|  |  |  |        unsigned int err; | 
					
						
							| 
									
										
										
										
											2008-01-30 13:30:56 +01:00
										 |  |  |        unsigned int ip; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |        unsigned short cs, __csh; | 
					
						
							| 
									
										
										
										
											2008-01-30 13:30:56 +01:00
										 |  |  |        unsigned int flags; | 
					
						
							|  |  |  |        unsigned int sp_at_signal; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |        unsigned short ss, __ssh; | 
					
						
							|  |  |  |        unsigned int fpstate;		/* really (struct _fpstate_ia32 *) */ | 
					
						
							|  |  |  |        unsigned int oldmask; | 
					
						
							|  |  |  |        unsigned int cr2; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-10-22 22:26:29 -07:00
										 |  |  | #endif /* _ASM_X86_SIGCONTEXT32_H */
 |