RTEMS 6.1-rc6
Loading...
Searching...
No Matches
isr.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-2-Clause */
2
12/*
13 * COPYRIGHT (c) 1989-2012.
14 * On-Line Applications Research Corporation (OAR).
15 *
16 * Redistribution and use in source and binary forms, with or without
17 * modification, are permitted provided that the following conditions
18 * are met:
19 * 1. Redistributions of source code must retain the above copyright
20 * notice, this list of conditions and the following disclaimer.
21 * 2. Redistributions in binary form must reproduce the above copyright
22 * notice, this list of conditions and the following disclaimer in the
23 * documentation and/or other materials provided with the distribution.
24 *
25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
29 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 * POSSIBILITY OF SUCH DAMAGE.
36 */
37
38#ifndef _RTEMS_SCORE_ISR_H
39#define _RTEMS_SCORE_ISR_H
40
42
60#ifdef __cplusplus
61extern "C" {
62#endif
63
67typedef uint32_t ISR_Vector_number;
68
72typedef void ISR_Handler;
73
74#if (CPU_SIMPLE_VECTORED_INTERRUPTS == FALSE)
75
76typedef void * ISR_Handler_entry;
77
78#else
82#if (CPU_ISR_PASSES_FRAME_POINTER == TRUE)
83typedef ISR_Handler ( *ISR_Handler_entry )(
86 );
87#else
88typedef ISR_Handler ( *ISR_Handler_entry )(
90 );
91#endif
92
97extern ISR_Handler_entry _ISR_Vector_table[ CPU_INTERRUPT_NUMBER_OF_VECTORS ];
98#endif
99
111
118extern const char * const volatile _ISR_Stack_size_object;
119
127extern char _ISR_Stack_area_begin[];
128
136extern const char _ISR_Stack_area_end[];
137
143void _ISR_Handler_initialization ( void );
144
162#define _ISR_Install_vector( _vector, _new_handler, _old_handler ) \
163 _CPU_ISR_install_vector( _vector, _new_handler, _old_handler )
164
179void _ISR_Handler( void );
180
181#ifdef __cplusplus
182}
183#endif
184
187#endif
188/* end of include file */
#define RTEMS_DECLARE_GLOBAL_SYMBOL(_name)
Declares a global symbol with the name.
Definition: basedefs.h:321
void ISR_Handler
Definition: isr.h:72
const char *const volatile _ISR_Stack_size_object
Provides the configured interrupt stack size through an object.
Definition: isr.c:47
void _ISR_Handler(void)
ISR interrupt dispatcher.
Definition: cpu_asm.c:145
const char _ISR_Stack_area_end[]
The interrupt stack area end.
void _ISR_Handler_initialization(void)
Initializes the ISR handler.
Definition: isr.c:49
char _ISR_Stack_area_begin[]
The interrupt stack area begin.
uint32_t ISR_Vector_number
Definition: isr.h:67
This header file provides the ISR_Level related interfaces of the ISR Handler.
Interrupt stack frame (ISF).
Definition: cpuimpl.h:64