source: rtems/bsps/powerpc/qemuppc/include/bsp/irq.h @ cd5573c

Last change on this file since cd5573c was cd5573c, checked in by Sebastian Huber <sebastian.huber@…>, on 06/19/21 at 10:40:57

bsps/irq: Add BSP_INTERRUPT_VECTOR_COUNT

Assert BSP_INTERRUPT_VECTOR_MAX + 1 == BSP_INTERRUPT_VECTOR_COUNT.

After building all BSPs with this patch, BSP_INTERRUPT_VECTOR_MAX can be
removed and replaced by BSP_INTERRUPT_VECTOR_COUNT. The
BSP_INTERRUPT_VECTOR_COUNT allows a default implementation which supports no
interrupt vector at all. Using COUNT instead of MAX may avoid some
interpretation issues, for example is the maximum value a valid vector number
or not.

Update #3269.

  • Property mode set to 100644
File size: 1.9 KB
Line 
1/* irq.h
2 *
3 *  This include file describe the data structure and the functions implemented
4 *  by rtems to write interrupt handlers.
5 *
6 *  CopyRight (C) 1999 valette@crf.canon.fr
7 *
8 *  This code is heavilly inspired by the public specification of STREAM V2
9 *  that can be found at :
10 *
11 *      <http://www.chorus.com/Documentation/index.html> by following
12 *  the STREAM API Specification Document link.
13 *
14 *  The license and distribution terms for this file may be
15 *  found in the file LICENSE in this distribution or at
16 *  http://www.rtems.org/license/LICENSE.
17 */
18
19#ifndef LIBBSP_POWERPC_IRQ_H
20#define LIBBSP_POWERPC_IRQ_H
21
22#define BSP_SHARED_HANDLER_SUPPORT      1
23
24#ifndef ASM
25
26#include <rtems/irq.h>
27
28
29/*
30 * Symblolic IRQ names and related definitions.
31 */
32
33/*
34 * PCI IRQ handlers related definitions
35 * CAUTION : BSP_PCI_IRQ_LOWEST_OFFSET should be equal to OPENPIC_VEC_SOURCE
36 */
37/* FIXME: do we need PCI interrrupts here ? */
38#define BSP_PCI_IRQ_NUMBER              (16)
39#define BSP_PCI_IRQ_LOWEST_OFFSET       (0)
40#define BSP_PCI_IRQ_MAX_OFFSET          (BSP_PCI_IRQ_LOWEST_OFFSET + BSP_PCI_IRQ_NUMBER - 1)
41
42#define BSP_PROCESSOR_IRQ_NUMBER            (1)
43#define BSP_PROCESSOR_IRQ_LOWEST_OFFSET (BSP_PCI_IRQ_MAX_OFFSET)
44#define BSP_PROCESSOR_IRQ_MAX_OFFSET    (BSP_PROCESSOR_IRQ_LOWEST_OFFSET+BSP_PROCESSOR_IRQ_NUMBER-1)
45
46
47  /*
48   * Summary
49   */
50#define BSP_IRQ_NUMBER                  (BSP_PROCESSOR_IRQ_MAX_OFFSET + 1)
51#define BSP_LOWEST_OFFSET               (BSP_PCI_IRQ_LOWEST_OFFSET)
52#define BSP_MAX_OFFSET                  (BSP_IRQ_NUMBER - 1)
53
54  /*
55   * Some Processor execption handled as rtems IRQ symbolic name definition
56   */
57#define BSP_DECREMENTER                 (BSP_PROCESSOR_IRQ_LOWEST_OFFSET)
58
59#define BSP_INTERRUPT_VECTOR_MAX BSP_MAX_OFFSET
60#define BSP_INTERRUPT_VECTOR_COUNT BSP_IRQ_NUMBER
61
62/* #include <bsp/irq_supp.h> */
63
64#ifdef __cplusplus
65extern "C" {
66#endif
67
68void BSP_rtems_irq_mng_init(unsigned cpuId);
69
70#ifdef __cplusplus
71}
72#endif
73
74#endif
75#endif
Note: See TracBrowser for help on using the repository browser.