Changeset b60c582 in mainline for kernel/arch/sparc64/src/mm/page.c


Ignore:
Timestamp:
2009-04-03T08:02:30Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
2398ee9
Parents:
9be1d58
Message:

update for string changes

File:
1 edited

Legend:

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

    r9be1d58 rb60c582  
    6363uintptr_t hw_map(uintptr_t physaddr, size_t size)
    6464{
    65         return PA2KA(physaddr);
     65        if (last_frame + ALIGN_UP(size, PAGE_SIZE) > KA2PA(KERNEL_ADDRESS_SPACE_END_ARCH))
     66                panic("Unable to map physical memory %p (%d bytes).", physaddr, size)
     67       
     68        uintptr_t virtaddr = PA2KA(last_frame);
     69        pfn_t i;
     70        for (i = 0; i < ADDR2PFN(ALIGN_UP(size, PAGE_SIZE)); i++) {
     71                uintptr_t addr = PFN2ADDR(i);
     72                page_mapping_insert(AS_KERNEL, virtaddr + addr, physaddr + addr, PAGE_NOT_CACHEABLE | PAGE_WRITE);
     73        }
     74       
     75        last_frame = ALIGN_UP(last_frame + size, FRAME_SIZE);
     76       
     77        return virtaddr;
    6678}
    6779
Note: See TracChangeset for help on using the changeset viewer.