RTEMS 7.0-rc1
Loading...
Searching...
No Matches
Macros | Typedefs | Functions | Variables
irq.h File Reference

Interrupt Handler Support. More...

#include <rtems/irq.h>
#include <bsp/irq_supp.h>

Go to the source code of this file.

Macros

#define BSP_SHARED_HANDLER_SUPPORT   1
 
#define BSP_POWERPC_IRQ_GENERIC_SUPPORT   1
 
#define ISA8259_M_ELCR   0x4d0
 
#define ISA8259_S_ELCR   0x4d1
 
#define ELCRS_INT15_LVL   0x80
 
#define ELCRS_INT14_LVL   0x40
 
#define ELCRS_INT13_LVL   0x20
 
#define ELCRS_INT12_LVL   0x10
 
#define ELCRS_INT11_LVL   0x08
 
#define ELCRS_INT10_LVL   0x04
 
#define ELCRS_INT9_LVL   0x02
 
#define ELCRS_INT8_LVL   0x01
 
#define ELCRM_INT7_LVL   0x80
 
#define ELCRM_INT6_LVL   0x40
 
#define ELCRM_INT5_LVL   0x20
 
#define ELCRM_INT4_LVL   0x10
 
#define ELCRM_INT3_LVL   0x8
 
#define ELCRM_INT2_LVL   0x4
 
#define ELCRM_INT1_LVL   0x2
 
#define ELCRM_INT0_LVL   0x1
 
#define PIC_MASTER_COMMAND_IO_PORT   0x20 /* Master PIC command register */
 
#define PIC_SLAVE_COMMAND_IO_PORT   0xa0 /* Slave PIC command register */
 
#define PIC_MASTER_IMR_IO_PORT   0x21 /* Master PIC Interrupt Mask Register */
 
#define PIC_SLAVE_IMR_IO_PORT   0xa1 /* Slave PIC Interrupt Mask Register */
 
#define PIC_EOSI   0x60 /* End of Specific Interrupt (EOSI) */
 
#define SLAVE_PIC_EOSI   0x62 /* End of Specific Interrupt (EOSI) for cascade */
 
#define PIC_EOI   0x20 /* Generic End of Interrupt (EOI) */
 
#define BSP_ISA_IRQ_NUMBER   (16)
 
#define BSP_ISA_IRQ_LOWEST_OFFSET   (0)
 
#define BSP_ISA_IRQ_MAX_OFFSET   (BSP_ISA_IRQ_LOWEST_OFFSET + BSP_ISA_IRQ_NUMBER - 1)
 
#define BSP_PCI_IRQ_NUMBER   (16)
 
#define BSP_PCI_IRQ_LOWEST_OFFSET   (BSP_ISA_IRQ_NUMBER)
 
#define BSP_PCI_IRQ_MAX_OFFSET   (BSP_PCI_IRQ_LOWEST_OFFSET + BSP_PCI_IRQ_NUMBER - 1)
 
#define BSP_PROCESSOR_IRQ_NUMBER   (1)
 
#define BSP_PROCESSOR_IRQ_LOWEST_OFFSET   (BSP_PCI_IRQ_MAX_OFFSET + 1)
 
#define BSP_PROCESSOR_IRQ_MAX_OFFSET   (BSP_PROCESSOR_IRQ_LOWEST_OFFSET + BSP_PROCESSOR_IRQ_NUMBER - 1)
 
#define BSP_MISC_IRQ_NUMBER   (8)
 
#define BSP_MISC_IRQ_LOWEST_OFFSET   (BSP_PROCESSOR_IRQ_MAX_OFFSET + 1)
 
#define BSP_MISC_IRQ_MAX_OFFSET   (BSP_MISC_IRQ_LOWEST_OFFSET + BSP_MISC_IRQ_NUMBER - 1)
 
#define BSP_IRQ_NUMBER   (BSP_MISC_IRQ_MAX_OFFSET + 1)
 
#define BSP_LOWEST_OFFSET   (BSP_ISA_IRQ_LOWEST_OFFSET)
 
#define BSP_MAX_OFFSET   (BSP_MISC_IRQ_MAX_OFFSET)
 
#define BSP_INTERRUPT_VECTOR_COUNT   (BSP_MAX_OFFSET + 1)
 
#define BSP_ISA_PERIODIC_TIMER   (0)
 
#define BSP_ISA_KEYBOARD   (1)
 
#define BSP_ISA_UART_COM2_IRQ   (3)
 
#define BSP_ISA_UART_COM1_IRQ   (4)
 
#define BSP_ISA_RT_TIMER1   (8)
 
#define BSP_ISA_RT_TIMER3   (10)
 
#define BSP_PCI_IRQ0   (BSP_PCI_IRQ_LOWEST_OFFSET)
 
#define BSP_PCI_ISA_BRIDGE_IRQ   (BSP_PCI_IRQ0)
 
#define BSP_UART_COM1_IRQ   BSP_ISA_UART_COM1_IRQ
 
#define BSP_UART_COM2_IRQ   BSP_ISA_UART_COM2_IRQ
 
#define BSP_DECREMENTER   (BSP_PROCESSOR_IRQ_LOWEST_OFFSET)
 

Typedefs

typedef unsigned short rtems_i8259_masks
 

Functions

void BSP_i8259s_init (void)
 
int BSP_irq_disable_at_i8259s (const rtems_irq_number irqLine)
 function to disable a particular irq at 8259 level.
 
int BSP_irq_enable_at_i8259s (const rtems_irq_number irqLine)
 function to enable a particular irq at 8259 level.
 
int BSP_irq_ack_at_i8259s (const rtems_irq_number irqLine)
 function to acknowledge a particular irq at 8259 level.
 
int BSP_irq_enabled_at_i8259s (const rtems_irq_number irqLine)
 function to check if a particular irq is enabled at 8259 level.
 
unsigned short BSP_irq_suspend_i8259s (unsigned short mask)
 
void BSP_irq_resume_i8259s (unsigned short in_progress_save)
 
void BSP_rtems_irq_mng_init (unsigned cpuId)
 

Variables

volatile rtems_i8259_masks i8259s_cache
 

Detailed Description

Interrupt Handler Support.

This include file describe the data structure and the functions implemented by RTEMS to write interrupt handlers.

This code is heavily inspired by the public specification of STREAM V2 that can be found at :