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