OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-sparc64/] [sigcontext.h] - Blame information for rev 1276

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.