blob: 89897a6a65b92cef3aa1ca273f0142fda877c3e7 [file] [log] [blame]
H. Peter Anvin05e4d312008-10-23 00:01:39 -07001#ifndef _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H
2#define _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H
Linus Torvalds1da177e2005-04-16 15:20:36 -07003
Yinghai Lu569712b2008-11-16 03:12:49 -08004#define TRAMPOLINE_PHYS_LOW (0x467)
5#define TRAMPOLINE_PHYS_HIGH (0x469)
Linus Torvalds1da177e2005-04-16 15:20:36 -07006
7static inline void wait_for_init_deassert(atomic_t *deassert)
8{
Satyam Sharma62be9002007-08-16 06:09:25 +05309 while (!atomic_read(deassert))
10 cpu_relax();
Linus Torvalds1da177e2005-04-16 15:20:36 -070011 return;
12}
13
14/* Nothing to do for most platforms, since cleared by the INIT cycle */
15static inline void smp_callin_clear_local_apic(void)
16{
17}
18
19static inline void store_NMI_vector(unsigned short *high, unsigned short *low)
20{
21}
22
23static inline void restore_NMI_vector(unsigned short *high, unsigned short *low)
24{
25}
26
Jaswinder Singh Rajput2bc13792009-01-11 20:34:47 +053027#ifdef CONFIG_SMP
Yinghai Lu569712b2008-11-16 03:12:49 -080028extern void __inquire_remote_apic(int apicid);
Jaswinder Singh Rajput2bc13792009-01-11 20:34:47 +053029#else /* CONFIG_SMP */
30static inline void __inquire_remote_apic(int apicid)
31{
32}
33#endif /* CONFIG_SMP */
Yinghai Lu569712b2008-11-16 03:12:49 -080034
35static inline void inquire_remote_apic(int apicid)
36{
37 if (apic_verbosity >= APIC_DEBUG)
38 __inquire_remote_apic(apicid);
39}
Linus Torvalds1da177e2005-04-16 15:20:36 -070040
H. Peter Anvin05e4d312008-10-23 00:01:39 -070041#endif /* _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H */