Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 396 → Rev 397

/SPARTAN/trunk/test/mm/mapping1/test.c
52,24 → 52,24
*((__u32 *) frame0) = VALUE0;
*((__u32 *) frame1) = VALUE1;
printf("Mapping %X to %X.\n", PAGE0, KA2PA(frame0));
printf("Mapping %P to %P.\n", PAGE0, KA2PA(frame0));
map_page_to_frame(PAGE0, KA2PA(frame0), PAGE_PRESENT, 0);
printf("Mapping %X to %X.\n", PAGE1, KA2PA(frame1));
printf("Mapping %P to %P.\n", PAGE1, KA2PA(frame1));
map_page_to_frame(PAGE1, KA2PA(frame1), PAGE_PRESENT, 0);
printf("Value at %X is %X.\n", PAGE0, v0 = *((__u32 *) PAGE0));
printf("Value at %X is %X.\n", PAGE1, v1 = *((__u32 *) PAGE1));
printf("Value at %P is %L.\n", PAGE0, v0 = *((__u32 *) PAGE0));
printf("Value at %P is %L.\n", PAGE1, v1 = *((__u32 *) PAGE1));
ASSERT(v0 == VALUE0);
ASSERT(v1 == VALUE1);
 
printf("Writing 0 to %X.\n", PAGE0);
printf("Writing 0 to %P.\n", PAGE0);
*((__u32 *) PAGE0) = 0;
printf("Writing 0 to %X.\n", PAGE1);
printf("Writing 0 to %P.\n", PAGE1);
*((__u32 *) PAGE1) = 0;
printf("Value at %X is %X.\n", PAGE0, v0 = *((__u32 *) PAGE0));
printf("Value at %X is %X.\n", PAGE1, v1 = *((__u32 *) PAGE1));
printf("Value at %P is %L.\n", PAGE0, v0 = *((__u32 *) PAGE0));
printf("Value at %P is %L.\n", PAGE1, v1 = *((__u32 *) PAGE1));
 
ASSERT(v0 == 0);
ASSERT(v1 == 0);
/SPARTAN/trunk/Makefile.config
40,4 → 40,4
#TEST_DIR=fpu/mips1/
#TEST_DIR=print/print1/
#TEST_DIR=thread/thread1/
#TEST_DIR=mm/mapping1/
#TEST_DIR=mm/mapping1/
/SPARTAN/trunk/arch/mips32/src/mm/tlb.c
86,8 → 86,15
entry_lo_t lo;
__address badvaddr;
pte_t *pte;
 
// debug
entry_hi_t hi;
 
badvaddr = cp0_badvaddr_read();
 
// debug
hi.value = cp0_entry_hi_read();
printf("TLB Refill: hi.vnp2=%X\n", hi.vpn2);
spinlock_lock(&VM->lock);
pte = find_mapping_and_check(badvaddr);
/SPARTAN/trunk/arch/mips32/src/mm/vm.c
48,7 → 48,7
pri = cpu_priority_high();
spinlock_lock(&vm->lock);
hi.asid = vm->asid;
cp0_entry_hi_write(*((__u32 *) &hi));
cp0_entry_hi_write(hi.value);
spinlock_lock(&vm->unlock);
cpu_priority_restore(pri);
}