This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
[PATCH 1/3] Rename struct ucontext to struct __mcontext
- From: Jon TURNEY <jon dot turney at dronecode dot org dot uk>
- To: cygwin-patches at cygwin dot com
- Cc: Jon TURNEY <jon dot turney at dronecode dot org dot uk>
- Date: Tue, 31 Mar 2015 18:46:52 +0100
- Subject: [PATCH 1/3] Rename struct ucontext to struct __mcontext
- Authentication-results: sourceware.org; auth=none
- References: <1427824014-19504-1-git-send-email-jon dot turney at dronecode dot org dot uk>
* include/cygwin/signal.h : Rename struct ucontext to struct
__mcontext. Remove unused member _internal. Fix differences from
the Win32 API CONTEXT type.
XXX: the ContextFlags member of the CONTEXT type is named cr2. This looks
wrong.
---
winsup/cygwin/ChangeLog | 6 ++++++
winsup/cygwin/include/cygwin/signal.h | 18 +++++++++++-------
2 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 505f4ce..1b4f4f3 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,9 @@
+2015-03-30 Jon TURNEY <jon.turney@dronecode.org.uk>
+
+ * include/cygwin/signal.h : Rename struct ucontext to struct
+ __mcontext. Remove unused member _internal. Fix differences from
+ the Win32 API CONTEXT type.
+
2015-03-30 Corinna Vinschen <corinna@vinschen.de>
* cygtls.h (struct _cygtls): Convert thread_context to type CONTEXT.
diff --git a/winsup/cygwin/include/cygwin/signal.h b/winsup/cygwin/include/cygwin/signal.h
index 58bbff0..3fefdf7 100644
--- a/winsup/cygwin/include/cygwin/signal.h
+++ b/winsup/cygwin/include/cygwin/signal.h
@@ -18,6 +18,10 @@
extern "C" {
#endif
+/*
+ Define a struct __mcontext, which should be identical in layout to the Win32
+ API type CONTEXT with the addition of an oldmask field at the end.
+*/
#ifdef __x86_64__
struct _uc_fpxreg {
@@ -45,7 +49,7 @@ struct _fpstate
__uint32_t padding[24];
};
-struct ucontext
+struct __mcontext
{
__uint64_t p1home;
__uint64_t p2home;
@@ -86,13 +90,13 @@ struct ucontext
__uint64_t r15;
__uint64_t rip;
struct _fpstate fpregs;
+ __uint64_t vregs[52];
__uint64_t vcx;
__uint64_t dbc;
__uint64_t btr;
__uint64_t bfr;
__uint64_t etr;
__uint64_t efr;
- __uint8_t _internal;
__uint64_t oldmask;
};
@@ -117,7 +121,7 @@ struct _fpstate
__uint32_t nxst;
};
-struct ucontext
+struct __mcontext
{
__uint32_t cr2;
__uint32_t dr0;
@@ -143,15 +147,15 @@ struct ucontext
__uint32_t eflags;
__uint32_t esp;
__uint32_t ss;
- __uint8_t _internal;
+ __uint32_t reserved[128];
__uint32_t oldmask;
};
#endif /* !x86_64 */
-/* Needed for GDB. It only compiles in the context copy code if this
- macro s defined. */
-#define __COPY_CONTEXT_SIZE ((size_t) (uintptr_t) &((struct ucontext *) 0)->_internal)
+/* Needed for GDB 7.9 and earlier. It only compiles in the context copy code if
+ this macro is defined. */
+#define __COPY_CONTEXT_SIZE ((size_t) (uintptr_t) &((struct ucontext *) 0)->oldmask)
typedef union sigval
{
--
2.1.4