hardirq.h 706 B

12345678910111213141516171819202122232425262728293031323334
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
  4. */
  5. #ifndef _ASM_HARDIRQ_H
  6. #define _ASM_HARDIRQ_H
  7. #include <linux/cache.h>
  8. #include <linux/threads.h>
  9. #include <linux/irq.h>
  10. extern void ack_bad_irq(unsigned int irq);
  11. #define ack_bad_irq ack_bad_irq
  12. #define NR_IPI 4
  13. enum ipi_msg_type {
  14. IPI_RESCHEDULE,
  15. IPI_CALL_FUNCTION,
  16. IPI_IRQ_WORK,
  17. IPI_CLEAR_VECTOR,
  18. };
  19. typedef struct {
  20. unsigned int ipi_irqs[NR_IPI];
  21. unsigned int __softirq_pending;
  22. atomic_t message ____cacheline_aligned_in_smp;
  23. } ____cacheline_aligned irq_cpustat_t;
  24. DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
  25. #define __ARCH_IRQ_STAT
  26. #endif /* _ASM_HARDIRQ_H */