Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2d057c69 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

x86/headers: Clean up the kernel's struct sigcontext types to be ABI-clean



Use the __u16/32/64 types we standardized on in ABI definitions
and which other sigcontext related types are already using.

This will help unify struct sigcontext types between native
32-bit, compat and 64-bit kernels.

Acked-by: default avatarMikko Rapeli <mikko.rapeli@iki.fi>
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: Oleg Nesterov <oleg@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Link: http://lkml.kernel.org/r/1441438363-9999-10-git-send-email-mingo@kernel.org


Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 86e9fc3a
Loading
Loading
Loading
Loading
+52 −52
Original line number Diff line number Diff line
@@ -5,25 +5,25 @@

#ifdef __i386__
struct sigcontext {
	unsigned short gs, __gsh;
	unsigned short fs, __fsh;
	unsigned short es, __esh;
	unsigned short ds, __dsh;
	unsigned long di;
	unsigned long si;
	unsigned long bp;
	unsigned long sp;
	unsigned long bx;
	unsigned long dx;
	unsigned long cx;
	unsigned long ax;
	unsigned long trapno;
	unsigned long err;
	unsigned long ip;
	unsigned short cs, __csh;
	unsigned long flags;
	unsigned long sp_at_signal;
	unsigned short ss, __ssh;
	__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 *)
@@ -32,38 +32,38 @@ struct sigcontext {
	 * of extended memory layout. See comments at the definition of
	 * (struct _fpx_sw_bytes)
	 */
	void __user *fpstate;		/* zero when no FPU/extended context */
	unsigned long oldmask;
	unsigned long cr2;
	void __user			*fpstate; /* Zero when no FPU/extended context */
	__u32				 oldmask;
	__u32				 cr2;
};
#else /* __i386__ */
#else /* __x86_64__: */
struct sigcontext {
	unsigned long r8;
	unsigned long r9;
	unsigned long r10;
	unsigned long r11;
	unsigned long r12;
	unsigned long r13;
	unsigned long r14;
	unsigned long r15;
	unsigned long di;
	unsigned long si;
	unsigned long bp;
	unsigned long bx;
	unsigned long dx;
	unsigned long ax;
	unsigned long cx;
	unsigned long sp;
	unsigned long ip;
	unsigned long flags;
	unsigned short cs;
	unsigned short gs;
	unsigned short fs;
	unsigned short __pad0;
	unsigned long err;
	unsigned long trapno;
	unsigned long oldmask;
	unsigned long cr2;
	__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 *)
@@ -72,8 +72,8 @@ struct sigcontext {
	 * of extended memory layout. See comments at the definition of
	 * (struct _fpx_sw_bytes)
	 */
	void __user *fpstate;		/* zero when no FPU/extended context */
	unsigned long reserved1[8];
	void __user			*fpstate; /* Zero when no FPU/extended context */
	__u64				 reserved1[8];
};
#endif /* !__i386__ */
#endif /* !__x86_64__ */
#endif /* _ASM_X86_SIGCONTEXT_H */