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