Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1381 → Rev 1382

/kernel/trunk/arch/sparc64/src/mm/page.c
27,9 → 27,29
*/
 
#include <arch/mm/page.h>
#include <arch/mm/tlb.h>
#include <genarch/mm/page_ht.h>
#include <mm/frame.h>
#include <bitops.h>
 
void page_arch_init(void)
{
page_mapping_operations = &ht_mapping_operations;
}
 
__address hw_map(__address physaddr, size_t size)
{
unsigned int order;
if (size <= FRAME_SIZE)
order = 0;
else
order = (fnzb32(size - 1) + 1) - FRAME_WIDTH;
__address virtaddr = PA2KA(PFN2ADDR(frame_alloc(order, FRAME_KA)));
dtlb_insert_mapping(virtaddr, physaddr, PAGESIZE_512K, true, false);
dtlb_insert_mapping(virtaddr + 512 * 1024, physaddr + 512 * 1024, PAGESIZE_512K, true, false);
return virtaddr;
}