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

Subversion Repositories or1k

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

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

Line No. Rev Author Line
1 1275 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 _SPARC_SVR4_H
9
#define _SPARC_SVR4_H
10
 
11
/* Signals as used by svr4 */
12
typedef struct {                /* signal set type */
13
        ulong 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
        uint rwin_lo[8];
47
        uint rwin_in[8];
48
} svr4_rwindow_t;
49
 
50
typedef struct {
51
        int            count;
52
        int            *winptr [SVR4_MAXWIN]; /* pointer to the windows */
53
        svr4_rwindow_t win[SVR4_MAXWIN];      /* the windows */
54
} svr4_gwindows_t;
55
 
56
typedef int svr4_gregset_t[SVR4_NREGS];
57
 
58
typedef struct {
59
        double   fpu_regs[32];
60
        void     *fp_q;
61
        unsigned fp_fsr;
62
        u_char   fp_nqel;
63
        u_char   fp_nqsize;
64
        u_char   inuse;         /* if fpu is in use */
65
} svr4_fregset_t;
66
 
67
typedef struct {
68
        uint    id;             /* if this holds "xrs" string => ptr is valid */
69
        caddr_t ptr;
70
} svr4_xrs_t;
71
 
72
/* Machine dependent context */
73
typedef struct {
74
        svr4_gregset_t   greg;  /* registers 0..19 (see top) */
75
        svr4_gwindows_t  *gwin; /* may point to register windows */
76
        svr4_fregset_t   freg;  /* floating point registers */
77
        svr4_xrs_t       xrs;   /* mhm? */
78
        long             pad[19];
79
} svr4_mcontext_t;
80
 
81
/* flags for stack_t.flags */
82
enum svr4_stack_flags {
83
        SVR4_SS_ONSTACK,
84
        SVR4_SS_DISABLE,
85
};
86
 
87
/* signal stack exection place, unsupported */
88
typedef struct svr4_stack_t {
89
        char *sp;
90
        int  size;
91
        int  flags;
92
} svr4_stack_t;
93
 
94
/* Context used by getcontext and setcontext */
95
typedef struct svr4_ucontext_t {
96
        u_long               flags; /* context flags, indicate what is loaded */
97
        struct svr4_ucontext *link;
98
        svr4_sigset_t        sigmask;
99
        svr4_stack_t         stack;
100
        svr4_mcontext_t      mcontext;
101
        long                 pad[23];
102
} svr4_ucontext_t;
103
 
104
/* windows hold the windows as they were at signal time,
105
 * ucontext->mcontext holds a pointer to them.
106
 * addresses for uc and si are passed as parameters to svr4 signal
107
 * handler
108
 */
109
 
110
/* This is the signal frame that is passed to the signal handler */
111
typedef struct {
112
        svr4_gwindows_t gw;     /* windows */
113
        svr4_ucontext_t uc;     /* machine context */
114
        svr4_siginfo_t  si;     /* siginfo */
115
} svr4_signal_frame_t;
116
 
117
#define SVR4_SF_ALIGNED (((sizeof (svr4_signal_frame_t) + 7) & (~7)))
118
 
119
#endif /* include control */

powered by: WebSVN 2.1.0

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