diff options
Diffstat (limited to 'arch/sparc/include/asm/pstate.h')
-rw-r--r-- | arch/sparc/include/asm/pstate.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/arch/sparc/include/asm/pstate.h b/arch/sparc/include/asm/pstate.h new file mode 100644 index 000000000000..a26a53777bb0 --- /dev/null +++ b/arch/sparc/include/asm/pstate.h | |||
@@ -0,0 +1,91 @@ | |||
1 | #ifndef _SPARC64_PSTATE_H | ||
2 | #define _SPARC64_PSTATE_H | ||
3 | |||
4 | #include <linux/const.h> | ||
5 | |||
6 | /* The V9 PSTATE Register (with SpitFire extensions). | ||
7 | * | ||
8 | * ----------------------------------------------------------------------- | ||
9 | * | Resv | IG | MG | CLE | TLE | MM | RED | PEF | AM | PRIV | IE | AG | | ||
10 | * ----------------------------------------------------------------------- | ||
11 | * 63 12 11 10 9 8 7 6 5 4 3 2 1 0 | ||
12 | */ | ||
13 | #define PSTATE_IG _AC(0x0000000000000800,UL) /* Interrupt Globals. */ | ||
14 | #define PSTATE_MG _AC(0x0000000000000400,UL) /* MMU Globals. */ | ||
15 | #define PSTATE_CLE _AC(0x0000000000000200,UL) /* Current Little Endian.*/ | ||
16 | #define PSTATE_TLE _AC(0x0000000000000100,UL) /* Trap Little Endian. */ | ||
17 | #define PSTATE_MM _AC(0x00000000000000c0,UL) /* Memory Model. */ | ||
18 | #define PSTATE_TSO _AC(0x0000000000000000,UL) /* MM: TotalStoreOrder */ | ||
19 | #define PSTATE_PSO _AC(0x0000000000000040,UL) /* MM: PartialStoreOrder */ | ||
20 | #define PSTATE_RMO _AC(0x0000000000000080,UL) /* MM: RelaxedMemoryOrder*/ | ||
21 | #define PSTATE_RED _AC(0x0000000000000020,UL) /* Reset Error Debug. */ | ||
22 | #define PSTATE_PEF _AC(0x0000000000000010,UL) /* Floating Point Enable.*/ | ||
23 | #define PSTATE_AM _AC(0x0000000000000008,UL) /* Address Mask. */ | ||
24 | #define PSTATE_PRIV _AC(0x0000000000000004,UL) /* Privilege. */ | ||
25 | #define PSTATE_IE _AC(0x0000000000000002,UL) /* Interrupt Enable. */ | ||
26 | #define PSTATE_AG _AC(0x0000000000000001,UL) /* Alternate Globals. */ | ||
27 | |||
28 | /* The V9 TSTATE Register (with SpitFire and Linux extensions). | ||
29 | * | ||
30 | * --------------------------------------------------------------------- | ||
31 | * | Resv | GL | CCR | ASI | %pil | PSTATE | Resv | CWP | | ||
32 | * --------------------------------------------------------------------- | ||
33 | * 63 43 42 40 39 32 31 24 23 20 19 8 7 5 4 0 | ||
34 | */ | ||
35 | #define TSTATE_GL _AC(0x0000070000000000,UL) /* Global reg level */ | ||
36 | #define TSTATE_CCR _AC(0x000000ff00000000,UL) /* Condition Codes. */ | ||
37 | #define TSTATE_XCC _AC(0x000000f000000000,UL) /* Condition Codes. */ | ||
38 | #define TSTATE_XNEG _AC(0x0000008000000000,UL) /* %xcc Negative. */ | ||
39 | #define TSTATE_XZERO _AC(0x0000004000000000,UL) /* %xcc Zero. */ | ||
40 | #define TSTATE_XOVFL _AC(0x0000002000000000,UL) /* %xcc Overflow. */ | ||
41 | #define TSTATE_XCARRY _AC(0x0000001000000000,UL) /* %xcc Carry. */ | ||
42 | #define TSTATE_ICC _AC(0x0000000f00000000,UL) /* Condition Codes. */ | ||
43 | #define TSTATE_INEG _AC(0x0000000800000000,UL) /* %icc Negative. */ | ||
44 | #define TSTATE_IZERO _AC(0x0000000400000000,UL) /* %icc Zero. */ | ||
45 | #define TSTATE_IOVFL _AC(0x0000000200000000,UL) /* %icc Overflow. */ | ||
46 | #define TSTATE_ICARRY _AC(0x0000000100000000,UL) /* %icc Carry. */ | ||
47 | #define TSTATE_ASI _AC(0x00000000ff000000,UL) /* AddrSpace ID. */ | ||
48 | #define TSTATE_PIL _AC(0x0000000000f00000,UL) /* %pil (Linux traps)*/ | ||
49 | #define TSTATE_PSTATE _AC(0x00000000000fff00,UL) /* PSTATE. */ | ||
50 | #define TSTATE_IG _AC(0x0000000000080000,UL) /* Interrupt Globals.*/ | ||
51 | #define TSTATE_MG _AC(0x0000000000040000,UL) /* MMU Globals. */ | ||
52 | #define TSTATE_CLE _AC(0x0000000000020000,UL) /* CurrLittleEndian. */ | ||
53 | #define TSTATE_TLE _AC(0x0000000000010000,UL) /* TrapLittleEndian. */ | ||
54 | #define TSTATE_MM _AC(0x000000000000c000,UL) /* Memory Model. */ | ||
55 | #define TSTATE_TSO _AC(0x0000000000000000,UL) /* MM: TSO */ | ||
56 | #define TSTATE_PSO _AC(0x0000000000004000,UL) /* MM: PSO */ | ||
57 | #define TSTATE_RMO _AC(0x0000000000008000,UL) /* MM: RMO */ | ||
58 | #define TSTATE_RED _AC(0x0000000000002000,UL) /* Reset Error Debug.*/ | ||
59 | #define TSTATE_PEF _AC(0x0000000000001000,UL) /* FPU Enable. */ | ||
60 | #define TSTATE_AM _AC(0x0000000000000800,UL) /* Address Mask. */ | ||
61 | #define TSTATE_PRIV _AC(0x0000000000000400,UL) /* Privilege. */ | ||
62 | #define TSTATE_IE _AC(0x0000000000000200,UL) /* Interrupt Enable. */ | ||
63 | #define TSTATE_AG _AC(0x0000000000000100,UL) /* Alternate Globals.*/ | ||
64 | #define TSTATE_SYSCALL _AC(0x0000000000000020,UL) /* in syscall trap */ | ||
65 | #define TSTATE_CWP _AC(0x000000000000001f,UL) /* Curr Win-Pointer. */ | ||
66 | |||
67 | /* Floating-Point Registers State Register. | ||
68 | * | ||
69 | * -------------------------------- | ||
70 | * | Resv | FEF | DU | DL | | ||
71 | * -------------------------------- | ||
72 | * 63 3 2 1 0 | ||
73 | */ | ||
74 | #define FPRS_FEF _AC(0x0000000000000004,UL) /* FPU Enable. */ | ||
75 | #define FPRS_DU _AC(0x0000000000000002,UL) /* Dirty Upper. */ | ||
76 | #define FPRS_DL _AC(0x0000000000000001,UL) /* Dirty Lower. */ | ||
77 | |||
78 | /* Version Register. | ||
79 | * | ||
80 | * ------------------------------------------------------ | ||
81 | * | MANUF | IMPL | MASK | Resv | MAXTL | Resv | MAXWIN | | ||
82 | * ------------------------------------------------------ | ||
83 | * 63 48 47 32 31 24 23 16 15 8 7 5 4 0 | ||
84 | */ | ||
85 | #define VERS_MANUF _AC(0xffff000000000000,UL) /* Manufacturer. */ | ||
86 | #define VERS_IMPL _AC(0x0000ffff00000000,UL) /* Implementation. */ | ||
87 | #define VERS_MASK _AC(0x00000000ff000000,UL) /* Mask Set Revision.*/ | ||
88 | #define VERS_MAXTL _AC(0x000000000000ff00,UL) /* Max Trap Level. */ | ||
89 | #define VERS_MAXWIN _AC(0x000000000000001f,UL) /* Max RegWindow Idx.*/ | ||
90 | |||
91 | #endif /* !(_SPARC64_PSTATE_H) */ | ||