| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* $Id: pstate.h,v 1.6 1997/06/25 07:39:45 jj Exp $ */ | 
|  | 2 | #ifndef _SPARC64_PSTATE_H | 
|  | 3 | #define _SPARC64_PSTATE_H | 
|  | 4 |  | 
| Randy Dunlap | 6df95fd | 2007-05-08 00:31:11 -0700 | [diff] [blame] | 5 | #include <linux/const.h> | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 6 |  | 
|  | 7 | /* The V9 PSTATE Register (with SpitFire extensions). | 
|  | 8 | * | 
|  | 9 | * ----------------------------------------------------------------------- | 
|  | 10 | * | Resv | IG | MG | CLE | TLE |  MM  | RED | PEF | AM | PRIV | IE | AG | | 
|  | 11 | * ----------------------------------------------------------------------- | 
|  | 12 | *  63  12  11   10    9     8    7   6   5     4     3     2     1    0 | 
|  | 13 | */ | 
|  | 14 | #define PSTATE_IG   _AC(0x0000000000000800,UL) /* Interrupt Globals.	*/ | 
|  | 15 | #define PSTATE_MG   _AC(0x0000000000000400,UL) /* MMU Globals.		*/ | 
|  | 16 | #define PSTATE_CLE  _AC(0x0000000000000200,UL) /* Current Little Endian.*/ | 
|  | 17 | #define PSTATE_TLE  _AC(0x0000000000000100,UL) /* Trap Little Endian.	*/ | 
|  | 18 | #define PSTATE_MM   _AC(0x00000000000000c0,UL) /* Memory Model.		*/ | 
|  | 19 | #define PSTATE_TSO  _AC(0x0000000000000000,UL) /* MM: TotalStoreOrder	*/ | 
|  | 20 | #define PSTATE_PSO  _AC(0x0000000000000040,UL) /* MM: PartialStoreOrder	*/ | 
|  | 21 | #define PSTATE_RMO  _AC(0x0000000000000080,UL) /* MM: RelaxedMemoryOrder*/ | 
|  | 22 | #define PSTATE_RED  _AC(0x0000000000000020,UL) /* Reset Error Debug.	*/ | 
|  | 23 | #define PSTATE_PEF  _AC(0x0000000000000010,UL) /* Floating Point Enable.*/ | 
|  | 24 | #define PSTATE_AM   _AC(0x0000000000000008,UL) /* Address Mask.		*/ | 
|  | 25 | #define PSTATE_PRIV _AC(0x0000000000000004,UL) /* Privilege.		*/ | 
|  | 26 | #define PSTATE_IE   _AC(0x0000000000000002,UL) /* Interrupt Enable.	*/ | 
|  | 27 | #define PSTATE_AG   _AC(0x0000000000000001,UL) /* Alternate Globals.	*/ | 
|  | 28 |  | 
|  | 29 | /* The V9 TSTATE Register (with SpitFire and Linux extensions). | 
|  | 30 | * | 
| David S. Miller | 7c3514e | 2006-02-15 00:41:47 -0800 | [diff] [blame] | 31 | * --------------------------------------------------------------------- | 
| David S. Miller | d619d7f | 2006-02-04 23:59:38 -0800 | [diff] [blame] | 32 | * |  Resv |  GL  |  CCR  |  ASI  |  %pil  |  PSTATE  |  Resv  |  CWP  | | 
| David S. Miller | 7c3514e | 2006-02-15 00:41:47 -0800 | [diff] [blame] | 33 | * --------------------------------------------------------------------- | 
| David S. Miller | d619d7f | 2006-02-04 23:59:38 -0800 | [diff] [blame] | 34 | *  63   43 42  40 39   32 31   24 23    20 19       8 7      5 4     0 | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 35 | */ | 
| David S. Miller | d619d7f | 2006-02-04 23:59:38 -0800 | [diff] [blame] | 36 | #define TSTATE_GL	_AC(0x0000070000000000,UL) /* Global reg level  */ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 37 | #define TSTATE_CCR	_AC(0x000000ff00000000,UL) /* Condition Codes.	*/ | 
|  | 38 | #define TSTATE_XCC	_AC(0x000000f000000000,UL) /* Condition Codes.	*/ | 
|  | 39 | #define TSTATE_XNEG	_AC(0x0000008000000000,UL) /* %xcc Negative.	*/ | 
|  | 40 | #define TSTATE_XZERO	_AC(0x0000004000000000,UL) /* %xcc Zero.	*/ | 
|  | 41 | #define TSTATE_XOVFL	_AC(0x0000002000000000,UL) /* %xcc Overflow.	*/ | 
|  | 42 | #define TSTATE_XCARRY	_AC(0x0000001000000000,UL) /* %xcc Carry.	*/ | 
|  | 43 | #define TSTATE_ICC	_AC(0x0000000f00000000,UL) /* Condition Codes.	*/ | 
|  | 44 | #define TSTATE_INEG	_AC(0x0000000800000000,UL) /* %icc Negative.	*/ | 
|  | 45 | #define TSTATE_IZERO	_AC(0x0000000400000000,UL) /* %icc Zero.	*/ | 
|  | 46 | #define TSTATE_IOVFL	_AC(0x0000000200000000,UL) /* %icc Overflow.	*/ | 
|  | 47 | #define TSTATE_ICARRY	_AC(0x0000000100000000,UL) /* %icc Carry.	*/ | 
|  | 48 | #define TSTATE_ASI	_AC(0x00000000ff000000,UL) /* AddrSpace ID.	*/ | 
|  | 49 | #define TSTATE_PIL	_AC(0x0000000000f00000,UL) /* %pil (Linux traps)*/ | 
|  | 50 | #define TSTATE_PSTATE	_AC(0x00000000000fff00,UL) /* PSTATE.		*/ | 
|  | 51 | #define TSTATE_IG	_AC(0x0000000000080000,UL) /* Interrupt Globals.*/ | 
|  | 52 | #define TSTATE_MG	_AC(0x0000000000040000,UL) /* MMU Globals.	*/ | 
|  | 53 | #define TSTATE_CLE	_AC(0x0000000000020000,UL) /* CurrLittleEndian.	*/ | 
|  | 54 | #define TSTATE_TLE	_AC(0x0000000000010000,UL) /* TrapLittleEndian.	*/ | 
|  | 55 | #define TSTATE_MM	_AC(0x000000000000c000,UL) /* Memory Model.	*/ | 
|  | 56 | #define TSTATE_TSO	_AC(0x0000000000000000,UL) /* MM: TSO		*/ | 
|  | 57 | #define TSTATE_PSO	_AC(0x0000000000004000,UL) /* MM: PSO		*/ | 
|  | 58 | #define TSTATE_RMO	_AC(0x0000000000008000,UL) /* MM: RMO		*/ | 
|  | 59 | #define TSTATE_RED	_AC(0x0000000000002000,UL) /* Reset Error Debug.*/ | 
|  | 60 | #define TSTATE_PEF	_AC(0x0000000000001000,UL) /* FPU Enable.	*/ | 
|  | 61 | #define TSTATE_AM	_AC(0x0000000000000800,UL) /* Address Mask.	*/ | 
|  | 62 | #define TSTATE_PRIV	_AC(0x0000000000000400,UL) /* Privilege.	*/ | 
|  | 63 | #define TSTATE_IE	_AC(0x0000000000000200,UL) /* Interrupt Enable.	*/ | 
|  | 64 | #define TSTATE_AG	_AC(0x0000000000000100,UL) /* Alternate Globals.*/ | 
|  | 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) */ |