Rev 1702 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1702 | Rev 1780 | ||
|---|---|---|---|
| Line 37... | Line 37... | ||
| 37 | 37 | ||
| 38 | #include <arch/types.h> |
38 | #include <arch/types.h> |
| 39 | 39 | ||
| 40 | /** Version Register. */ |
40 | /** Version Register. */ |
| 41 | union ver_reg { |
41 | union ver_reg { |
| 42 | __u64 value; |
42 | uint64_t value; |
| 43 | struct { |
43 | struct { |
| 44 | __u16 manuf; /**< Manufacturer code. */ |
44 | uint16_t manuf; /**< Manufacturer code. */ |
| 45 | __u16 impl; /**< Implementation code. */ |
45 | uint16_t impl; /**< Implementation code. */ |
| 46 | __u8 mask; /**< Mask set revision. */ |
46 | uint8_t mask; /**< Mask set revision. */ |
| 47 | unsigned : 8; |
47 | unsigned : 8; |
| 48 | __u8 maxtl; |
48 | uint8_t maxtl; |
| 49 | unsigned : 3; |
49 | unsigned : 3; |
| 50 | unsigned maxwin : 5; |
50 | unsigned maxwin : 5; |
| 51 | } __attribute__ ((packed)); |
51 | } __attribute__ ((packed)); |
| 52 | }; |
52 | }; |
| 53 | typedef union ver_reg ver_reg_t; |
53 | typedef union ver_reg ver_reg_t; |
| 54 | 54 | ||
| 55 | /** Processor State Register. */ |
55 | /** Processor State Register. */ |
| 56 | union pstate_reg { |
56 | union pstate_reg { |
| 57 | __u64 value; |
57 | uint64_t value; |
| 58 | struct { |
58 | struct { |
| 59 | __u64 : 52; |
59 | uint64_t : 52; |
| 60 | unsigned ig : 1; /**< Interrupt Globals. */ |
60 | unsigned ig : 1; /**< Interrupt Globals. */ |
| 61 | unsigned mg : 1; /**< MMU Globals. */ |
61 | unsigned mg : 1; /**< MMU Globals. */ |
| 62 | unsigned cle : 1; /**< Current Little Endian. */ |
62 | unsigned cle : 1; /**< Current Little Endian. */ |
| 63 | unsigned tle : 1; /**< Trap Little Endian. */ |
63 | unsigned tle : 1; /**< Trap Little Endian. */ |
| 64 | unsigned mm : 2; /**< Memory Model. */ |
64 | unsigned mm : 2; /**< Memory Model. */ |
| Line 72... | Line 72... | ||
| 72 | }; |
72 | }; |
| 73 | typedef union pstate_reg pstate_reg_t; |
73 | typedef union pstate_reg pstate_reg_t; |
| 74 | 74 | ||
| 75 | /** TICK Register. */ |
75 | /** TICK Register. */ |
| 76 | union tick_reg { |
76 | union tick_reg { |
| 77 | __u64 value; |
77 | uint64_t value; |
| 78 | struct { |
78 | struct { |
| 79 | unsigned npt : 1; /**< Non-privileged Trap enable. */ |
79 | unsigned npt : 1; /**< Non-privileged Trap enable. */ |
| 80 | __u64 counter : 63; /**< Elapsed CPU clck cycle counter. */ |
80 | uint64_t counter : 63; /**< Elapsed CPU clck cycle counter. */ |
| 81 | } __attribute__ ((packed)); |
81 | } __attribute__ ((packed)); |
| 82 | }; |
82 | }; |
| 83 | typedef union tick_reg tick_reg_t; |
83 | typedef union tick_reg tick_reg_t; |
| 84 | 84 | ||
| 85 | /** TICK_compare Register. */ |
85 | /** TICK_compare Register. */ |
| 86 | union tick_compare_reg { |
86 | union tick_compare_reg { |
| 87 | __u64 value; |
87 | uint64_t value; |
| 88 | struct { |
88 | struct { |
| 89 | unsigned int_dis : 1; /**< TICK_INT interrupt disabled flag. */ |
89 | unsigned int_dis : 1; /**< TICK_INT interrupt disabled flag. */ |
| 90 | __u64 tick_cmpr : 63; /**< Compare value for TICK interrupts. */ |
90 | uint64_t tick_cmpr : 63; /**< Compare value for TICK interrupts. */ |
| 91 | } __attribute__ ((packed)); |
91 | } __attribute__ ((packed)); |
| 92 | }; |
92 | }; |
| 93 | typedef union tick_compare_reg tick_compare_reg_t; |
93 | typedef union tick_compare_reg tick_compare_reg_t; |
| 94 | 94 | ||
| 95 | /** SOFTINT Register. */ |
95 | /** SOFTINT Register. */ |
| 96 | union softint_reg { |
96 | union softint_reg { |
| 97 | __u64 value; |
97 | uint64_t value; |
| 98 | struct { |
98 | struct { |
| 99 | __u64 : 47; |
99 | uint64_t : 47; |
| 100 | unsigned stick_int : 1; |
100 | unsigned stick_int : 1; |
| 101 | unsigned int_level : 15; |
101 | unsigned int_level : 15; |
| 102 | unsigned tick_int : 1; |
102 | unsigned tick_int : 1; |
| 103 | } __attribute__ ((packed)); |
103 | } __attribute__ ((packed)); |
| 104 | }; |
104 | }; |