From: Ingo Molnar <mingo@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: Mikko Rapeli <mikko.rapeli@iki.fi>,
Andy Lutomirski <luto@amacapital.net>,
Andrew Morton <akpm@linux-foundation.org>,
Denys Vlasenko <dvlasenk@redhat.com>,
Brian Gerst <brgerst@gmail.com>,
Peter Zijlstra <peterz@infradead.org>,
Borislav Petkov <bp@alien8.de>, "H. Peter Anvin" <hpa@zytor.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Oleg Nesterov <oleg@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>
Subject: [PATCH 10/15] x86/headers: Move the 'struct sigcontext' definitions into the UAPI header
Date: Sat, 5 Sep 2015 09:32:38 +0200 [thread overview]
Message-ID: <1441438363-9999-11-git-send-email-mingo@kernel.org> (raw)
In-Reply-To: <1441438363-9999-1-git-send-email-mingo@kernel.org>
Our goal is to eliminate the duplicate struct sigcontext_ia32 definition, so
move the kernel's primary sigcontext type into the UAPI header, defining
these two variants:
struct sigcontext_32
struct sigcontext_64
... and map them to 'struct sigcontext'.
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/include/asm/sigcontext.h | 73 ------------------------------
arch/x86/include/uapi/asm/sigcontext.h | 83 ++++++++++++++++++++++++++++++++++
2 files changed, 83 insertions(+), 73 deletions(-)
diff --git a/arch/x86/include/asm/sigcontext.h b/arch/x86/include/asm/sigcontext.h
index b9c2bd6402df..25815f00b4ff 100644
--- a/arch/x86/include/asm/sigcontext.h
+++ b/arch/x86/include/asm/sigcontext.h
@@ -3,77 +3,4 @@
#include <uapi/asm/sigcontext.h>
-#ifdef __i386__
-struct sigcontext {
- __u16 gs, __gsh;
- __u16 fs, __fsh;
- __u16 es, __esh;
- __u16 ds, __dsh;
- __u32 di;
- __u32 si;
- __u32 bp;
- __u32 sp;
- __u32 bx;
- __u32 dx;
- __u32 cx;
- __u32 ax;
- __u32 trapno;
- __u32 err;
- __u32 ip;
- __u16 cs, __csh;
- __u32 flags;
- __u32 sp_at_signal;
- __u16 ss, __ssh;
-
- /*
- * fpstate is really (struct _fpstate *) or (struct _xstate *)
- * depending on the FP_XSTATE_MAGIC1 encoded in the SW reserved
- * bytes of (struct _fpstate) and FP_XSTATE_MAGIC2 present at the end
- * of extended memory layout. See comments at the definition of
- * (struct _fpx_sw_bytes)
- */
- void __user *fpstate; /* Zero when no FPU/extended context */
- __u32 oldmask;
- __u32 cr2;
-};
-#else /* __x86_64__: */
-struct sigcontext {
- __u64 r8;
- __u64 r9;
- __u64 r10;
- __u64 r11;
- __u64 r12;
- __u64 r13;
- __u64 r14;
- __u64 r15;
- __u64 di;
- __u64 si;
- __u64 bp;
- __u64 bx;
- __u64 dx;
- __u64 ax;
- __u64 cx;
- __u64 sp;
- __u64 ip;
- __u64 flags;
- __u16 cs;
- __u16 gs;
- __u16 fs;
- __u16 __pad0;
- __u64 err;
- __u64 trapno;
- __u64 oldmask;
- __u64 cr2;
-
- /*
- * fpstate is really (struct _fpstate *) or (struct _xstate *)
- * depending on the FP_XSTATE_MAGIC1 encoded in the SW reserved
- * bytes of (struct _fpstate) and FP_XSTATE_MAGIC2 present at the end
- * of extended memory layout. See comments at the definition of
- * (struct _fpx_sw_bytes)
- */
- void __user *fpstate; /* Zero when no FPU/extended context */
- __u64 reserved1[8];
-};
-#endif /* !__x86_64__ */
#endif /* _ASM_X86_SIGCONTEXT_H */
diff --git a/arch/x86/include/uapi/asm/sigcontext.h b/arch/x86/include/uapi/asm/sigcontext.h
index ca542e37c783..3591cef6d7d2 100644
--- a/arch/x86/include/uapi/asm/sigcontext.h
+++ b/arch/x86/include/uapi/asm/sigcontext.h
@@ -190,6 +190,89 @@ struct _xstate {
/* New processor state extensions go here: */
};
+struct sigcontext_32 {
+ __u16 gs, __gsh;
+ __u16 fs, __fsh;
+ __u16 es, __esh;
+ __u16 ds, __dsh;
+ __u32 di;
+ __u32 si;
+ __u32 bp;
+ __u32 sp;
+ __u32 bx;
+ __u32 dx;
+ __u32 cx;
+ __u32 ax;
+ __u32 trapno;
+ __u32 err;
+ __u32 ip;
+ __u16 cs, __csh;
+ __u32 flags;
+ __u32 sp_at_signal;
+ __u16 ss, __ssh;
+
+ /*
+ * fpstate is really (struct _fpstate *) or (struct _xstate *)
+ * depending on the FP_XSTATE_MAGIC1 encoded in the SW reserved
+ * bytes of (struct _fpstate) and FP_XSTATE_MAGIC2 present at the end
+ * of extended memory layout. See comments at the definition of
+ * (struct _fpx_sw_bytes)
+ */
+ void __user *fpstate; /* Zero when no FPU/extended context */
+ __u32 oldmask;
+ __u32 cr2;
+};
+
+struct sigcontext_64 {
+ __u64 r8;
+ __u64 r9;
+ __u64 r10;
+ __u64 r11;
+ __u64 r12;
+ __u64 r13;
+ __u64 r14;
+ __u64 r15;
+ __u64 di;
+ __u64 si;
+ __u64 bp;
+ __u64 bx;
+ __u64 dx;
+ __u64 ax;
+ __u64 cx;
+ __u64 sp;
+ __u64 ip;
+ __u64 flags;
+ __u16 cs;
+ __u16 gs;
+ __u16 fs;
+ __u16 __pad0;
+ __u64 err;
+ __u64 trapno;
+ __u64 oldmask;
+ __u64 cr2;
+
+ /*
+ * fpstate is really (struct _fpstate *) or (struct _xstate *)
+ * depending on the FP_XSTATE_MAGIC1 encoded in the SW reserved
+ * bytes of (struct _fpstate) and FP_XSTATE_MAGIC2 present at the end
+ * of extended memory layout. See comments at the definition of
+ * (struct _fpx_sw_bytes)
+ */
+ void __user *fpstate; /* Zero when no FPU/extended context */
+ __u64 reserved1[8];
+};
+
+/*
+ * Create the real 'struct sigcontext' type:
+ */
+#ifdef __KERNEL__
+# ifdef __i386__
+# define sigcontext sigcontext_32
+# else
+# define sigcontext sigcontext_64
+# endif
+#endif
+
/*
* The old user-space sigcontext definition, just in case user-space still
* relies on it. The kernel definition (in asm/sigcontext.h) has unified
--
2.1.4
next prev parent reply other threads:[~2015-09-05 7:33 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-05 7:32 [PATCH 00/15] x86/headers: Clean up sigcontext types and headers Ingo Molnar
2015-09-05 7:32 ` [PATCH 01/15] x86/headers: Fix (old) header file dependency bug in uapi/asm/sigcontext32.h Ingo Molnar
2015-09-08 14:24 ` [tip:x86/headers] " tip-bot for Ingo Molnar
2015-09-05 7:32 ` [PATCH 02/15] x86/headers: Clean up uapi/asm/sigcontext32.h Ingo Molnar
2015-09-08 14:25 ` [tip:x86/headers] " tip-bot for Ingo Molnar
2015-09-05 7:32 ` [PATCH 03/15] x86/headers: Clean up and better document uapi/asm/sigcontext.h Ingo Molnar
2015-09-08 14:25 ` [tip:x86/headers] x86/headers: Clean up and better document uapi/ asm/sigcontext.h tip-bot for Ingo Molnar
2015-09-09 7:12 ` Peter Zijlstra
2015-09-14 9:12 ` [tip:x86/headers] x86/headers: Clean up too long lines tip-bot for Peter Zijlstra
2015-09-05 7:32 ` [PATCH 04/15] x86/headers: Separate out legacy user-space structure definitions Ingo Molnar
2015-09-08 14:25 ` [tip:x86/headers] " tip-bot for Ingo Molnar
2015-09-05 7:32 ` [PATCH 05/15] x86/headers: Use ABI types consistently in sigcontext*.h Ingo Molnar
2015-09-08 14:26 ` [tip:x86/headers] " tip-bot for Ingo Molnar
2015-09-05 7:32 ` [PATCH 06/15] x86/headers: Unify register type definitions between 32-bit compat and i386 Ingo Molnar
2015-09-08 14:26 ` [tip:x86/headers] " tip-bot for Ingo Molnar
2015-09-05 7:32 ` [PATCH 07/15] x86/headers: Unify 'struct _fpstate_ia32' and i386 struct _fpstate Ingo Molnar
2015-09-08 14:26 ` [tip:x86/headers] " tip-bot for Ingo Molnar
2015-09-05 7:32 ` [PATCH 08/15] x86/headers: Convert uses of _fpstate_ia32 to _fpstate_32 Ingo Molnar
2015-09-08 14:27 ` [tip:x86/headers] " tip-bot for Ingo Molnar
2015-09-05 7:32 ` [PATCH 09/15] x86/headers: Clean up the kernel's struct sigcontext types to be ABI-clean Ingo Molnar
2015-09-08 14:27 ` [tip:x86/headers] x86/headers: Clean up the kernel' s " tip-bot for Ingo Molnar
2015-09-05 7:32 ` Ingo Molnar [this message]
2015-09-08 14:27 ` [tip:x86/headers] x86/headers: Move the 'struct sigcontext' definitions into the UAPI header tip-bot for Ingo Molnar
2015-09-05 7:32 ` [PATCH 11/15] x86/headers: Make sigcontext pointers bit independent Ingo Molnar
2015-09-08 14:28 ` [tip:x86/headers] " tip-bot for Ingo Molnar
2015-09-05 7:32 ` [PATCH 12/15] x86/headers: Unify 'struct sigcontext_ia32' and 'struct sigcontext_32' Ingo Molnar
2015-09-08 14:28 ` [tip:x86/headers] " tip-bot for Ingo Molnar
2015-09-05 7:32 ` [PATCH 13/15] x86/headers: Convert sigcontext_ia32 uses to sigcontext_32 Ingo Molnar
2015-09-08 14:28 ` [tip:x86/headers] " tip-bot for Ingo Molnar
2015-09-05 7:32 ` [PATCH 14/15] x86/headers: Remove direct sigcontext32.h uses Ingo Molnar
2015-09-08 14:29 ` [tip:x86/headers] " tip-bot for Ingo Molnar
2015-09-05 7:32 ` [PATCH 15/15] x86/headers: Remove <asm/sigcontext.h> Ingo Molnar
2015-09-05 10:57 ` Mikko Rapeli
2015-09-05 11:59 ` Ingo Molnar
2015-09-05 12:11 ` Mikko Rapeli
2015-09-06 6:41 ` Ingo Molnar
2015-09-06 20:28 ` Mikko Rapeli
2015-09-07 7:37 ` Ingo Molnar
2015-09-07 8:14 ` Mikko Rapeli
2015-09-08 14:29 ` [tip:x86/headers] x86/headers: Remove <asm/sigcontext.h> references on the kernel side tip-bot for Ingo Molnar
2015-09-08 20:17 ` Mikko Rapeli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1441438363-9999-11-git-send-email-mingo@kernel.org \
--to=mingo@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=brgerst@gmail.com \
--cc=dvlasenk@redhat.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mikko.rapeli@iki.fi \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.