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

Subversion Repositories or1k

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1276 phoenix
/* Solaris/SPARC constants and definitions --
2
 * (C) 1996 Miguel de Icaza
3
 *
4
 * This file is not meant to be included by user level applications
5
 * but the solaris syscall emulator
6
 */
7
 
8
#ifndef _SPARC64_SVR4_H
9
#define _SPARC64_SVR4_H
10
 
11
/* Signals as used by svr4 */
12
typedef struct {                /* signal set type */
13
        uint sigbits[4];
14
} svr4_sigset_t;
15
 
16
/* Values for siginfo.code */
17
#define SVR4_SINOINFO 32767
18
/* Siginfo, sucker expects bunch of information on those parameters */
19
typedef union {
20
        char total_size [128];
21
        struct {
22
                int signo;
23
                int code;
24
                int error;
25
                union {
26
                } data;
27
        } siginfo;
28
} svr4_siginfo_t;
29
 
30
/* Context definition */
31
 
32
/* Location of the user stored registers into a greg_t */
33
enum {
34
        SVR4_PSR, SVR4_PC, SVR4_NPC, SVR4_Y,
35
        SVR4_G1,  SVR4_G2, SVR4_G3,  SVR4_G4,
36
        SVR4_G5,  SVR4_G6, SVR4_G7,  SVR4_O0,
37
        SVR4_O1,  SVR4_O2, SVR4_O3,  SVR4_O4,
38
        SVR4_O5,  SVR4_O6, SVR4_O7
39
};
40
 
41
/* sizeof (regs) / sizeof (greg_t), defined in the ABI */
42
#define SVR4_NREGS  19
43
#define SVR4_MAXWIN 31
44
 
45
typedef struct {
46
        u32 rwin_lo[8];
47
        u32 rwin_in[8];
48
} svr4_rwindow_t;
49
 
50
typedef struct {
51
        int            count;
52
        u32            winptr [SVR4_MAXWIN]; /* pointer to the windows */
53
 
54
        svr4_rwindow_t win[SVR4_MAXWIN];      /* the windows */
55
} svr4_gwindows_t;
56
 
57
typedef int svr4_gregset_t[SVR4_NREGS];
58
 
59
typedef struct {
60
        u64      fpu_regs[32];
61
        u32      fp_q;
62
        u32      fp_fsr;
63
        u_char   fp_nqel;
64
        u_char   fp_nqsize;
65
        u_char   inuse;         /* if fpu is in use */
66
} svr4_fregset_t;
67
 
68
typedef struct {
69
        u32    id;              /* if this holds "xrs" string => ptr is valid */
70
        u32    ptr;
71
} svr4_xrs_t;
72
 
73
/* Machine dependent context */
74
typedef struct {
75
        svr4_gregset_t   greg;  /* registers 0..19 (see top) */
76
        u32              gwin;  /* may point to register windows */
77
        svr4_fregset_t   freg;  /* floating point registers */
78
        svr4_xrs_t       xrs;   /* mhm? */
79
        int              pad[19];
80
} svr4_mcontext_t;
81
 
82
/* flags for stack_t.flags */
83
enum svr4_stack_flags {
84
        SVR4_SS_ONSTACK,
85
        SVR4_SS_DISABLE,
86
};
87
 
88
/* signal stack exection place, unsupported */
89
typedef struct svr4_stack_t {
90
        char *sp;
91
        int  size;
92
        int  flags;
93
} svr4_stack_t;
94
 
95
/* Context used by getcontext and setcontext */
96
typedef struct svr4_ucontext_t {
97
        u32             flags; /* context flags, indicate what is loaded */
98
        u32             link;
99
        svr4_sigset_t   sigmask;
100
        svr4_stack_t    stack;
101
        svr4_mcontext_t mcontext;
102
        int             pad[23];
103
} svr4_ucontext_t;
104
 
105
/* windows hold the windows as they were at signal time,
106
 * ucontext->mcontext holds a pointer to them.
107
 * addresses for uc and si are passed as parameters to svr4 signal
108
 * handler
109
 */
110
 
111
/* This is the signal frame that is passed to the signal handler */
112
typedef struct {
113
        svr4_gwindows_t gw;     /* windows */
114
        svr4_ucontext_t uc;     /* machine context */
115
        svr4_siginfo_t  si;     /* siginfo */
116
} svr4_signal_frame_t;
117
 
118
#define SVR4_SF_ALIGNED (((sizeof (svr4_signal_frame_t) + 7) & (~7)))
119
 
120
#endif /* include control */

powered by: WebSVN 2.1.0

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