Rev 1702 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1702 | Rev 1780 | ||
---|---|---|---|
Line 50... | Line 50... | ||
50 | #define DTR_KSTACK1 1 |
50 | #define DTR_KSTACK1 1 |
51 | #define DTR_KSTACK2 2 |
51 | #define DTR_KSTACK2 2 |
52 | 52 | ||
53 | /** Portion of TLB insertion format data structure. */ |
53 | /** Portion of TLB insertion format data structure. */ |
54 | union tlb_entry { |
54 | union tlb_entry { |
55 | __u64 word[2]; |
55 | uint64_t word[2]; |
56 | struct { |
56 | struct { |
57 | /* Word 0 */ |
57 | /* Word 0 */ |
58 | unsigned p : 1; /**< Present. */ |
58 | unsigned p : 1; /**< Present. */ |
59 | unsigned : 1; |
59 | unsigned : 1; |
60 | unsigned ma : 3; /**< Memory attribute. */ |
60 | unsigned ma : 3; /**< Memory attribute. */ |
Line 74... | Line 74... | ||
74 | unsigned : 32; |
74 | unsigned : 32; |
75 | } __attribute__ ((packed)); |
75 | } __attribute__ ((packed)); |
76 | } __attribute__ ((packed)); |
76 | } __attribute__ ((packed)); |
77 | typedef union tlb_entry tlb_entry_t; |
77 | typedef union tlb_entry tlb_entry_t; |
78 | 78 | ||
79 | extern void tc_mapping_insert(__address va, asid_t asid, tlb_entry_t entry, bool dtc); |
79 | extern void tc_mapping_insert(uintptr_t va, asid_t asid, tlb_entry_t entry, bool dtc); |
80 | extern void dtc_mapping_insert(__address va, asid_t asid, tlb_entry_t entry); |
80 | extern void dtc_mapping_insert(uintptr_t va, asid_t asid, tlb_entry_t entry); |
81 | extern void itc_mapping_insert(__address va, asid_t asid, tlb_entry_t entry); |
81 | extern void itc_mapping_insert(uintptr_t va, asid_t asid, tlb_entry_t entry); |
82 | 82 | ||
83 | extern void tr_mapping_insert(__address va, asid_t asid, tlb_entry_t entry, bool dtr, index_t tr); |
83 | extern void tr_mapping_insert(uintptr_t va, asid_t asid, tlb_entry_t entry, bool dtr, index_t tr); |
84 | extern void dtr_mapping_insert(__address va, asid_t asid, tlb_entry_t entry, index_t tr); |
84 | extern void dtr_mapping_insert(uintptr_t va, asid_t asid, tlb_entry_t entry, index_t tr); |
85 | extern void itr_mapping_insert(__address va, asid_t asid, tlb_entry_t entry, index_t tr); |
85 | extern void itr_mapping_insert(uintptr_t va, asid_t asid, tlb_entry_t entry, index_t tr); |
86 | 86 | ||
87 | extern void dtlb_kernel_mapping_insert(__address page, __address frame, bool dtr, index_t tr); |
87 | extern void dtlb_kernel_mapping_insert(uintptr_t page, uintptr_t frame, bool dtr, index_t tr); |
88 | extern void dtr_purge(__address page, count_t width); |
88 | extern void dtr_purge(uintptr_t page, count_t width); |
89 | 89 | ||
90 | extern void dtc_pte_copy(pte_t *t); |
90 | extern void dtc_pte_copy(pte_t *t); |
91 | extern void itc_pte_copy(pte_t *t); |
91 | extern void itc_pte_copy(pte_t *t); |
92 | 92 | ||
93 | extern void alternate_instruction_tlb_fault(__u64 vector, istate_t *istate); |
93 | extern void alternate_instruction_tlb_fault(uint64_t vector, istate_t *istate); |
94 | extern void alternate_data_tlb_fault(__u64 vector, istate_t *istate); |
94 | extern void alternate_data_tlb_fault(uint64_t vector, istate_t *istate); |
95 | extern void data_nested_tlb_fault(__u64 vector, istate_t *istate); |
95 | extern void data_nested_tlb_fault(uint64_t vector, istate_t *istate); |
96 | extern void data_dirty_bit_fault(__u64 vector, istate_t *istate); |
96 | extern void data_dirty_bit_fault(uint64_t vector, istate_t *istate); |
97 | extern void instruction_access_bit_fault(__u64 vector, istate_t *istate); |
97 | extern void instruction_access_bit_fault(uint64_t vector, istate_t *istate); |
98 | extern void data_access_bit_fault(__u64 vector, istate_t *istate); |
98 | extern void data_access_bit_fault(uint64_t vector, istate_t *istate); |
99 | extern void page_not_present(__u64 vector, istate_t *istate); |
99 | extern void page_not_present(uint64_t vector, istate_t *istate); |
100 | 100 | ||
101 | #endif |
101 | #endif |
102 | 102 | ||
103 | /** @} |
103 | /** @} |
104 | */ |
104 | */ |