source: rtems/c/src/lib/libbsp/powerpc/virtex/irq/irq.h @ a9e62c2

4.104.114.95
Last change on this file since a9e62c2 was a045c9d, checked in by Till Straumann <strauman@…>, on 11/30/07 at 20:45:11

2007-11-30 Till Straumann <strauman@…>

  • irq/irq.h, irq/irq_init.c: Removed the definition of ASM_IRQ_VECTOR_BASE; this symbol was only use to initialize the irqBase member of the rtems_irq_global_settings struct. However, irqBase is an rtems_irq_symbolic_name, so using BSP_LOWEST_OFFSET is more appropriate.
  • Property mode set to 100644
File size: 3.5 KB
Line 
1/*===============================================================*\
2| Project: RTEMS virtex BSP                                       |
3+-----------------------------------------------------------------+
4|                    Copyright (c) 2007                           |
5|                    Embedded Brains GmbH                         |
6|                    Obere Lagerstr. 30                           |
7|                    D-82178 Puchheim                             |
8|                    Germany                                      |
9|                    rtems@embedded-brains.de                     |
10+-----------------------------------------------------------------+
11| The license and distribution terms for this file may be         |
12| found in the file LICENSE in this distribution or at            |
13|                                                                 |
14| http://www.rtems.com/license/LICENSE.                           |
15|                                                                 |
16+-----------------------------------------------------------------+
17| this file declares constants of the interrupt controller        |
18\*===============================================================*/
19#ifndef VIRTEX_IRQ_IRQ_H
20#define VIRTEX_IRQ_IRQ_H
21
22#include <rtems/irq.h>
23#include <bsp/opbintctrl.h>
24
25/*
26 * the following definitions specify the indices used
27 * to interface the interrupt handler API
28 */
29
30/*
31 * Peripheral IRQ handlers related definitions
32 */
33#define BSP_OPBINTC_PER_IRQ_NUMBER      XPAR_INTC_MAX_NUM_INTR_INPUTS
34#define BSP_OPBINTC_IRQ_LOWEST_OFFSET   0
35#define BSP_OPBINTC_IRQ_MAX_OFFSET      (BSP_OPBINTC_IRQ_LOWEST_OFFSET\
36                                         +BSP_OPBINTC_PER_IRQ_NUMBER-1)
37
38#define BSP_IS_OPBINTC_IRQ(irqnum)                              \
39          (((irqnum) >= BSP_OPBINTC_IRQ_LOWEST_OFFSET) &&       \
40           ((irqnum) <= BSP_OPBINTC_IRQ_MAX_OFFSET))
41/*
42 * Processor IRQ handlers related definitions
43 */
44#define BSP_PROCESSOR_IRQ_NUMBER        3
45#define BSP_PROCESSOR_IRQ_LOWEST_OFFSET (BSP_OPBINTC_IRQ_MAX_OFFSET+1)
46#define BSP_PROCESSOR_IRQ_MAX_OFFSET    (BSP_PROCESSOR_IRQ_LOWEST_OFFSET\
47                                         +BSP_PROCESSOR_IRQ_NUMBER-1)
48
49#define BSP_IS_PROCESSOR_IRQ(irqnum)                            \
50          (((irqnum) >= BSP_PROCESSOR_IRQ_LOWEST_OFFSET) &&     \
51           ((irqnum) <= BSP_PROCESSOR_IRQ_MAX_OFFSET))
52/*
53 * Summary
54 */
55#define BSP_IRQ_NUMBER                  (BSP_PROCESSOR_IRQ_MAX_OFFSET+1)
56#define BSP_LOWEST_OFFSET               BSP_OPBINTC_IRQ_LOWEST_OFFSET
57#define BSP_MAX_OFFSET                  BSP_PROCESSOR_IRQ_MAX_OFFSET
58
59#define BSP_IS_VALID_IRQ(irqnum)        \
60          (BSP_IS_PROCESSOR_IRQ(irqnum) \
61           || BSP_IS_OPBINTC_IRQ(irqnum))
62
63#ifndef ASM
64#ifdef __cplusplus
65extern "C" {
66#endif
67
68/*
69 * index table for the module specific handlers, a few entries are only placeholders
70 */
71  typedef enum {
72    BSP_OPBINTC_IRQ_FIRST       = BSP_OPBINTC_IRQ_LOWEST_OFFSET,
73    /*
74     * Note: for this BSP, the peripheral names are derived
75     * from the Xilinx parameter file
76     */
77    BSP_OPBINTC_IRQ_LAST        = BSP_OPBINTC_IRQ_MAX_OFFSET,
78    BSP_EXT               = BSP_PROCESSOR_IRQ_LOWEST_OFFSET + 0,
79    BSP_PIT               = BSP_PROCESSOR_IRQ_LOWEST_OFFSET + 1,
80    BSP_CRIT              = BSP_PROCESSOR_IRQ_LOWEST_OFFSET + 2
81  } rtems_irq_symbolic_name;
82
83#define BSP_OPBINTC_XPAR(xname) (BSP_OPBINTC_IRQ_LOWEST_OFFSET+xname)
84
85  extern rtems_irq_connect_data *BSP_rtems_irq_tbl;
86  void BSP_rtems_irq_mng_init(unsigned cpuId);
87
88#ifdef __cplusplus
89}
90#endif
91#endif /* ASM */
92
93#endif /* VIRTEX_IRQ_IRQ_H */
Note: See TracBrowser for help on using the repository browser.