19#ifndef VIRTEX_IRQ_IRQ_H
20#define VIRTEX_IRQ_IRQ_H
24#include <bsp/opbintctrl.h>
34#define BSP_OPBINTC_PER_IRQ_NUMBER XPAR_INTC_MAX_NUM_INTR_INPUTS
35#define BSP_OPBINTC_IRQ_LOWEST_OFFSET 0
36#define BSP_OPBINTC_IRQ_MAX_OFFSET (BSP_OPBINTC_IRQ_LOWEST_OFFSET\
37 +BSP_OPBINTC_PER_IRQ_NUMBER-1)
39#define BSP_IS_OPBINTC_IRQ(irqnum) \
40 (((irqnum) >= BSP_OPBINTC_IRQ_LOWEST_OFFSET) && \
41 ((irqnum) <= BSP_OPBINTC_IRQ_MAX_OFFSET))
45#define BSP_PROCESSOR_IRQ_NUMBER 3
46#define BSP_PROCESSOR_IRQ_LOWEST_OFFSET (BSP_OPBINTC_IRQ_MAX_OFFSET+1)
47#define BSP_PROCESSOR_IRQ_MAX_OFFSET (BSP_PROCESSOR_IRQ_LOWEST_OFFSET\
48 +BSP_PROCESSOR_IRQ_NUMBER-1)
50#define BSP_IS_PROCESSOR_IRQ(irqnum) \
51 (((irqnum) >= BSP_PROCESSOR_IRQ_LOWEST_OFFSET) && \
52 ((irqnum) <= BSP_PROCESSOR_IRQ_MAX_OFFSET))
56#define BSP_IRQ_NUMBER (BSP_PROCESSOR_IRQ_MAX_OFFSET+1)
57#define BSP_LOWEST_OFFSET BSP_OPBINTC_IRQ_LOWEST_OFFSET
58#define BSP_MAX_OFFSET BSP_PROCESSOR_IRQ_MAX_OFFSET
60#define BSP_IS_VALID_IRQ(irqnum) \
61 (BSP_IS_PROCESSOR_IRQ(irqnum) \
62 || BSP_IS_OPBINTC_IRQ(irqnum))
64#define BSP_INTERRUPT_VECTOR_MIN 0
65#define BSP_INTERRUPT_VECTOR_MAX BSP_PROCESSOR_IRQ_MAX_OFFSET
76 BSP_OPBINTC_IRQ_FIRST = BSP_OPBINTC_IRQ_LOWEST_OFFSET,
81 BSP_OPBINTC_IRQ_LAST = BSP_OPBINTC_IRQ_MAX_OFFSET,
82 BSP_EXT = BSP_PROCESSOR_IRQ_LOWEST_OFFSET + 0,
83 BSP_PIT = BSP_PROCESSOR_IRQ_LOWEST_OFFSET + 1,
84 BSP_CRIT = BSP_PROCESSOR_IRQ_LOWEST_OFFSET + 2
85 } rtems_irq_symbolic_name;
87#define BSP_OPBINTC_XPAR(xname) (BSP_OPBINTC_IRQ_LOWEST_OFFSET+xname)
Header file for the Interrupt Manager Extension.