mach_wakecpu.h 976 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H
  2. #define _ASM_X86_MACH_DEFAULT_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. cpu_relax();
  15. return;
  16. }
  17. /* Nothing to do for most platforms, since cleared by the INIT cycle */
  18. static inline void smp_callin_clear_local_apic(void)
  19. {
  20. }
  21. static inline void store_NMI_vector(unsigned short *high, unsigned short *low)
  22. {
  23. }
  24. static inline void restore_NMI_vector(unsigned short *high, unsigned short *low)
  25. {
  26. }
  27. #define inquire_remote_apic(apicid) do { \
  28. if (apic_verbosity >= APIC_DEBUG) \
  29. __inquire_remote_apic(apicid); \
  30. } while (0)
  31. #endif /* _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H */