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 | }; |