diff options
Diffstat (limited to 'arch/s390/include/asm/hardirq.h')
-rw-r--r-- | arch/s390/include/asm/hardirq.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/arch/s390/include/asm/hardirq.h b/arch/s390/include/asm/hardirq.h new file mode 100644 index 000000000000..89ec7056da28 --- /dev/null +++ b/arch/s390/include/asm/hardirq.h | |||
@@ -0,0 +1,51 @@ | |||
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 | |||
12 | #ifndef __ASM_HARDIRQ_H | ||
13 | #define __ASM_HARDIRQ_H | ||
14 | |||
15 | #include <linux/threads.h> | ||
16 | #include <linux/sched.h> | ||
17 | #include <linux/cache.h> | ||
18 | #include <linux/interrupt.h> | ||
19 | #include <asm/lowcore.h> | ||
20 | |||
21 | /* irq_cpustat_t is unused currently, but could be converted | ||
22 | * into a percpu variable instead of storing softirq_pending | ||
23 | * on the lowcore */ | ||
24 | typedef struct { | ||
25 | unsigned int __softirq_pending; | ||
26 | } irq_cpustat_t; | ||
27 | |||
28 | #define local_softirq_pending() (S390_lowcore.softirq_pending) | ||
29 | |||
30 | #define __ARCH_IRQ_STAT | ||
31 | #define __ARCH_HAS_DO_SOFTIRQ | ||
32 | |||
33 | #define HARDIRQ_BITS 8 | ||
34 | |||
35 | void clock_comparator_work(void); | ||
36 | |||
37 | static inline unsigned long long local_tick_disable(void) | ||
38 | { | ||
39 | unsigned long long old; | ||
40 | |||
41 | old = S390_lowcore.clock_comparator; | ||
42 | S390_lowcore.clock_comparator = -1ULL; | ||
43 | return old; | ||
44 | } | ||
45 | |||
46 | static inline void local_tick_enable(unsigned long long comp) | ||
47 | { | ||
48 | S390_lowcore.clock_comparator = comp; | ||
49 | } | ||
50 | |||
51 | #endif /* __ASM_HARDIRQ_H */ | ||