initial commit with v2.6.9
[linux-2.6.9-moxart.git] / include / asm-ia64 / hardirq.h
blob491996a792514c0b60b322ace12d70256f5151e3
1 #ifndef _ASM_IA64_HARDIRQ_H
2 #define _ASM_IA64_HARDIRQ_H
4 /*
5 * Modified 1998-2002, 2004 Hewlett-Packard Co
6 * David Mosberger-Tang <davidm@hpl.hp.com>
7 */
9 #include <linux/config.h>
11 #include <linux/threads.h>
12 #include <linux/irq.h>
14 #include <asm/processor.h>
17 * No irq_cpustat_t for IA-64. The data is held in the per-CPU data structure.
20 #define __ARCH_IRQ_STAT 1
22 #define softirq_pending(cpu) (cpu_data(cpu)->softirq_pending)
23 #define syscall_count(cpu) /* unused on IA-64 */
24 #define ksoftirqd_task(cpu) (cpu_data(cpu)->ksoftirqd)
25 #define nmi_count(cpu) 0
27 #define local_softirq_pending() (local_cpu_data->softirq_pending)
28 #define local_syscall_count() /* unused on IA-64 */
29 #define local_ksoftirqd_task() (local_cpu_data->ksoftirqd)
30 #define local_nmi_count() 0
33 * We put the hardirq and softirq counter into the preemption counter. The bitmask has the
34 * following meaning:
36 * - bits 0-7 are the preemption count (max preemption depth: 256)
37 * - bits 8-15 are the softirq count (max # of softirqs: 256)
38 * - bits 16-29 are the hardirq count (max # of hardirqs: 16384)
40 * - (bit 63 is the PREEMPT_ACTIVE flag---not currently implemented.)
42 * PREEMPT_MASK: 0x000000ff
43 * SOFTIRQ_MASK: 0x0000ff00
44 * HARDIRQ_MASK: 0x3fff0000
47 #define PREEMPT_BITS 8
48 #define SOFTIRQ_BITS 8
49 #define HARDIRQ_BITS 14
51 #define PREEMPT_SHIFT 0
52 #define SOFTIRQ_SHIFT (PREEMPT_SHIFT + PREEMPT_BITS)
53 #define HARDIRQ_SHIFT (SOFTIRQ_SHIFT + SOFTIRQ_BITS)
56 * The hardirq mask has to be large enough to have space for potentially all IRQ sources
57 * in the system nesting on a single CPU:
59 #if (1 << HARDIRQ_BITS) < NR_IRQS
60 # error HARDIRQ_BITS is too low!
61 #endif
63 extern void __iomem *ipi_base_addr;
65 #endif /* _ASM_IA64_HARDIRQ_H */