From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755366AbbIHO3Q (ORCPT ); Tue, 8 Sep 2015 10:29:16 -0400 Received: from terminus.zytor.com ([198.137.202.10]:52030 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754757AbbIHO3M (ORCPT ); Tue, 8 Sep 2015 10:29:12 -0400 Date: Tue, 8 Sep 2015 07:27:55 -0700 From: tip-bot for Ingo Molnar Message-ID: Cc: luto@amacapital.net, bp@alien8.de, linux-kernel@vger.kernel.org, brgerst@gmail.com, oleg@redhat.com, hpa@zytor.com, tglx@linutronix.de, peterz@infradead.org, mikko.rapeli@iki.fi, dvlasenk@redhat.com, torvalds@linux-foundation.org, mingo@kernel.org Reply-To: oleg@redhat.com, hpa@zytor.com, brgerst@gmail.com, linux-kernel@vger.kernel.org, bp@alien8.de, luto@amacapital.net, mingo@kernel.org, torvalds@linux-foundation.org, mikko.rapeli@iki.fi, dvlasenk@redhat.com, peterz@infradead.org, tglx@linutronix.de In-Reply-To: <1441438363-9999-11-git-send-email-mingo@kernel.org> References: <1441438363-9999-11-git-send-email-mingo@kernel.org> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/headers] x86/headers: Move the 'struct sigcontext' definitions into the UAPI header Git-Commit-ID: f2c609bca0b6526810fa22330ce4d173cc023ef8 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: f2c609bca0b6526810fa22330ce4d173cc023ef8 Gitweb: http://git.kernel.org/tip/f2c609bca0b6526810fa22330ce4d173cc023ef8 Author: Ingo Molnar AuthorDate: Sat, 5 Sep 2015 09:32:38 +0200 Committer: Ingo Molnar CommitDate: Tue, 8 Sep 2015 10:03:58 +0200 x86/headers: Move the 'struct sigcontext' definitions into the UAPI header 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'. Acked-by: Mikko Rapeli Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Link: http://lkml.kernel.org/r/1441438363-9999-11-git-send-email-mingo@kernel.org Signed-off-by: Ingo Molnar --- 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 b9c2bd6..25815f0 100644 --- a/arch/x86/include/asm/sigcontext.h +++ b/arch/x86/include/asm/sigcontext.h @@ -3,77 +3,4 @@ #include -#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 ca542e3..3591cef 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