smp.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef _XEN_SMP_H
  3. #ifdef CONFIG_SMP
  4. extern void xen_send_IPI_mask(const struct cpumask *mask,
  5. int vector);
  6. extern void xen_send_IPI_mask_allbutself(const struct cpumask *mask,
  7. int vector);
  8. extern void xen_send_IPI_allbutself(int vector);
  9. extern void xen_send_IPI_all(int vector);
  10. extern void xen_send_IPI_self(int vector);
  11. extern int xen_smp_intr_init(unsigned int cpu);
  12. extern void xen_smp_intr_free(unsigned int cpu);
  13. int xen_smp_intr_init_pv(unsigned int cpu);
  14. void xen_smp_intr_free_pv(unsigned int cpu);
  15. void xen_smp_cpus_done(unsigned int max_cpus);
  16. void xen_smp_send_reschedule(int cpu);
  17. void xen_smp_send_call_function_ipi(const struct cpumask *mask);
  18. void xen_smp_send_call_function_single_ipi(int cpu);
  19. struct xen_common_irq {
  20. int irq;
  21. char *name;
  22. };
  23. #else /* CONFIG_SMP */
  24. static inline int xen_smp_intr_init(unsigned int cpu)
  25. {
  26. return 0;
  27. }
  28. static inline void xen_smp_intr_free(unsigned int cpu) {}
  29. static inline int xen_smp_intr_init_pv(unsigned int cpu)
  30. {
  31. return 0;
  32. }
  33. static inline void xen_smp_intr_free_pv(unsigned int cpu) {}
  34. #endif /* CONFIG_SMP */
  35. #endif