Rename struct ucontext to struct __mcontext
* include/cygwin/signal.h : Rename struct ucontext to struct __mcontext. Fix layout differences from the Win32 API CONTEXT type. Remove unused member _internal. Rename member which corresponds to ContextFlags. Add cr2 member. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
This commit is contained in:
		
				
					committed by
					
						 Corinna Vinschen
						Corinna Vinschen
					
				
			
			
				
	
			
			
			
						parent
						
							9b42474f29
						
					
				
				
					commit
					9afde4dff4
				
			| @@ -1,3 +1,10 @@ | |||||||
|  | 2015-04-01  Jon TURNEY  <jon.turney@dronecode.org.uk> | ||||||
|  |  | ||||||
|  | 	* include/cygwin/signal.h : Rename struct ucontext to struct | ||||||
|  | 	__mcontext.  Fix layout differences from the Win32 API CONTEXT | ||||||
|  | 	type.  Remove unused member _internal.  Rename member which | ||||||
|  | 	corresponds to ContextFlags.  Add cr2 member. | ||||||
|  |  | ||||||
| 2015-04-01  Corinna Vinschen  <corinna@vinschen.de> | 2015-04-01  Corinna Vinschen  <corinna@vinschen.de> | ||||||
|  |  | ||||||
| 	* grp.cc (internal_getgroups): Handle negative domain index to avoid | 	* grp.cc (internal_getgroups): Handle negative domain index to avoid | ||||||
|   | |||||||
| @@ -18,6 +18,10 @@ | |||||||
| extern "C" { | extern "C" { | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |   Define a struct __mcontext, which should be identical in layout to the Win32 | ||||||
|  |   API type CONTEXT with the addition of oldmask and cr2 fields at the end. | ||||||
|  | */ | ||||||
| #ifdef __x86_64__ | #ifdef __x86_64__ | ||||||
|  |  | ||||||
| struct _uc_fpxreg { | struct _uc_fpxreg { | ||||||
| @@ -45,7 +49,7 @@ struct _fpstate | |||||||
|   __uint32_t padding[24]; |   __uint32_t padding[24]; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| struct ucontext | struct __mcontext | ||||||
| { | { | ||||||
|   __uint64_t p1home; |   __uint64_t p1home; | ||||||
|   __uint64_t p2home; |   __uint64_t p2home; | ||||||
| @@ -53,7 +57,7 @@ struct ucontext | |||||||
|   __uint64_t p4home; |   __uint64_t p4home; | ||||||
|   __uint64_t p5home; |   __uint64_t p5home; | ||||||
|   __uint64_t p6home; |   __uint64_t p6home; | ||||||
|   __uint32_t cr2; |   __uint32_t ctxflags; | ||||||
|   __uint32_t mxcsr; |   __uint32_t mxcsr; | ||||||
|   __uint16_t cs; |   __uint16_t cs; | ||||||
|   __uint16_t ds; |   __uint16_t ds; | ||||||
| @@ -86,14 +90,15 @@ struct ucontext | |||||||
|   __uint64_t r15; |   __uint64_t r15; | ||||||
|   __uint64_t rip; |   __uint64_t rip; | ||||||
|   struct _fpstate fpregs; |   struct _fpstate fpregs; | ||||||
|  |   __uint64_t vregs[52]; | ||||||
|   __uint64_t vcx; |   __uint64_t vcx; | ||||||
|   __uint64_t dbc; |   __uint64_t dbc; | ||||||
|   __uint64_t btr; |   __uint64_t btr; | ||||||
|   __uint64_t bfr; |   __uint64_t bfr; | ||||||
|   __uint64_t etr; |   __uint64_t etr; | ||||||
|   __uint64_t efr; |   __uint64_t efr; | ||||||
|   __uint8_t _internal; |  | ||||||
|   __uint64_t oldmask; |   __uint64_t oldmask; | ||||||
|  |   __uint64_t cr2; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| #else /* !x86_64 */ | #else /* !x86_64 */ | ||||||
| @@ -117,9 +122,9 @@ struct _fpstate | |||||||
|   __uint32_t nxst; |   __uint32_t nxst; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| struct ucontext | struct __mcontext | ||||||
| { | { | ||||||
|   __uint32_t cr2; |   __uint32_t ctxflags; | ||||||
|   __uint32_t dr0; |   __uint32_t dr0; | ||||||
|   __uint32_t dr1; |   __uint32_t dr1; | ||||||
|   __uint32_t dr2; |   __uint32_t dr2; | ||||||
| @@ -143,15 +148,20 @@ struct ucontext | |||||||
|   __uint32_t eflags; |   __uint32_t eflags; | ||||||
|   __uint32_t esp; |   __uint32_t esp; | ||||||
|   __uint32_t ss; |   __uint32_t ss; | ||||||
|   __uint8_t _internal; |   __uint32_t reserved[128]; | ||||||
|   __uint32_t oldmask; |   __uint32_t oldmask; | ||||||
|  |   __uint32_t cr2; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| #endif /* !x86_64 */ | #endif /* !x86_64 */ | ||||||
|  |  | ||||||
| /* Needed for GDB.   It only compiles in the context copy code if this | /* Needed for GDB.  It only compiles in the context copy code if this macro is | ||||||
|    macro s defined. */ |    defined.  This is not sizeof(CONTEXT) due to historical accidents. */ | ||||||
| #define __COPY_CONTEXT_SIZE ((size_t) (uintptr_t) &((struct ucontext *) 0)->_internal) | #ifdef __x86_64__ | ||||||
|  | #define __COPY_CONTEXT_SIZE 816 | ||||||
|  | #else | ||||||
|  | #define __COPY_CONTEXT_SIZE 204 | ||||||
|  | #endif | ||||||
|  |  | ||||||
| typedef union sigval | typedef union sigval | ||||||
| { | { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user