Blame view

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