Subversion Repositories HelenOS-historic

Rev

Rev 430 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 430 Rev 458
Line 34... Line 34...
34
#include <arch/atomic.h>
34
#include <arch/atomic.h>
35
#include <arch/interrupt.h>
35
#include <arch/interrupt.h>
36
#include <config.h>
36
#include <config.h>
37
#include <arch.h>
37
#include <arch.h>
38
 
38
 
39
#ifdef __SMP__
39
#ifdef CONFIG_SMP
40
static spinlock_t tlblock;
40
static spinlock_t tlblock;
41
#endif
41
#endif
42
 
42
 
43
void tlb_init(void)
43
void tlb_init(void)
44
{
44
{
Line 46... Line 46...
46
        spinlock_initialize(&tlblock);
46
        spinlock_initialize(&tlblock);
47
 
47
 
48
    tlb_init_arch();
48
    tlb_init_arch();
49
}
49
}
50
 
50
 
51
#ifdef __SMP__
51
#ifdef CONFIG_SMP
52
/* must be called with interrupts disabled */
52
/* must be called with interrupts disabled */
53
void tlb_shootdown_start(void)
53
void tlb_shootdown_start(void)
54
{
54
{
55
    int i;
55
    int i;
56
 
56
 
Line 82... Line 82...
82
    spinlock_lock(&tlblock);
82
    spinlock_lock(&tlblock);
83
    spinlock_unlock(&tlblock);
83
    spinlock_unlock(&tlblock);
84
    tlb_invalidate(0);  /* TODO: use valid ASID */
84
    tlb_invalidate(0);  /* TODO: use valid ASID */
85
    CPU->tlb_active = 1;
85
    CPU->tlb_active = 1;
86
}
86
}
87
#endif /* __SMP__ */
87
#endif /* CONFIG_SMP */