Changeset 697 for soft/giet_vm/giet_kernel/irq_handler.c
- Timestamp:
- Aug 7, 2015, 5:42:06 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/giet_kernel/irq_handler.c
r648 r697 206 206 //////////////////////////////////////////// 207 207 void _ext_irq_release( unsigned int isr_type, 208 unsigned int isr_channel ,209 unsigned int wti_index ) 210 { 208 unsigned int isr_channel ) 209 { 210 unsigned int wti_id; // allocated WTI mailbox index in XCU 211 211 unsigned int irq_id; // external IRQ index in PIC (input) 212 212 … … 230 230 } 231 231 232 // find WTI index 233 static_scheduler_t* psched = (static_scheduler_t*)_get_sched(); 234 for ( wti_id = 0 ; wti_id < 32 ; wti_id++ ) 235 { 236 if ( psched->wti_vector[wti_id] == (isr_channel<<16 | isr_type) ) 237 break; 238 } 239 if ( wti_id == 32 ) 240 { 241 _printf("\n[GIET ERROR] in _ext_irq_release() : isr not found\n"); 242 return; 243 } 244 232 245 // desactivates dynamically allocated PIC entry 233 246 irq_id = _ext_irq_index[isr_type][isr_channel]; … … 235 248 236 249 // releases dynamically allocated WTI mailbox 237 if ( wti_i ndex== p + NB_PROCS_MAX ) _wti_alloc_one[x][y][p] = 0;238 else if ( wti_i ndex== p + 2*NB_PROCS_MAX ) _wti_alloc_two[x][y][p] = 0;239 else if ( wti_i ndex== p + 3*NB_PROCS_MAX ) _wti_alloc_ter[x][y][p] = 0;250 if ( wti_id == p + NB_PROCS_MAX ) _wti_alloc_one[x][y][p] = 0; 251 else if ( wti_id == p + 2*NB_PROCS_MAX ) _wti_alloc_two[x][y][p] = 0; 252 else if ( wti_id == p + 3*NB_PROCS_MAX ) _wti_alloc_ter[x][y][p] = 0; 240 253 else 241 254 {
Note: See TracChangeset
for help on using the changeset viewer.