comparison packages/hal/common/current/src/drv_api.c @ 130:eb9fd8c04db3 ecos-sw-2000-10-23

Merge from eCos master repository on 2000-10-23-17:01:37-BST
author jlarmour
date Mon, 23 Oct 2000 17:10:57 +0000
parents 6ed91473a1cd
children 52c99470ec11
comparison
equal deleted inserted replaced
129:605a0fc6f385 130:eb9fd8c04db3
62 62
63 static volatile cyg_int32 isr_disable_counter; // ISR disable counter 63 static volatile cyg_int32 isr_disable_counter; // ISR disable counter
64 64
65 volatile cyg_int32 dsr_disable_counter asm("cyg_scheduler_sched_lock"); // DSR disable counter 65 volatile cyg_int32 dsr_disable_counter asm("cyg_scheduler_sched_lock"); // DSR disable counter
66 66
67 static volatile cyg_interrupt *dsr_list; // List of pending DSRs 67 static cyg_interrupt* volatile dsr_list; // List of pending DSRs
68 68
69 #ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN 69 #ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
70 70
71 cyg_interrupt *chain_list[CYGNUM_HAL_ISR_COUNT]; 71 cyg_interrupt *chain_list[CYGNUM_HAL_ISR_COUNT];
72 72
83 83
84 CYG_REPORT_FUNCTION(); 84 CYG_REPORT_FUNCTION();
85 85
86 HAL_DISABLE_INTERRUPTS(old_intr); 86 HAL_DISABLE_INTERRUPTS(old_intr);
87 87
88 if( intr->dsr_count++ == 0 ) 88 if( intr->dsr_count++ == 0 )
89 { 89 {
90 intr->next_dsr = dsr_list; 90 intr->next_dsr = dsr_list;
91 dsr_list = intr; 91 dsr_list = intr;
92 } 92 }
93 93
100 { 100 {
101 CYG_REPORT_FUNCTION(); 101 CYG_REPORT_FUNCTION();
102 102
103 while( dsr_list != NULL ) 103 while( dsr_list != NULL )
104 { 104 {
105 volatile cyg_interrupt *intr; 105 cyg_interrupt *intr;
106 cyg_int32 count; 106 cyg_int32 count;
107 CYG_INTERRUPT_STATE old_intr; 107 CYG_INTERRUPT_STATE old_intr;
108 108
109 HAL_DISABLE_INTERRUPTS(old_intr); 109 HAL_DISABLE_INTERRUPTS(old_intr);
110 110