/SPARTAN/trunk/arch/ia32/include/interrupt.h |
---|
59,7 → 59,7 |
#define VECTOR_KBD (IVT_IRQBASE+IRQ_KBD) |
#define VECTOR_SYSCALL (IVT_FREEBASE+0) |
#define VECTOR_TLB_SHUTDOWN (IVT_FREEBASE+1) |
#define VECTOR_TLB_SHOOTDOWN (IVT_FREEBASE+1) |
typedef void (* iroutine)(__u8 n, __u32 stack[]); |
77,7 → 77,7 |
extern void gp_fault(__u8 n, __u32 stack[]); |
extern void page_fault(__u8 n, __u32 stack[]); |
extern void syscall(__u8 n, __u32 stack[]); |
extern void tlb_shutdown_ipi(__u8 n, __u32 stack[]); |
extern void tlb_shootdown_ipi(__u8 n, __u32 stack[]); |
extern void trap_virtual_enable_irqs(__u16 irqmask); |
extern void trap_virtual_disable_irqs(__u16 irqmask); |
/SPARTAN/trunk/arch/ia32/src/ia32.c |
---|
58,7 → 58,7 |
trap_register(VECTOR_SYSCALL, syscall); |
#ifdef __SMP__ |
trap_register(VECTOR_TLB_SHUTDOWN, tlb_shutdown_ipi); |
trap_register(VECTOR_TLB_SHOOTDOWN, tlb_shootdown_ipi); |
#endif /* __SMP__ */ |
} |
} |
/SPARTAN/trunk/arch/ia32/src/mm/tlb.c |
---|
40,8 → 40,8 |
} |
#ifdef __SMP__ |
void tlb_shutdown_ipi_send(void) |
void tlb_shootdown_ipi_send(void) |
{ |
(void) l_apic_broadcast_custom_ipi(VECTOR_TLB_SHUTDOWN); |
(void) l_apic_broadcast_custom_ipi(VECTOR_TLB_SHOOTDOWN); |
} |
#endif /* __SMP__ */ |
/SPARTAN/trunk/arch/ia32/src/interrupt.c |
---|
94,10 → 94,10 |
thread_sleep(1); |
} |
void tlb_shutdown_ipi(__u8 n, __u32 stack[]) |
void tlb_shootdown_ipi(__u8 n, __u32 stack[]) |
{ |
trap_virtual_eoi(); |
tlb_shutdown_ipi_recv(); |
tlb_shootdown_ipi_recv(); |
} |
void trap_virtual_enable_irqs(__u16 irqmask) |