mach_wakecpu.h 918 B

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