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 | */ |