Changeset 637df35 in rtems for c/src/exec/score/cpu/i960
- Timestamp:
- 07/12/95 19:47:25 (28 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- 6cc85032
- Parents:
- 68931b5
- Location:
- c/src/exec/score/cpu/i960
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/exec/score/cpu/i960/cpu.c
r68931b5 r637df35 48 48 } 49 49 50 /* _CPU__ISR_Install_vector 50 /*PAGE 51 * 52 * _CPU_ISR_install_raw_handler 53 */ 54 55 #define _Is_vector_caching_enabled( _prcb ) \ 56 ((_prcb)->control_tbl->icon & 0x2000) 57 58 void _CPU_ISR_install_raw_handler( 59 unsigned32 vector, 60 proc_ptr new_handler, 61 proc_ptr *old_handler 62 ) 63 { 64 i960ca_PRCB *prcb = _CPU_Table.Prcb; 65 proc_ptr *cached_intr_tbl = NULL; 66 67 /* The i80960CA does not support vectors 0-7. The first 9 entries 68 * in the Interrupt Table are used to manage pending interrupts. 69 * Thus vector 8, the first valid vector number, is actually in 70 * slot 9 in the table. 71 */ 72 73 *old_handler = prcb->intr_tbl[ vector + 1 ]; 74 75 prcb->intr_tbl[ vector + 1 ] = new_handler; 76 77 if ( _Is_vector_caching_enabled( prcb ) ) 78 if ( (vector & 0xf) == 0x2 ) /* cacheable? */ 79 cached_intr_tbl[ vector >> 4 ] = new_handler; 80 } 81 82 /*PAGE 83 * 84 * _CPU__ISR_install_vector 51 85 * 52 86 * Install the RTEMS vector wrapper in the CPU's interrupt table. … … 61 95 */ 62 96 63 #define _Is_vector_caching_enabled( _prcb ) \64 ((_prcb)->control_tbl->icon & 0x2000)65 66 97 void _CPU_ISR_install_vector( 67 98 unsigned32 vector, … … 70 101 ) 71 102 { 72 i960ca_PRCB *prcb = _CPU_Table.Prcb; 73 proc_ptr *cached_intr_tbl = NULL; 74 75 /* The i80960CA does not support vectors 0-7. The first 9 entries 76 * in the Interrupt Table are used to manage pending interrupts. 77 * Thus vector 8, the first valid vector number, is actually in 78 * slot 9 in the table. 79 */ 103 proc_ptr ignored; 80 104 81 105 *old_handler = _ISR_Vector_table[ vector ]; 82 106 107 _CPU_ISR_install_raw_handler( vector, _ISR_Handler, &ignored ); 108 83 109 _ISR_Vector_table[ vector ] = new_handler; 84 85 prcb->intr_tbl[ vector + 1 ] = _ISR_Handler;86 if ( _Is_vector_caching_enabled( prcb ) )87 if ( (vector & 0xf) == 0x2 ) /* cacheable? */88 cached_intr_tbl[ vector >> 4 ] = _ISR_Handler;89 110 } 90 111 -
c/src/exec/score/cpu/i960/cpu.h
r68931b5 r637df35 359 359 360 360 /* 361 * _CPU_ISR_install_raw_handler 362 * 363 * This routine installs a "raw" interrupt handler directly into the 364 * processor's vector table. 365 */ 366 367 void _CPU_ISR_install_raw_handler( 368 unsigned32 vector, 369 proc_ptr new_handler, 370 proc_ptr *old_handler 371 ); 372 373 /* 361 374 * _CPU_ISR_install_vector 362 375 *
Note: See TracChangeset
for help on using the changeset viewer.