source: rtems/c/src/lib/libbsp/sparc/leon3/include/bsp/irq.h @ e2623038

5
Last change on this file since e2623038 was af207fa9, checked in by Sebastian Huber <sebastian.huber@…>, on 07/11/17 at 09:54:30

Add interrupt vector set/get affinity

Close #3071.

  • Property mode set to 100644
File size: 1.4 KB
Line 
1/**
2 * @file
3 * @ingroup sparc_leon3
4 * @brief LEON3 generic shared IRQ setup
5 *
6 * Based on libbsp/shared/include/irq.h.
7 */
8
9/*
10 * Copyright (c) 2012.
11 * Aeroflex Gaisler AB.
12 *
13 * The license and distribution terms for this file may be
14 * found in the file LICENSE in this distribution or at
15 * http://www.rtems.org/license/LICENSE.
16 */
17
18#ifndef LIBBSP_LEON3_IRQ_CONFIG_H
19#define LIBBSP_LEON3_IRQ_CONFIG_H
20
21#include <leon.h>
22
23#define BSP_INTERRUPT_VECTOR_MAX_STD 15 /* Standard IRQ controller */
24#define BSP_INTERRUPT_VECTOR_MAX_EXT 31 /* Extended IRQ controller */
25
26#define BSP_INTERRUPT_VECTOR_MIN 0
27#define BSP_INTERRUPT_VECTOR_MAX BSP_INTERRUPT_VECTOR_MAX_EXT
28
29/* The check is different depending on IRQ controller, runtime detected */
30#define BSP_INTERRUPT_CUSTOM_VALID_VECTOR
31
32/**
33 * @brief Returns true if the interrupt vector with number @a vector is valid.
34 */
35static inline bool bsp_interrupt_is_valid_vector(rtems_vector_number vector)
36{
37  return (rtems_vector_number) BSP_INTERRUPT_VECTOR_MIN <= vector
38    && ((vector <= (rtems_vector_number) BSP_INTERRUPT_VECTOR_MAX_STD &&
39        LEON3_IrqCtrl_EIrq == 0) ||
40       (vector <= (rtems_vector_number) BSP_INTERRUPT_VECTOR_MAX_EXT &&
41        LEON3_IrqCtrl_EIrq != 0));
42}
43
44void bsp_interrupt_set_affinity(
45  rtems_vector_number vector,
46  const Processor_mask *affinity
47);
48
49void bsp_interrupt_get_affinity(
50  rtems_vector_number vector,
51  Processor_mask *affinity
52);
53
54#endif /* LIBBSP_LEON3_IRQ_CONFIG_H */
Note: See TracBrowser for help on using the repository browser.