]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #ifndef __ASM_MACH_WAKECPU_H |
2 | #define __ASM_MACH_WAKECPU_H | |
3 | ||
4 | /* | |
5 | * This file copes with machines that wakeup secondary CPUs by the | |
6 | * INIT, INIT, STARTUP sequence. | |
7 | */ | |
8 | ||
9 | #define WAKE_SECONDARY_VIA_INIT | |
10 | ||
11 | #define TRAMPOLINE_LOW phys_to_virt(0x467) | |
12 | #define TRAMPOLINE_HIGH phys_to_virt(0x469) | |
13 | ||
14 | #define boot_cpu_apicid boot_cpu_physical_apicid | |
15 | ||
16 | static inline void wait_for_init_deassert(atomic_t *deassert) | |
17 | { | |
18 | while (!atomic_read(deassert)); | |
19 | return; | |
20 | } | |
21 | ||
22 | /* Nothing to do for most platforms, since cleared by the INIT cycle */ | |
23 | static inline void smp_callin_clear_local_apic(void) | |
24 | { | |
25 | } | |
26 | ||
27 | static inline void store_NMI_vector(unsigned short *high, unsigned short *low) | |
28 | { | |
29 | } | |
30 | ||
31 | static inline void restore_NMI_vector(unsigned short *high, unsigned short *low) | |
32 | { | |
33 | } | |
34 | ||
35 | #if APIC_DEBUG | |
36 | #define inquire_remote_apic(apicid) __inquire_remote_apic(apicid) | |
37 | #else | |
38 | #define inquire_remote_apic(apicid) {} | |
39 | #endif | |
40 | ||
41 | #endif /* __ASM_MACH_WAKECPU_H */ |