Changes in kernel/arch/ia64/src/mm/page.c [98000fb:d99c1d2] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/src/mm/page.c
r98000fb rd99c1d2 39 39 #include <arch/mm/asid.h> 40 40 #include <arch/mm/vhpt.h> 41 #include < arch/types.h>41 #include <typedefs.h> 42 42 #include <print.h> 43 43 #include <mm/page.h> … … 63 63 void set_environment(void) 64 64 { 65 region_register rr;66 pta_register pta;65 region_register_t rr; 66 pta_register_t pta; 67 67 int i; 68 68 #ifdef CONFIG_VHPT … … 71 71 72 72 /* 73 * First set up kernel region register. 74 * This is redundant (see start.S) but we keep it here just for sure. 75 */ 76 rr.word = rr_read(VRN_KERNEL); 77 rr.map.ve = 0; /* disable VHPT walker */ 78 rr.map.ps = PAGE_WIDTH; 79 rr.map.rid = ASID2RID(ASID_KERNEL, VRN_KERNEL); 80 rr_write(VRN_KERNEL, rr.word); 81 srlz_i(); 82 srlz_d(); 83 84 /* 85 * And setup the rest of region register. 73 * Set up kernel region registers. 74 * VRN_KERNEL has already been set in start.S. 75 * For paranoia reasons, we set it again. 86 76 */ 87 77 for(i = 0; i < REGION_REGISTERS; i++) { 88 /* skip kernel rr */89 if (i == VRN_KERNEL)90 continue;91 92 78 rr.word = rr_read(i); 93 79 rr.map.ve = 0; /* disable VHPT walker */ 94 rr.map.rid = RID_KERNEL;80 rr.map.rid = ASID2RID(ASID_KERNEL, i); 95 81 rr.map.ps = PAGE_WIDTH; 96 82 rr_write(i, rr.word); … … 131 117 vhpt_entry_t *vhpt_hash(uintptr_t page, asid_t asid) 132 118 { 133 region_register rr_save, rr;119 region_register_t rr_save, rr; 134 120 size_t vrn; 135 121 rid_t rid; … … 176 162 bool vhpt_compare(uintptr_t page, asid_t asid, vhpt_entry_t *v) 177 163 { 178 region_register rr_save, rr;164 region_register_t rr_save, rr; 179 165 size_t vrn; 180 166 rid_t rid; … … 223 209 int flags) 224 210 { 225 region_register rr_save, rr;211 region_register_t rr_save, rr; 226 212 size_t vrn; 227 213 rid_t rid; … … 257 243 v->present.ma = (flags & PAGE_CACHEABLE) ? 258 244 MA_WRITEBACK : MA_UNCACHEABLE; 259 v->present.a = false; 260 v->present.d = false; 245 v->present.a = false; /* not accessed */ 246 v->present.d = false; /* not dirty */ 261 247 v->present.pl = (flags & PAGE_USER) ? PL_USER : PL_KERNEL; 262 248 v->present.ar = (flags & PAGE_WRITE) ? AR_WRITE : AR_READ; 263 249 v->present.ar |= (flags & PAGE_EXEC) ? AR_EXECUTE : 0; 264 250 v->present.ppn = frame >> PPN_SHIFT; 265 v->present.ed = false; 251 v->present.ed = false; /* exception not deffered */ 266 252 v->present.ps = PAGE_WIDTH; 267 253 v->present.key = 0;
Note:
See TracChangeset
for help on using the changeset viewer.