1 #ifndef __M68K_HARDIRQ_H
2 #define __M68K_HARDIRQ_H
3
4 #include <linux/threads.h>
5 #include <linux/cache.h>
6
7 /* entry.S is sensitive to the offsets of these fields */
8 typedef struct {
9 unsigned int __softirq_active;
10 unsigned int __softirq_mask;
11 unsigned int __local_irq_count;
12 unsigned int __local_bh_count;
13 unsigned int __syscall_count;
14 } ____cacheline_aligned irq_cpustat_t;
15
16 #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
17
18 #define in_interrupt() (local_irq_count(smp_processor_id()) + local_bh_count(smp_processor_id()) != 0)
19
20 #define in_irq() (local_irq_count(smp_processor_id()) != 0)
21
22 #define hardirq_trylock(cpu) (local_irq_count(cpu) == 0)
23 #define hardirq_endlock(cpu) do { } while (0)
24
25 #define irq_enter(cpu) (local_irq_count(cpu)++)
26 #define irq_exit(cpu) (local_irq_count(cpu)--)
27
28 #define synchronize_irq() barrier()
29
30 #endif
31
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.