Home | History | Annotate | Line # | Download | only in include
mcontext.h revision 1.3
      1  1.3      chs /*	$NetBSD: mcontext.h,v 1.3 2004/07/18 23:21:35 chs Exp $	*/
      2  1.1      chs 
      3  1.1      chs #ifndef _HPPA_MCONTEXT_H_
      4  1.3      chs #define	_HPPA_MCONTEXT_H_
      5  1.1      chs 
      6  1.3      chs /*
      7  1.3      chs  * General register state
      8  1.3      chs  */
      9  1.3      chs #define	_NGREG		44
     10  1.3      chs 
     11  1.3      chs #define	_REG_PSW	0
     12  1.3      chs #define	_REG_RP		2
     13  1.3      chs #define	_REG_R19	19
     14  1.3      chs #define	_REG_ARG0	26
     15  1.3      chs #define	_REG_DP		27
     16  1.3      chs #define	_REG_RET0	28
     17  1.3      chs #define	_REG_SP		30
     18  1.3      chs #define	_REG_SAR	32
     19  1.3      chs #define	_REG_PCSQH	33
     20  1.3      chs #define	_REG_PCSQT	34
     21  1.3      chs #define	_REG_PCOQH	35
     22  1.3      chs #define	_REG_PCOQT	36
     23  1.3      chs #define	_REG_SR0	37
     24  1.3      chs #define	_REG_SR1	38
     25  1.3      chs #define	_REG_SR2	39
     26  1.3      chs #define	_REG_SR3	40
     27  1.3      chs #define	_REG_SR4	41
     28  1.3      chs #define	_REG_CR26	42
     29  1.3      chs #define	_REG_CR27	43
     30  1.3      chs 
     31  1.3      chs #ifndef __ASSEMBLER__
     32  1.3      chs 
     33  1.3      chs typedef	unsigned long	__greg_t;
     34  1.3      chs typedef	__greg_t	__gregset_t[_NGREG];
     35  1.3      chs 
     36  1.3      chs /*
     37  1.3      chs  * Floating point register state
     38  1.3      chs  */
     39  1.3      chs 
     40  1.3      chs typedef struct {
     41  1.3      chs 	union {
     42  1.3      chs 		unsigned long long	__fp_regs[32];
     43  1.3      chs 		double			__fp_dregs[32];
     44  1.3      chs 	}	__fp_fr;
     45  1.3      chs } __fpregset_t;
     46  1.3      chs 
     47  1.3      chs typedef struct {
     48  1.3      chs 	__gregset_t	__gregs;
     49  1.3      chs 	__fpregset_t	__fpregs;
     50  1.1      chs } mcontext_t;
     51  1.1      chs 
     52  1.3      chs #define	_UC_MACHINE_SP(uc)	((uc)->uc_mcontext.__gregs[_REG_SP])
     53  1.3      chs #define	_UC_MACHINE_PC(uc) 	((uc)->uc_mcontext.__gregs[_REG_PCOQH])
     54  1.3      chs #define	_UC_MACHINE_SET_PC(uc, pc)					\
     55  1.3      chs do {									\
     56  1.3      chs 	(uc)->uc_mcontext.__gregs[_REG_PCOQH] = (pc);			\
     57  1.3      chs 	(uc)->uc_mcontext.__gregs[_REG_PCOQT] = (pc) + 4;		\
     58  1.3      chs } while (/*CONSTCOND*/0)
     59  1.3      chs 
     60  1.3      chs #endif /* !__ASSEMBLER__ */
     61  1.3      chs 
     62  1.3      chs #define	_OFFSETOF_UC_GREGS 40
     63  1.2  thorpej 
     64  1.3      chs #define	_UC_SETSTACK	0x00010000
     65  1.3      chs #define	_UC_CLRSTACK	0x00020000
     66  1.1      chs 
     67  1.1      chs #endif /* _HPPA_MCONTEXT_H_ */
     68