Rev 1708 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1708 | Rev 1780 | ||
|---|---|---|---|
| Line 64... | Line 64... | ||
| 64 | { |
64 | { |
| 65 | region_register rr; |
65 | region_register rr; |
| 66 | pta_register pta; |
66 | pta_register pta; |
| 67 | int i; |
67 | int i; |
| 68 | #ifdef CONFIG_VHPT |
68 | #ifdef CONFIG_VHPT |
| 69 | __address vhpt_base; |
69 | uintptr_t vhpt_base; |
| 70 | #endif |
70 | #endif |
| 71 | 71 | ||
| 72 | /* |
72 | /* |
| 73 | * First set up kernel region register. |
73 | * First set up kernel region register. |
| 74 | * This is redundant (see start.S) but we keep it here just for sure. |
74 | * This is redundant (see start.S) but we keep it here just for sure. |
| Line 126... | Line 126... | ||
| 126 | * @param page Address of virtual page including VRN bits. |
126 | * @param page Address of virtual page including VRN bits. |
| 127 | * @param asid Address space identifier. |
127 | * @param asid Address space identifier. |
| 128 | * |
128 | * |
| 129 | * @return VHPT entry address. |
129 | * @return VHPT entry address. |
| 130 | */ |
130 | */ |
| 131 | vhpt_entry_t *vhpt_hash(__address page, asid_t asid) |
131 | vhpt_entry_t *vhpt_hash(uintptr_t page, asid_t asid) |
| 132 | { |
132 | { |
| 133 | region_register rr_save, rr; |
133 | region_register rr_save, rr; |
| 134 | index_t vrn; |
134 | index_t vrn; |
| 135 | rid_t rid; |
135 | rid_t rid; |
| 136 | vhpt_entry_t *v; |
136 | vhpt_entry_t *v; |
| Line 170... | Line 170... | ||
| 170 | * @param page Address of virtual page including VRN bits. |
170 | * @param page Address of virtual page including VRN bits. |
| 171 | * @param asid Address space identifier. |
171 | * @param asid Address space identifier. |
| 172 | * |
172 | * |
| 173 | * @return True if page and asid match the page and asid of t, false otherwise. |
173 | * @return True if page and asid match the page and asid of t, false otherwise. |
| 174 | */ |
174 | */ |
| 175 | bool vhpt_compare(__address page, asid_t asid, vhpt_entry_t *v) |
175 | bool vhpt_compare(uintptr_t page, asid_t asid, vhpt_entry_t *v) |
| 176 | { |
176 | { |
| 177 | region_register rr_save, rr; |
177 | region_register rr_save, rr; |
| 178 | index_t vrn; |
178 | index_t vrn; |
| 179 | rid_t rid; |
179 | rid_t rid; |
| 180 | bool match; |
180 | bool match; |
| Line 214... | Line 214... | ||
| 214 | * @param page Virtual address of the page mapped by the entry. |
214 | * @param page Virtual address of the page mapped by the entry. |
| 215 | * @param asid Address space identifier of the address space to which page belongs. |
215 | * @param asid Address space identifier of the address space to which page belongs. |
| 216 | * @param frame Physical address of the frame to wich page is mapped. |
216 | * @param frame Physical address of the frame to wich page is mapped. |
| 217 | * @param flags Different flags for the mapping. |
217 | * @param flags Different flags for the mapping. |
| 218 | */ |
218 | */ |
| 219 | void vhpt_set_record(vhpt_entry_t *v, __address page, asid_t asid, __address frame, int flags) |
219 | void vhpt_set_record(vhpt_entry_t *v, uintptr_t page, asid_t asid, uintptr_t frame, int flags) |
| 220 | { |
220 | { |
| 221 | region_register rr_save, rr; |
221 | region_register rr_save, rr; |
| 222 | index_t vrn; |
222 | index_t vrn; |
| 223 | rid_t rid; |
223 | rid_t rid; |
| 224 | __u64 tag; |
224 | uint64_t tag; |
| 225 | 225 | ||
| 226 | ASSERT(v); |
226 | ASSERT(v); |
| 227 | 227 | ||
| 228 | vrn = page >> VRN_SHIFT; |
228 | vrn = page >> VRN_SHIFT; |
| 229 | rid = ASID2RID(asid, vrn); |
229 | rid = ASID2RID(asid, vrn); |