Changes in kernel/genarch/src/mm/page_pt.c [a2789d2:caed0279] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/genarch/src/mm/page_pt.c
ra2789d2 rcaed0279 48 48 #include <align.h> 49 49 #include <macros.h> 50 #include <bitops.h> 50 51 51 52 static void pt_mapping_insert(as_t *, uintptr_t, uintptr_t, unsigned int); … … 292 293 } 293 294 295 /** Return the size of the region mapped by a single PTL0 entry. 296 * 297 * @return Size of the region mapped by a single PTL0 entry. 298 */ 299 static uintptr_t ptl0_step_get(void) 300 { 301 size_t va_bits; 302 303 va_bits = fnzb(PTL0_ENTRIES) + fnzb(PTL1_ENTRIES) + fnzb(PTL2_ENTRIES) + 304 fnzb(PTL3_ENTRIES) + PAGE_WIDTH; 305 306 return 1UL << (va_bits - fnzb(PTL0_ENTRIES)); 307 } 308 294 309 /** Make the mappings in the given range global accross all address spaces. 295 310 * … … 309 324 { 310 325 uintptr_t ptl0 = PA2KA((uintptr_t) AS_KERNEL->genarch.page_table); 311 uintptr_t ptl0 step = (((uintptr_t) -1) / PTL0_ENTRIES) + 1;326 uintptr_t ptl0_step = ptl0_step_get(); 312 327 size_t order; 313 328 uintptr_t addr; … … 321 336 #endif 322 337 323 ASSERT(ispwr2(ptl0step));324 338 ASSERT(size > 0); 325 339 326 for (addr = ALIGN_DOWN(base, ptl0 step); addr - 1 < base + size - 1;327 addr += ptl0 step) {340 for (addr = ALIGN_DOWN(base, ptl0_step); addr - 1 < base + size - 1; 341 addr += ptl0_step) { 328 342 uintptr_t l1; 329 343
Note:
See TracChangeset
for help on using the changeset viewer.