Rev 430 | Rev 501 | Go to most recent revision | Show entire file | Regard 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 */ |