RTEMS CPU Kit with SuperCore  4.11.3
irq-extension.h
Go to the documentation of this file.
1 
9 /*
10  * Based on concepts of Pavel Pisa, Till Straumann and Eric Valette.
11  *
12  * Copyright (c) 2008-2014 embedded brains GmbH.
13  *
14  * embedded brains GmbH
15  * Dornierstr. 4
16  * 82178 Puchheim
17  * Germany
18  * <rtems@embedded-brains.de>
19  *
20  * The license and distribution terms for this file may be
21  * found in the file LICENSE in this distribution or at
22  * http://www.rtems.org/license/LICENSE.
23  */
24 
25 #ifndef RTEMS_IRQ_EXTENSION_H
26 #define RTEMS_IRQ_EXTENSION_H
27 
28 #include <rtems.h>
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif /* __cplusplus */
33 
49 #define RTEMS_INTERRUPT_UNIQUE ((rtems_option) 0x00000001)
50 
55 #define RTEMS_INTERRUPT_SHARED ((rtems_option) 0x00000000)
56 
61 #define RTEMS_INTERRUPT_REPLACE ((rtems_option) 0x00000002)
62 
66 #define RTEMS_INTERRUPT_IS_UNIQUE( options) \
67  ((options) & RTEMS_INTERRUPT_UNIQUE)
68 
72 #define RTEMS_INTERRUPT_IS_SHARED( options) \
73  (!RTEMS_INTERRUPT_IS_UNIQUE( options))
74 
78 #define RTEMS_INTERRUPT_IS_REPLACE( options) \
79  ((options) & RTEMS_INTERRUPT_REPLACE)
80 
84 typedef void (*rtems_interrupt_handler)(void *);
85 
138  rtems_vector_number vector,
139  const char *info,
140  rtems_option options,
141  rtems_interrupt_handler handler,
142  void *arg
143 );
144 
164  rtems_vector_number vector,
165  rtems_interrupt_handler handler,
166  void *arg
167 );
168 
175  void *, const char *, rtems_option, rtems_interrupt_handler, void *
176 );
177 
200  rtems_vector_number vector,
202  void *arg
203 );
204 
231  rtems_task_priority priority,
232  size_t stack_size,
233  rtems_mode modes,
234  rtems_attribute attributes,
235  rtems_id *server
236 );
237 
256  rtems_id server,
257  rtems_vector_number vector,
258  const char *info,
259  rtems_option options,
260  rtems_interrupt_handler handler,
261  void *arg
262 );
263 
281  rtems_id server,
282  rtems_vector_number vector,
283  rtems_interrupt_handler handler,
284  void *arg
285 );
286 
289 #ifdef __cplusplus
290 }
291 #endif /* __cplusplus */
292 
293 #endif /* RTEMS_IRQ_EXTENSION_H */
uint32_t rtems_attribute
This defines the type used to contain Classic API attributes.
Definition: attr.h:44
rtems_status_code rtems_interrupt_server_handler_remove(rtems_id server, rtems_vector_number vector, rtems_interrupt_handler handler, void *arg)
Removes the interrupt handler routine handler with argument arg for the interrupt vector with number ...
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:80
rtems_status_code rtems_interrupt_server_initialize(rtems_task_priority priority, size_t stack_size, rtems_mode modes, rtems_attribute attributes, rtems_id *server)
Initializes an interrupt server task.
rtems_status_code rtems_interrupt_handler_remove(rtems_vector_number vector, rtems_interrupt_handler handler, void *arg)
Removes the interrupt handler routine handler with argument arg for the interrupt vector with number ...
rtems_status_code rtems_interrupt_handler_install(rtems_vector_number vector, const char *info, rtems_option options, rtems_interrupt_handler handler, void *arg)
Installs the interrupt handler routine handler for the interrupt vector with number vector...
ISR_Vector_number rtems_vector_number
Control block type used to manage the vectors.
Definition: intr.h:50
Priority_Control rtems_task_priority
Define the type for an RTEMS API task priority.
Definition: tasks.h:79
rtems_status_code
Classic API Status.
Definition: status.h:46
rtems_status_code rtems_interrupt_server_handler_install(rtems_id server, rtems_vector_number vector, const char *info, rtems_option options, rtems_interrupt_handler handler, void *arg)
Installs the interrupt handler routine handler for the interrupt vector with number vector on the ser...
uint32_t rtems_option
The following type defines the control block used to manage option sets.
Definition: options.h:45
void(* rtems_interrupt_per_handler_routine)(void *, const char *, rtems_option, rtems_interrupt_handler, void *)
Interrupt handler iteration routine type.
Definition: irq-extension.h:174
void(* rtems_interrupt_handler)(void *)
Interrupt handler routine type.
Definition: irq-extension.h:84
rtems_status_code rtems_interrupt_handler_iterate(rtems_vector_number vector, rtems_interrupt_per_handler_routine routine, void *arg)
Iterates over all installed interrupt handler of the interrupt vector with number vector...
Modes_Control rtems_mode
Task mode type.
Definition: types.h:167