Changeset 1c01e6c in mainline for kernel/arch/amd64/src/mm/page.c


Ignore:
Timestamp:
2011-11-26T16:37:37Z (12 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
056ddc30
Parents:
9aed144
Message:

Replace hw_map() implementations with one generic.
Currently the kernel is broken because of missing page allocator.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/src/mm/page.c

    r9aed144 r1c01e6c  
    9898}
    9999
    100 uintptr_t hw_map(uintptr_t physaddr, size_t size)
    101 {
    102         if (last_frame + ALIGN_UP(size, PAGE_SIZE) > KA2PA(KERNEL_ADDRESS_SPACE_END_ARCH))
    103                 panic("Unable to map physical memory %p (%zu bytes).",
    104                     (void *) physaddr, size);
    105        
    106         uintptr_t virtaddr = PA2KA(last_frame);
    107         pfn_t i;
    108        
    109         page_table_lock(AS_KERNEL, true);
    110        
    111         for (i = 0; i < ADDR2PFN(ALIGN_UP(size, PAGE_SIZE)); i++)
    112                 page_mapping_insert(AS_KERNEL, virtaddr + PFN2ADDR(i), physaddr + PFN2ADDR(i), PAGE_NOT_CACHEABLE | PAGE_WRITE);
    113        
    114         page_table_unlock(AS_KERNEL, true);
    115        
    116         last_frame = ALIGN_UP(last_frame + size, FRAME_SIZE);
    117        
    118         return virtaddr;
    119 }
    120 
    121100/** @}
    122101 */
Note: See TracChangeset for help on using the changeset viewer.