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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-sparc64/] [svr4.h] - Rev 1774

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

/* Solaris/SPARC constants and definitions -- 
 * (C) 1996 Miguel de Icaza
 *
 * This file is not meant to be included by user level applications
 * but the solaris syscall emulator
 */
 
#ifndef _SPARC64_SVR4_H
#define _SPARC64_SVR4_H
 
/* Signals as used by svr4 */
typedef struct {                /* signal set type */
	uint sigbits[4];
} svr4_sigset_t;
 
/* Values for siginfo.code */
#define SVR4_SINOINFO 32767
/* Siginfo, sucker expects bunch of information on those parameters */
typedef union {
	char total_size [128];
	struct {
		int signo;
		int code;
		int error;
		union {
		} data; 
	} siginfo;
} svr4_siginfo_t;
 
/* Context definition */
 
/* Location of the user stored registers into a greg_t */
enum {
	SVR4_PSR, SVR4_PC, SVR4_NPC, SVR4_Y,
	SVR4_G1,  SVR4_G2, SVR4_G3,  SVR4_G4,
	SVR4_G5,  SVR4_G6, SVR4_G7,  SVR4_O0,
	SVR4_O1,  SVR4_O2, SVR4_O3,  SVR4_O4,
	SVR4_O5,  SVR4_O6, SVR4_O7
};
 
/* sizeof (regs) / sizeof (greg_t), defined in the ABI */
#define SVR4_NREGS  19
#define SVR4_MAXWIN 31
 
typedef struct {
	u32 rwin_lo[8];
	u32 rwin_in[8];
} svr4_rwindow_t;
 
typedef struct {
	int            count;
	u32            winptr [SVR4_MAXWIN]; /* pointer to the windows */
 
	svr4_rwindow_t win[SVR4_MAXWIN];      /* the windows */
} svr4_gwindows_t;
 
typedef int svr4_gregset_t[SVR4_NREGS];
 
typedef struct {
	u64   	 fpu_regs[32];
	u32	 fp_q;
	u32      fp_fsr;
	u_char   fp_nqel;
	u_char   fp_nqsize;
	u_char   inuse;		/* if fpu is in use */
} svr4_fregset_t;
 
typedef struct {
	u32    id;		/* if this holds "xrs" string => ptr is valid */
	u32    ptr;
} svr4_xrs_t;
 
/* Machine dependent context */
typedef struct {
	svr4_gregset_t   greg;	/* registers 0..19 (see top) */
	u32		 gwin;	/* may point to register windows */
	svr4_fregset_t   freg;	/* floating point registers */
	svr4_xrs_t       xrs;	/* mhm? */
	int              pad[19];
} svr4_mcontext_t;
 
/* flags for stack_t.flags */
enum svr4_stack_flags {
	SVR4_SS_ONSTACK,
	SVR4_SS_DISABLE,
};
 
/* signal stack exection place, unsupported */
typedef struct svr4_stack_t {
        char *sp;
        int  size;
        int  flags;
} svr4_stack_t;
 
/* Context used by getcontext and setcontext */
typedef struct svr4_ucontext_t {
	u32		flags; /* context flags, indicate what is loaded */
	u32		link;
	svr4_sigset_t	sigmask;
	svr4_stack_t	stack;
	svr4_mcontext_t	mcontext;
	int		pad[23];
} svr4_ucontext_t;                          
 
/* windows hold the windows as they were at signal time,
 * ucontext->mcontext holds a pointer to them.
 * addresses for uc and si are passed as parameters to svr4 signal
 * handler
 */
 
/* This is the signal frame that is passed to the signal handler */
typedef struct {
	svr4_gwindows_t gw;	/* windows */
	svr4_ucontext_t uc;	/* machine context */
	svr4_siginfo_t  si;	/* siginfo */
} svr4_signal_frame_t;
 
#define SVR4_SF_ALIGNED (((sizeof (svr4_signal_frame_t) + 7) & (~7)))
 
#endif /* include control */
 

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

powered by: WebSVN 2.1.0

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