Commit | Line | Data |
---|---|---|
09d3e1ba SR |
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) */ |