ia64/xen-unstable

changeset 3161:398ae0d78351

bitkeeper revision 1.1159.1.461 (41a77450yxWIiu0zeUzMkkwwljW0mw)

Increase number of IRQs to 512.
author cl349@arcadians.cl.cam.ac.uk
date Fri Nov 26 18:22:08 2004 +0000 (2004-11-26)
parents d31d480dee1d
children ff08d8fb806e
files .rootkeys linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/hardirq.h linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h
line diff
     1.1 --- a/.rootkeys	Thu Nov 25 23:06:45 2004 +0000
     1.2 +++ b/.rootkeys	Fri Nov 26 18:22:08 2004 +0000
     1.3 @@ -220,6 +220,7 @@ 40f56239YAjS52QG2FIAQpHDZAdGHg linux-2.6
     1.4  4107adf1E5O4ztGHNGMzCCNhcvqNow linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/dma-mapping.h
     1.5  40f5623akIoBsQ3KxSB2kufkbgONXQ linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/fixmap.h
     1.6  41979925z1MsKU1SfuuheM1IFDQ_bA linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/floppy.h
     1.7 +41a64cdeQ5SWVEVbSZ0K-IeHHhIJ_w linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/hardirq.h
     1.8  4118b6a418gnL6AZsTdglC92YGqYTg linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/highmem.h
     1.9  40f5623aJVXQwpJMOLE99XgvGsfQ8Q linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/io.h
    1.10  40f5623aKXkBBxgpLx2NcvkncQ1Yyw linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/hardirq.h	Fri Nov 26 18:22:08 2004 +0000
     2.3 @@ -0,0 +1,61 @@
     2.4 +#ifndef __ASM_HARDIRQ_H
     2.5 +#define __ASM_HARDIRQ_H
     2.6 +
     2.7 +#include <linux/config.h>
     2.8 +#include <linux/threads.h>
     2.9 +#include <linux/irq.h>
    2.10 +
    2.11 +typedef struct {
    2.12 +	unsigned int __softirq_pending;
    2.13 +	unsigned long idle_timestamp;
    2.14 +	unsigned int __nmi_count;	/* arch dependent */
    2.15 +	unsigned int apic_timer_irqs;	/* arch dependent */
    2.16 +} ____cacheline_aligned irq_cpustat_t;
    2.17 +
    2.18 +#include <linux/irq_cpustat.h>	/* Standard mappings for irq_cpustat_t above */
    2.19 +
    2.20 +/*
    2.21 + * We put the hardirq and softirq counter into the preemption
    2.22 + * counter. The bitmask has the following meaning:
    2.23 + *
    2.24 + * - bits 0-7 are the preemption count (max preemption depth: 256)
    2.25 + * - bits 8-15 are the softirq count (max # of softirqs: 256)
    2.26 + * - bits 16-24 are the hardirq count (max # of hardirqs: 512)
    2.27 + *
    2.28 + * - ( bit 26 is the PREEMPT_ACTIVE flag. )
    2.29 + *
    2.30 + * PREEMPT_MASK: 0x000000ff
    2.31 + * SOFTIRQ_MASK: 0x0000ff00
    2.32 + * HARDIRQ_MASK: 0x01ff0000
    2.33 + */
    2.34 +
    2.35 +#define PREEMPT_BITS	8
    2.36 +#define SOFTIRQ_BITS	8
    2.37 +#define HARDIRQ_BITS	9
    2.38 +
    2.39 +#define PREEMPT_SHIFT	0
    2.40 +#define SOFTIRQ_SHIFT	(PREEMPT_SHIFT + PREEMPT_BITS)
    2.41 +#define HARDIRQ_SHIFT	(SOFTIRQ_SHIFT + SOFTIRQ_BITS)
    2.42 +
    2.43 +/*
    2.44 + * The hardirq mask has to be large enough to have
    2.45 + * space for potentially all IRQ sources in the system
    2.46 + * nesting on a single CPU:
    2.47 + */
    2.48 +#if (1 << HARDIRQ_BITS) < NR_IRQS
    2.49 +# error HARDIRQ_BITS is too low!
    2.50 +#endif
    2.51 +
    2.52 +#define nmi_enter()		(irq_enter())
    2.53 +#define nmi_exit()		(preempt_count() -= HARDIRQ_OFFSET)
    2.54 +
    2.55 +#define irq_enter()		(preempt_count() += HARDIRQ_OFFSET)
    2.56 +#define irq_exit()							\
    2.57 +do {									\
    2.58 +		preempt_count() -= IRQ_EXIT_OFFSET;			\
    2.59 +		if (!in_interrupt() && softirq_pending(smp_processor_id())) \
    2.60 +			do_softirq();					\
    2.61 +		preempt_enable_no_resched();				\
    2.62 +} while (0)
    2.63 +
    2.64 +#endif /* __ASM_HARDIRQ_H */
     3.1 --- a/linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h	Thu Nov 25 23:06:45 2004 +0000
     3.2 +++ b/linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h	Fri Nov 26 18:22:08 2004 +0000
     3.3 @@ -126,10 +126,10 @@
     3.4   */
     3.5  
     3.6  #define PIRQ_BASE   0
     3.7 -#define NR_PIRQS  128
     3.8 +#define NR_PIRQS  256
     3.9  
    3.10  #define DYNIRQ_BASE (PIRQ_BASE + NR_PIRQS)
    3.11 -#define NR_DYNIRQS  128
    3.12 +#define NR_DYNIRQS  256
    3.13  
    3.14  #define NR_IRQS   (NR_PIRQS + NR_DYNIRQS)
    3.15  #define NR_IRQ_VECTORS NR_IRQS