ia64/xen-unstable

annotate xen/include/asm-x86/hardirq.h @ 9552:3838105ab03b

Various softirq cleanups:
1. Make __softirq_pending a long, since PPC borrows the file
hardirq.h from us and they only do atomic ops on longs.
2. do_softirq() explicitly takes a void param list.
3. Remove idle_timestamp field from irq_cpustat. It's unused
and lets us simplify the idle loop a little bit.

Part 1 based on a patch from Hollis Blanchard at IBM.

Signed-off-by: Keir Fraser <keir@xensource.com>
author kaf24@firebug.cl.cam.ac.uk
date Fri Mar 31 12:03:42 2006 +0100 (2006-03-31)
parents 07a892f12609
children
rev   line source
kaf24@1452 1 #ifndef __ASM_HARDIRQ_H
kaf24@1452 2 #define __ASM_HARDIRQ_H
kaf24@1452 3
kaf24@1452 4 #include <xen/config.h>
cl349@2959 5 #include <xen/cache.h>
kaf24@1452 6
kaf24@1452 7 typedef struct {
kaf24@9552 8 unsigned long __softirq_pending;
kaf24@1452 9 unsigned int __local_irq_count;
kaf24@1452 10 unsigned int __nmi_count;
kaf24@3075 11 } __cacheline_aligned irq_cpustat_t;
kaf24@1452 12
kaf24@1452 13 #include <xen/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
kaf24@1452 14
kaf24@1452 15 #define in_irq() (local_irq_count(smp_processor_id()) != 0)
kaf24@1452 16
kaf24@8847 17 #define irq_enter() (local_irq_count(smp_processor_id())++)
kaf24@8847 18 #define irq_exit() (local_irq_count(smp_processor_id())--)
kaf24@8847 19
kaf24@8847 20 void ack_bad_irq(unsigned int irq);
kaf24@8847 21
kaf24@8847 22 extern void apic_intr_init(void);
kaf24@8847 23 extern void smp_intr_init(void);
kaf24@1452 24
kaf24@1452 25 #endif /* __ASM_HARDIRQ_H */