URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-sparc64/] [sigcontext.h] - Rev 1774
Go to most recent revision | Compare with Previous | Blame | View Log
/* $Id: sigcontext.h,v 1.1.1.1 2004-04-15 03:00:59 phoenix Exp $ */ #ifndef __SPARC64_SIGCONTEXT_H #define __SPARC64_SIGCONTEXT_H #ifdef __KERNEL__ #include <asm/ptrace.h> #endif #ifndef __ASSEMBLY__ #ifdef __KERNEL__ #define __SUNOS_MAXWIN 31 /* This is what SunOS does, so shall I unless we use new 32bit signals or rt signals. */ struct sigcontext32 { int sigc_onstack; /* state to restore */ int sigc_mask; /* sigmask to restore */ int sigc_sp; /* stack pointer */ int sigc_pc; /* program counter */ int sigc_npc; /* next program counter */ int sigc_psr; /* for condition codes etc */ int sigc_g1; /* User uses these two registers */ int sigc_o0; /* within the trampoline code. */ /* Now comes information regarding the users window set * at the time of the signal. */ int sigc_oswins; /* outstanding windows */ /* stack ptrs for each regwin buf */ unsigned sigc_spbuf[__SUNOS_MAXWIN]; /* Windows to restore after signal */ struct reg_window32 sigc_wbuf[__SUNOS_MAXWIN]; }; #endif #ifdef __KERNEL__ /* This is what we use for 32bit new non-rt signals. */ typedef struct { struct { unsigned int psr; unsigned int pc; unsigned int npc; unsigned int y; unsigned int u_regs[16]; /* globals and ins */ } si_regs; int si_mask; } __siginfo32_t; #endif typedef struct { unsigned int si_float_regs [64]; unsigned long si_fsr; unsigned long si_gsr; unsigned long si_fprs; } __siginfo_fpu_t; /* This is what SunOS doesn't, so we have to write this alone and do it properly. */ struct sigcontext { /* The size of this array has to match SI_MAX_SIZE from siginfo.h */ char sigc_info[128]; struct { unsigned long u_regs[16]; /* globals and ins */ unsigned long tstate; unsigned long tpc; unsigned long tnpc; unsigned int y; unsigned int fprs; } sigc_regs; __siginfo_fpu_t * sigc_fpu_save; struct { void * ss_sp; int ss_flags; unsigned long ss_size; } sigc_stack; unsigned long sigc_mask; }; #ifdef __KERNEL__ /* This magic should be in g_upper[0] for all upper parts to be valid. */ #define SIGINFO_EXTRA_V8PLUS_MAGIC 0x130e269 typedef struct { unsigned int g_upper[8]; unsigned int o_upper[8]; } siginfo_extra_v8plus_t; #endif #endif /* !(__ASSEMBLY__) */ #endif /* !(__SPARC64_SIGCONTEXT_H) */
Go to most recent revision | Compare with Previous | Blame | View Log