Changeset 6aacf08 in rtems
- Timestamp:
- 10/07/14 07:01:55 (9 years ago)
- Branches:
- 4.11, 5, master
- Children:
- a387e944
- Parents:
- fad33860
- git-author:
- Daniel Hellstrom <daniel@…> (10/07/14 07:01:55)
- git-committer:
- Daniel Hellstrom <daniel@…> (10/09/14 11:19:40)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/lib/libbsp/sparc/shared/irq/irq-shared.c
rfad33860 r6aacf08 30 30 static inline void bsp_dispatch_irq(int irq) 31 31 { 32 33 32 bsp_interrupt_handler_entry *e = 33 &bsp_interrupt_handler_table[bsp_interrupt_handler_index(irq)]; 34 34 35 36 37 38 35 while (e != NULL) { 36 (*e->handler)(e->arg); 37 e = e->next; 38 } 39 39 } 40 40 … … 42 42 static void BSP_ISR_handler(rtems_vector_number vector) 43 43 { 44 44 int irq = vector - 0x10; 45 45 46 47 46 /* Let BSP fixup and/or handle incomming IRQ */ 47 irq = bsp_irq_fixup(irq); 48 48 49 49 bsp_dispatch_irq(irq); 50 50 } 51 51 … … 53 53 void BSP_shared_interrupt_init(void) 54 54 { 55 56 57 55 rtems_vector_number vector; 56 rtems_isr_entry previous_isr; 57 int i; 58 58 59 59 for (i=0; i <= BSP_INTERRUPT_VECTOR_MAX_STD; i++) { 60 60 #if defined(LEON3) && \ 61 61 (defined(RTEMS_SMP) || defined(RTEMS_MULTIPROCESSING)) 62 63 64 62 /* Don't install IRQ handler on IPI interrupt */ 63 if (i == LEON3_mp_irq) 64 continue; 65 65 #endif 66 67 68 66 vector = SPARC_ASYNCHRONOUS_TRAP(i) + 0x10; 67 rtems_interrupt_catch(BSP_ISR_handler, vector, &previous_isr); 68 } 69 69 70 71 70 /* Initalize interrupt support */ 71 bsp_interrupt_initialize(); 72 72 } 73 73 … … 75 75 rtems_status_code bsp_interrupt_facility_initialize(void) 76 76 { 77 77 return RTEMS_SUCCESSFUL; 78 78 } 79 79 … … 106 106 void BSP_shared_interrupt_clear(int irq) 107 107 { 108 109 110 111 108 /* We don't have to interrupt lock here, because the register is only 109 * written and self clearing 110 */ 111 BSP_Clear_interrupt(irq); 112 112 }
Note: See TracChangeset
for help on using the changeset viewer.