Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/src/mm/page_pt.c

    rcaed0279 ra2789d2  
    4848#include <align.h>
    4949#include <macros.h>
    50 #include <bitops.h>
    5150
    5251static void pt_mapping_insert(as_t *, uintptr_t, uintptr_t, unsigned int);
     
    293292}
    294293
    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 
    309294/** Make the mappings in the given range global accross all address spaces.
    310295 *
     
    324309{
    325310        uintptr_t ptl0 = PA2KA((uintptr_t) AS_KERNEL->genarch.page_table);
    326         uintptr_t ptl0_step = ptl0_step_get();
     311        uintptr_t ptl0step = (((uintptr_t) -1) / PTL0_ENTRIES) + 1;
    327312        size_t order;
    328313        uintptr_t addr;
     
    336321#endif
    337322
     323        ASSERT(ispwr2(ptl0step));
    338324        ASSERT(size > 0);
    339325
    340         for (addr = ALIGN_DOWN(base, ptl0_step); addr - 1 < base + size - 1;
    341             addr += ptl0_step) {
     326        for (addr = ALIGN_DOWN(base, ptl0step); addr - 1 < base + size - 1;
     327            addr += ptl0step) {
    342328                uintptr_t l1;
    343329
Note: See TracChangeset for help on using the changeset viewer.