Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1384 → Rev 1383

/kernel/trunk/arch/ppc32/src/mm/page.c
181,6 → 181,7
*/
void pht_refill(bool data, istate_t *istate)
{
asid_t asid;
__address badvaddr;
pte_t *pte;
int pfcr;
203,6 → 204,10
} else
badvaddr = istate->pc;
spinlock_lock(&as->lock);
asid = as->asid;
spinlock_unlock(&as->lock);
page_table_lock(as, lock);
pte = find_mapping_and_check(as, lock, badvaddr, istate, &pfcr);
/kernel/trunk/arch/ppc32/src/mm/tlb.c
36,41 → 36,17
*/
void tlb_arch_init(void)
{
tlb_invalidate_all();
}
 
 
void tlb_invalidate_all(void)
{
asm volatile (
"tlbia\n"
"tlbsync\n"
);
}
 
 
/** Invalidate all entries in TLB that belong to specified address space.
*
* @param asid This parameter is ignored as the architecture doesn't support it.
*/
void tlb_invalidate_asid(asid_t asid)
void tlb_invalidate_all(void)
{
tlb_invalidate_all();
}
 
/** Invalidate TLB entries for specified page range belonging to specified address space.
*
* @param asid This parameter is ignored as the architecture doesn't support it.
* @param page Address of the first page whose entry is to be invalidated.
* @param cnt Number of entries to invalidate.
*/
void tlb_invalidate_pages(asid_t asid, __address page, count_t cnt)
{
tlb_invalidate_all();
}
 
 
 
/** Print contents of Page Hash Table. */
void tlb_print(void)
{
/kernel/trunk/arch/ppc32/src/asm.S
134,11 → 134,6
 
iret_syscall:
# reset decrementer
 
li r31, 1000
mtdec r31
# disable interrupts
mfmsr r31
/kernel/trunk/arch/ppc32/src/proc/scheduler.c
41,7 → 41,6
void before_thread_runs_arch(void)
{
pht_init();
tlb_invalidate_all();
asm volatile (
"mtsprg0 %0\n"
:
/kernel/trunk/arch/ppc32/src/exception.S
205,7 → 205,7
.org 0x900
.global exc_decrementer
exc_decrementer:
CONTEXT_STORE
CONTEXT_STORE
 
lis r12, exc_dispatch@ha
addi r12, r12, exc_dispatch@l
/kernel/trunk/arch/ppc32/src/dummy.s
29,8 → 29,17
.text
 
.global asm_delay_loop
.global userspace
.global sys_tls_set
.global tlb_invalidate_asid
.global tlb_invalidate_pages
 
tlb_invalidate_asid:
b tlb_invalidate_asid
 
tlb_invalidate_pages:
b tlb_invalidate_pages
 
sys_tls_set:
b sys_tls_set