Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1383 → Rev 1384

/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/asm.S
134,6 → 134,11
 
iret_syscall:
# reset decrementer
 
li r31, 1000
mtdec r31
# disable interrupts
mfmsr r31
/kernel/trunk/arch/ppc32/src/proc/scheduler.c
41,6 → 41,7
void before_thread_runs_arch(void)
{
pht_init();
tlb_invalidate_all();
asm volatile (
"mtsprg0 %0\n"
:
/kernel/trunk/arch/ppc32/src/mm/tlb.c
36,17 → 36,41
*/
void tlb_arch_init(void)
{
tlb_invalidate_all();
}
 
 
void tlb_invalidate_all(void)
{
asm volatile (
"tlbia\n"
"tlbsync\n"
);
}
 
 
void tlb_invalidate_all(void)
/** 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)
{
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/mm/page.c
181,7 → 181,6
*/
void pht_refill(bool data, istate_t *istate)
{
asid_t asid;
__address badvaddr;
pte_t *pte;
int pfcr;
204,10 → 203,6
} 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/dummy.s
29,17 → 29,8
.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