Changes in kernel/genarch/src/mm/page_pt.c [e2a0d76:15187c3] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/genarch/src/mm/page_pt.c
re2a0d76 r15187c3 82 82 83 83 if (GET_PTL1_FLAGS(ptl0, PTL0_INDEX(page)) & PAGE_NOT_PRESENT) { 84 pte_t *newpt = (pte_t *) PA2KA(frame_alloc(PTL1_SIZE,85 FRAME_LOWMEM , 0));84 pte_t *newpt = (pte_t *) frame_alloc(PTL1_SIZE, 85 FRAME_LOWMEM | FRAME_KA); 86 86 memsetb(newpt, FRAME_SIZE << PTL1_SIZE, 0); 87 87 SET_PTL1_ADDRESS(ptl0, PTL0_INDEX(page), KA2PA(newpt)); … … 101 101 102 102 if (GET_PTL2_FLAGS(ptl1, PTL1_INDEX(page)) & PAGE_NOT_PRESENT) { 103 pte_t *newpt = (pte_t *) PA2KA(frame_alloc(PTL2_SIZE,104 FRAME_LOWMEM , 0));103 pte_t *newpt = (pte_t *) frame_alloc(PTL2_SIZE, 104 FRAME_LOWMEM | FRAME_KA); 105 105 memsetb(newpt, FRAME_SIZE << PTL2_SIZE, 0); 106 106 SET_PTL2_ADDRESS(ptl1, PTL1_INDEX(page), KA2PA(newpt)); … … 118 118 119 119 if (GET_PTL3_FLAGS(ptl2, PTL2_INDEX(page)) & PAGE_NOT_PRESENT) { 120 pte_t *newpt = (pte_t *) PA2KA(frame_alloc(PTL3_SIZE,121 FRAME_LOWMEM , 0));120 pte_t *newpt = (pte_t *) frame_alloc(PTL3_SIZE, 121 FRAME_LOWMEM | FRAME_KA); 122 122 memsetb(newpt, FRAME_SIZE << PTL3_SIZE, 0); 123 123 SET_PTL3_ADDRESS(ptl2, PTL2_INDEX(page), KA2PA(newpt)); … … 363 363 * @param size Size in bytes defining the range of PTL0 entries that will be 364 364 * altered by this function. 365 *366 365 */ 367 366 void pt_mapping_make_global(uintptr_t base, size_t size) 368 367 { 369 ASSERT(size > 0);370 371 368 uintptr_t ptl0 = PA2KA((uintptr_t) AS_KERNEL->genarch.page_table); 372 369 uintptr_t ptl0_step = ptl0_step_get(); 373 370 size_t order; 374 371 uintptr_t addr; 372 375 373 #if (PTL1_ENTRIES != 0) 376 374 order = PTL1_SIZE; … … 380 378 order = PTL3_SIZE; 381 379 #endif 382 383 for (uintptr_t addr = ALIGN_DOWN(base, ptl0_step); 384 addr - 1 < base + size - 1; 380 381 ASSERT(size > 0); 382 383 for (addr = ALIGN_DOWN(base, ptl0_step); addr - 1 < base + size - 1; 385 384 addr += ptl0_step) { 386 uintptr_t l1 = PA2KA(frame_alloc(order, FRAME_LOWMEM, 0)); 385 uintptr_t l1; 386 387 l1 = (uintptr_t) frame_alloc(order, FRAME_KA | FRAME_LOWMEM); 387 388 memsetb((void *) l1, FRAME_SIZE << order, 0); 388 389 SET_PTL1_ADDRESS(ptl0, PTL0_INDEX(addr), KA2PA(l1));
Note:
See TracChangeset
for help on using the changeset viewer.