blob: ceb01366014629ba1c8220dff2a95bb313a2bf30 [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
Yinghai Lu569712b2008-11-16 03:12:49 -080027extern void __inquire_remote_apic(int apicid);
28
29static inline void inquire_remote_apic(int apicid)
30{
31 if (apic_verbosity >= APIC_DEBUG)
32 __inquire_remote_apic(apicid);
33}
Linus Torvalds1da177e2005-04-16 15:20:36 -070034
H. Peter Anvin05e4d312008-10-23 00:01:39 -070035#endif /* _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H */