hardirq.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * include/asm-s390/hardirq.h
  3. *
  4. * S390 version
  5. * Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
  6. * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  7. * Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
  8. *
  9. * Derived from "include/asm-i386/hardirq.h"
  10. */
  11. #ifndef __ASM_HARDIRQ_H
  12. #define __ASM_HARDIRQ_H
  13. #include <linux/threads.h>
  14. #include <linux/sched.h>
  15. #include <linux/cache.h>
  16. #include <linux/interrupt.h>
  17. #include <asm/lowcore.h>
  18. /* irq_cpustat_t is unused currently, but could be converted
  19. * into a percpu variable instead of storing softirq_pending
  20. * on the lowcore */
  21. typedef struct {
  22. unsigned int __softirq_pending;
  23. } irq_cpustat_t;
  24. #define local_softirq_pending() (S390_lowcore.softirq_pending)
  25. #define __ARCH_IRQ_STAT
  26. #define __ARCH_HAS_DO_SOFTIRQ
  27. #define HARDIRQ_BITS 8
  28. void clock_comparator_work(void);
  29. static inline unsigned long long local_tick_disable(void)
  30. {
  31. unsigned long long old;
  32. old = S390_lowcore.clock_comparator;
  33. S390_lowcore.clock_comparator = -1ULL;
  34. return old;
  35. }
  36. static inline void local_tick_enable(unsigned long long comp)
  37. {
  38. S390_lowcore.clock_comparator = comp;
  39. }
  40. #endif /* __ASM_HARDIRQ_H */