1/* 2 * uctx.h: Sparc64 {set,get}context() register state layouts. 3 * 4 * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) 5 */ 6 7#ifndef __SPARC64_UCTX_H 8#define __SPARC64_UCTX_H 9 10#define MC_TSTATE 0 11#define MC_PC 1 12#define MC_NPC 2 13#define MC_Y 3 14#define MC_G1 4 15#define MC_G2 5 16#define MC_G3 6 17#define MC_G4 7 18#define MC_G5 8 19#define MC_G6 9 20#define MC_G7 10 21#define MC_O0 11 22#define MC_O1 12 23#define MC_O2 13 24#define MC_O3 14 25#define MC_O4 15 26#define MC_O5 16 27#define MC_O6 17 28#define MC_O7 18 29#define MC_NGREG 19 30 31typedef unsigned long mc_greg_t; 32typedef mc_greg_t mc_gregset_t[MC_NGREG]; 33 34#define MC_MAXFPQ 16 35struct mc_fq { 36 unsigned long *mcfq_addr; 37 unsigned int mcfq_insn; 38}; 39 40struct mc_fpu { 41 union { 42 unsigned int sregs[32]; 43 unsigned long dregs[32]; 44 long double qregs[16]; 45 } mcfpu_fregs; 46 unsigned long mcfpu_fsr; 47 unsigned long mcfpu_fprs; 48 unsigned long mcfpu_gsr; 49 struct mc_fq *mcfpu_fq; 50 unsigned char mcfpu_qcnt; 51 unsigned char mcfpu_qentsz; 52 unsigned char mcfpu_enab; 53}; 54typedef struct mc_fpu mc_fpu_t; 55 56typedef struct { 57 mc_gregset_t mc_gregs; 58 mc_greg_t mc_fp; 59 mc_greg_t mc_i7; 60 mc_fpu_t mc_fpregs; 61} mcontext_t; 62 63struct ucontext { 64 struct ucontext *uc_link; 65 unsigned long uc_flags; 66 sigset_t uc_sigmask; 67 mcontext_t uc_mcontext; 68}; 69typedef struct ucontext ucontext_t; 70 71#endif /* __SPARC64_UCTX_H */ 72