![]() |
|
|||
File indexing completed on 2025-05-11 08:23:41
0001 /** 0002 * @file 0003 * @ingroup i386_irq 0004 * @brief Interrupt handlers 0005 */ 0006 0007 /* irq.h 0008 * 0009 * This include file describe the data structure and the functions implemented 0010 * by rtems to write interrupt handlers. 0011 * 0012 * CopyRight (C) 1998 valette@crf.canon.fr 0013 * 0014 * This code is heavilly inspired by the public specification of STREAM V2 0015 * that can be found at : 0016 * 0017 * <http://www.chorus.com/Documentation/index.html> by following 0018 * the STREAM API Specification Document link. 0019 * 0020 * The license and distribution terms for this file may be 0021 * found in the file LICENSE in this distribution or at 0022 * http://www.rtems.org/license/LICENSE. 0023 */ 0024 0025 /** 0026 * @defgroup i386_irq Interrupt handlers 0027 * @ingroup RTEMSBSPsI386 0028 * @brief Data structure and the functions to write interrupt handlers 0029 * @{ 0030 */ 0031 0032 #ifndef _IRQ_H_ 0033 #define _IRQ_H_ 0034 0035 #ifdef __cplusplus 0036 extern "C" { 0037 #endif 0038 0039 /** @brief 0040 * Include some preprocessor value also used by assember code 0041 */ 0042 0043 #include <bsp/irq_asm.h> 0044 #include <rtems.h> 0045 #ifndef BSP_SHARED_HANDLER_SUPPORT 0046 #define BSP_SHARED_HANDLER_SUPPORT 1 0047 #endif 0048 #include <rtems/irq.h> 0049 #include <rtems/irq-extension.h> 0050 0051 /*-------------------------------------------------------------------------+ 0052 | Constants 0053 +--------------------------------------------------------------------------*/ 0054 0055 /** @brief Base vector for our IRQ handlers. */ 0056 #define BSP_IRQ_VECTOR_BASE BSP_ASM_IRQ_VECTOR_BASE 0057 #define BSP_IRQ_LINES_NUMBER 16 0058 #define BSP_IRQ_MAX_ON_i8259A (BSP_IRQ_LINES_NUMBER - 1) 0059 0060 /* 0061 * Define the number of valid vectors. This is different to the number of IRQ 0062 * signals supported. Use this value to allocation vector data or range check. 0063 */ 0064 #define BSP_IRQ_VECTOR_NUMBER 17 0065 #define BSP_IRQ_VECTOR_LOWEST_OFFSET 0 0066 #define BSP_IRQ_VECTOR_MAX_OFFSET (BSP_IRQ_VECTOR_NUMBER - 1) 0067 0068 /** @brief 0069 * Interrupt offset in comparison to BSP_ASM_IRQ_VECTOR_BASE 0070 * NB : 1) Interrupt vector number in IDT = offset + BSP_ASM_IRQ_VECTOR_BASE 0071 * 2) The same name should be defined on all architecture 0072 * so that handler connection can be unchanged. 0073 */ 0074 #define BSP_PERIODIC_TIMER 0 /* fixed on all builds of PC */ 0075 #define BSP_KEYBOARD 1 /* fixed on all builds of PC */ 0076 #define BSP_UART_COM2_IRQ 3 /* fixed for ISA bus */ 0077 #define BSP_UART_COM1_IRQ 4 /* fixed for ISA bus */ 0078 #define BSP_UART_COM3_IRQ 5 0079 #define BSP_UART_COM4_IRQ 6 0080 #define BSP_RT_TIMER1 8 0081 #define BSP_RT_TIMER3 10 0082 #define BSP_SMP_IPI 16 /* not part of the ATPIC */ 0083 0084 #define BSP_INTERRUPT_VECTOR_COUNT BSP_IRQ_VECTOR_NUMBER 0085 0086 /** @brief 0087 * Type definition for RTEMS managed interrupts 0088 */ 0089 typedef unsigned short rtems_i8259_masks; 0090 0091 /** @} */ 0092 0093 #ifdef __cplusplus 0094 } 0095 #endif 0096 0097 #endif /* _IRQ_H_ */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |