source: rtems/bsps/powerpc/virtex/include/bsp/irq.h @ e560ee85

Last change on this file since e560ee85 was e560ee85, checked in by Joel Sherrill <joel@…>, on 03/01/22 at 21:38:55

bsps/powerpc/: Scripted embedded brains header file clean up

Updates #4625.

  • 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|                    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.org/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 <rtems/irq-extension.h>
24#include <bsp/opbintctrl.h>
25
26/*
27 * the following definitions specify the indices used
28 * to interface the interrupt handler API
29 */
30
31/*
32 * Peripheral IRQ handlers related definitions
33 */
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)
38
39#define BSP_IS_OPBINTC_IRQ(irqnum)                              \
40          (((irqnum) >= BSP_OPBINTC_IRQ_LOWEST_OFFSET) &&       \
41           ((irqnum) <= BSP_OPBINTC_IRQ_MAX_OFFSET))
42/*
43 * Processor IRQ handlers related definitions
44 */
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)
49
50#define BSP_IS_PROCESSOR_IRQ(irqnum)                            \
51          (((irqnum) >= BSP_PROCESSOR_IRQ_LOWEST_OFFSET) &&     \
52           ((irqnum) <= BSP_PROCESSOR_IRQ_MAX_OFFSET))
53/*
54 * Summary
55 */
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
59
60#define BSP_IS_VALID_IRQ(irqnum)        \
61          (BSP_IS_PROCESSOR_IRQ(irqnum) \
62           || BSP_IS_OPBINTC_IRQ(irqnum))
63
64#define BSP_INTERRUPT_VECTOR_COUNT (BSP_PROCESSOR_IRQ_MAX_OFFSET + 1)
65
66#ifndef ASM
67#ifdef __cplusplus
68extern "C" {
69#endif
70
71/*
72 * index table for the module specific handlers, a few entries are only placeholders
73 */
74  typedef enum {
75    BSP_OPBINTC_IRQ_FIRST       = BSP_OPBINTC_IRQ_LOWEST_OFFSET,
76    /*
77     * Note: for this BSP, the peripheral names are derived
78     * from the Xilinx parameter file
79     */
80    BSP_OPBINTC_IRQ_LAST        = BSP_OPBINTC_IRQ_MAX_OFFSET,
81    BSP_EXT               = BSP_PROCESSOR_IRQ_LOWEST_OFFSET + 0,
82    BSP_PIT               = BSP_PROCESSOR_IRQ_LOWEST_OFFSET + 1,
83    BSP_CRIT              = BSP_PROCESSOR_IRQ_LOWEST_OFFSET + 2
84  } rtems_irq_symbolic_name;
85
86#define BSP_OPBINTC_XPAR(xname) (BSP_OPBINTC_IRQ_LOWEST_OFFSET+xname)
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.