Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sparc: unify sigcontext.h

With the renamed types in place the unification was straightforward.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Sam Ravnborg and committed by
David S. Miller
bd703d88 4d7b92ad

+95 -155
-2
arch/sparc/include/asm/Kbuild
··· 5 5 header-y += ipcbuf_64.h 6 6 header-y += ptrace_32.h 7 7 header-y += ptrace_64.h 8 - header-y += sigcontext_32.h 9 - header-y += sigcontext_64.h 10 8 header-y += siginfo_32.h 11 9 header-y += siginfo_64.h 12 10
+95 -7
arch/sparc/include/asm/sigcontext.h
··· 1 - #ifndef ___ASM_SPARC_SIGCONTEXT_H 2 - #define ___ASM_SPARC_SIGCONTEXT_H 3 - #if defined(__sparc__) && defined(__arch64__) 4 - #include <asm/sigcontext_64.h> 1 + #ifndef __SPARC_SIGCONTEXT_H 2 + #define __SPARC_SIGCONTEXT_H 3 + 4 + #ifdef __KERNEL__ 5 + #include <asm/ptrace.h> 6 + 7 + #ifndef __ASSEMBLY__ 8 + 9 + #define __SUNOS_MAXWIN 31 10 + 11 + /* This is what SunOS does, so shall I unless we use new 32bit signals or rt signals. */ 12 + struct sigcontext32 { 13 + int sigc_onstack; /* state to restore */ 14 + int sigc_mask; /* sigmask to restore */ 15 + int sigc_sp; /* stack pointer */ 16 + int sigc_pc; /* program counter */ 17 + int sigc_npc; /* next program counter */ 18 + int sigc_psr; /* for condition codes etc */ 19 + int sigc_g1; /* User uses these two registers */ 20 + int sigc_o0; /* within the trampoline code. */ 21 + 22 + /* Now comes information regarding the users window set 23 + * at the time of the signal. 24 + */ 25 + int sigc_oswins; /* outstanding windows */ 26 + 27 + /* stack ptrs for each regwin buf */ 28 + unsigned sigc_spbuf[__SUNOS_MAXWIN]; 29 + 30 + /* Windows to restore after signal */ 31 + struct reg_window32 sigc_wbuf[__SUNOS_MAXWIN]; 32 + }; 33 + 34 + 35 + /* This is what we use for 32bit new non-rt signals. */ 36 + 37 + typedef struct { 38 + struct { 39 + unsigned int psr; 40 + unsigned int pc; 41 + unsigned int npc; 42 + unsigned int y; 43 + unsigned int u_regs[16]; /* globals and ins */ 44 + } si_regs; 45 + int si_mask; 46 + } __siginfo32_t; 47 + 48 + #ifdef CONFIG_SPARC64 49 + typedef struct { 50 + unsigned int si_float_regs [64]; 51 + unsigned long si_fsr; 52 + unsigned long si_gsr; 53 + unsigned long si_fprs; 54 + } __siginfo_fpu_t; 55 + 56 + /* This is what SunOS doesn't, so we have to write this alone 57 + and do it properly. */ 58 + struct sigcontext { 59 + /* The size of this array has to match SI_MAX_SIZE from siginfo.h */ 60 + char sigc_info[128]; 61 + struct { 62 + unsigned long u_regs[16]; /* globals and ins */ 63 + unsigned long tstate; 64 + unsigned long tpc; 65 + unsigned long tnpc; 66 + unsigned int y; 67 + unsigned int fprs; 68 + } sigc_regs; 69 + __siginfo_fpu_t * sigc_fpu_save; 70 + struct { 71 + void * ss_sp; 72 + int ss_flags; 73 + unsigned long ss_size; 74 + } sigc_stack; 75 + unsigned long sigc_mask; 76 + }; 77 + 5 78 #else 6 - #include <asm/sigcontext_32.h> 7 - #endif 8 - #endif 79 + 80 + typedef struct { 81 + unsigned long si_float_regs [32]; 82 + unsigned long si_fsr; 83 + unsigned long si_fpqdepth; 84 + struct { 85 + unsigned long *insn_addr; 86 + unsigned long insn; 87 + } si_fpqueue [16]; 88 + } __siginfo_fpu_t; 89 + #endif /* (CONFIG_SPARC64) */ 90 + 91 + 92 + #endif /* !(__ASSEMBLY__) */ 93 + 94 + #endif /* (__KERNEL__) */ 95 + 96 + #endif /* !(__SPARC_SIGCONTEXT_H) */
-59
arch/sparc/include/asm/sigcontext_32.h
··· 1 - #ifndef __SPARC_SIGCONTEXT_H 2 - #define __SPARC_SIGCONTEXT_H 3 - 4 - #ifdef __KERNEL__ 5 - #include <asm/ptrace.h> 6 - 7 - #ifndef __ASSEMBLY__ 8 - 9 - #define __SUNOS_MAXWIN 31 10 - 11 - /* This is what SunOS does, so shall I. */ 12 - struct sigcontext32 { 13 - int sigc_onstack; /* state to restore */ 14 - int sigc_mask; /* sigmask to restore */ 15 - int sigc_sp; /* stack pointer */ 16 - int sigc_pc; /* program counter */ 17 - int sigc_npc; /* next program counter */ 18 - int sigc_psr; /* for condition codes etc */ 19 - int sigc_g1; /* User uses these two registers */ 20 - int sigc_o0; /* within the trampoline code. */ 21 - 22 - /* Now comes information regarding the users window set 23 - * at the time of the signal. 24 - */ 25 - int sigc_oswins; /* outstanding windows */ 26 - 27 - /* stack ptrs for each regwin buf */ 28 - char *sigc_spbuf[__SUNOS_MAXWIN]; 29 - 30 - /* Windows to restore after signal */ 31 - struct reg_window32 sigc_wbuf[__SUNOS_MAXWIN]; 32 - }; 33 - 34 - typedef struct { 35 - struct { 36 - unsigned long psr; 37 - unsigned long pc; 38 - unsigned long npc; 39 - unsigned long y; 40 - unsigned long u_regs[16]; /* globals and ins */ 41 - } si_regs; 42 - int si_mask; 43 - } __siginfo32_t; 44 - 45 - typedef struct { 46 - unsigned long si_float_regs [32]; 47 - unsigned long si_fsr; 48 - unsigned long si_fpqdepth; 49 - struct { 50 - unsigned long *insn_addr; 51 - unsigned long insn; 52 - } si_fpqueue [16]; 53 - } __siginfo_fpu_t; 54 - 55 - #endif /* !(__ASSEMBLY__) */ 56 - 57 - #endif /* (__KERNEL__) */ 58 - 59 - #endif /* !(__SPARC_SIGCONTEXT_H) */
-87
arch/sparc/include/asm/sigcontext_64.h
··· 1 - #ifndef __SPARC64_SIGCONTEXT_H 2 - #define __SPARC64_SIGCONTEXT_H 3 - 4 - #ifdef __KERNEL__ 5 - #include <asm/ptrace.h> 6 - #endif 7 - 8 - #ifndef __ASSEMBLY__ 9 - 10 - #ifdef __KERNEL__ 11 - 12 - #define __SUNOS_MAXWIN 31 13 - 14 - /* This is what SunOS does, so shall I unless we use new 32bit signals or rt signals. */ 15 - struct sigcontext32 { 16 - int sigc_onstack; /* state to restore */ 17 - int sigc_mask; /* sigmask to restore */ 18 - int sigc_sp; /* stack pointer */ 19 - int sigc_pc; /* program counter */ 20 - int sigc_npc; /* next program counter */ 21 - int sigc_psr; /* for condition codes etc */ 22 - int sigc_g1; /* User uses these two registers */ 23 - int sigc_o0; /* within the trampoline code. */ 24 - 25 - /* Now comes information regarding the users window set 26 - * at the time of the signal. 27 - */ 28 - int sigc_oswins; /* outstanding windows */ 29 - 30 - /* stack ptrs for each regwin buf */ 31 - unsigned sigc_spbuf[__SUNOS_MAXWIN]; 32 - 33 - /* Windows to restore after signal */ 34 - struct reg_window32 sigc_wbuf[__SUNOS_MAXWIN]; 35 - }; 36 - 37 - #endif 38 - 39 - #ifdef __KERNEL__ 40 - 41 - /* This is what we use for 32bit new non-rt signals. */ 42 - 43 - typedef struct { 44 - struct { 45 - unsigned int psr; 46 - unsigned int pc; 47 - unsigned int npc; 48 - unsigned int y; 49 - unsigned int u_regs[16]; /* globals and ins */ 50 - } si_regs; 51 - int si_mask; 52 - } __siginfo32_t; 53 - 54 - #endif 55 - 56 - typedef struct { 57 - unsigned int si_float_regs [64]; 58 - unsigned long si_fsr; 59 - unsigned long si_gsr; 60 - unsigned long si_fprs; 61 - } __siginfo_fpu_t; 62 - 63 - /* This is what SunOS doesn't, so we have to write this alone 64 - and do it properly. */ 65 - struct sigcontext { 66 - /* The size of this array has to match SI_MAX_SIZE from siginfo.h */ 67 - char sigc_info[128]; 68 - struct { 69 - unsigned long u_regs[16]; /* globals and ins */ 70 - unsigned long tstate; 71 - unsigned long tpc; 72 - unsigned long tnpc; 73 - unsigned int y; 74 - unsigned int fprs; 75 - } sigc_regs; 76 - __siginfo_fpu_t * sigc_fpu_save; 77 - struct { 78 - void * ss_sp; 79 - int ss_flags; 80 - unsigned long ss_size; 81 - } sigc_stack; 82 - unsigned long sigc_mask; 83 - }; 84 - 85 - #endif /* !(__ASSEMBLY__) */ 86 - 87 - #endif /* !(__SPARC64_SIGCONTEXT_H) */