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

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.25 120 lines 2.9 kB view raw
1/* 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 */ 12typedef 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 */ 19typedef 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 */ 33enum { 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 45typedef struct { 46 u32 rwin_lo[8]; 47 u32 rwin_in[8]; 48} svr4_rwindow_t; 49 50typedef 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 57typedef int svr4_gregset_t[SVR4_NREGS]; 58 59typedef 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 68typedef struct { 69 u32 id; /* if this holds "xrs" string => ptr is valid */ 70 u32 ptr; 71} svr4_xrs_t; 72 73/* Machine dependent context */ 74typedef 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 */ 83enum svr4_stack_flags { 84 SVR4_SS_ONSTACK, 85 SVR4_SS_DISABLE, 86}; 87 88/* signal stack execution place, unsupported */ 89typedef struct svr4_stack_t { 90 u32 sp; 91 int size; 92 int flags; 93} svr4_stack_t; 94 95/* Context used by getcontext and setcontext */ 96typedef 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 */ 112typedef 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 */