diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1995-07-20 19:20:31 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1995-07-20 19:20:31 +0000 |
commit | 9e738b65b00b793d21a2c7d8322f3d82010207ec (patch) | |
tree | 9beba8384b021e9f5a56813a51c8e02ff54beba2 /c/src/lib/libbsp/i386/go32/startup/setvec.c | |
parent | removed junk field in context_control (diff) | |
download | rtems-9e738b65b00b793d21a2c7d8322f3d82010207ec.tar.bz2 |
updating go32 to make timer more accurate
Diffstat (limited to 'c/src/lib/libbsp/i386/go32/startup/setvec.c')
-rw-r--r-- | c/src/lib/libbsp/i386/go32/startup/setvec.c | 25 |
1 files changed, 2 insertions, 23 deletions
diff --git a/c/src/lib/libbsp/i386/go32/startup/setvec.c b/c/src/lib/libbsp/i386/go32/startup/setvec.c index fad188d418..d9be6b4cf7 100644 --- a/c/src/lib/libbsp/i386/go32/startup/setvec.c +++ b/c/src/lib/libbsp/i386/go32/startup/setvec.c @@ -37,30 +37,9 @@ i386_isr_entry set_vector( /* returns old vector */ i386_isr_entry previous_isr; if ( type ) { - rtems_interrupt_catch( handler, vector, - (rtems_isr_entry *) &previous_isr ); + rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr); } else { - /* Interrupt goes straight to the supplied ISR. This code is */ - /* slightly different than that in _CPU_ISR_install_vector */ - /* (which is eventually called by the above) in that this code */ - /* returns the raw entry point as the old handler, while the */ - /* other version returns the old entry point pointed at by the */ - /* rtems ISR table. */ - _go32_dpmi_seginfo handler_info; - - /* get the address of the old handler */ - _go32_dpmi_get_protected_mode_interrupt_vector( vector, &handler_info); - - /* Notice how we're failing to save the pm_segment portion of the */ - /* structure here? That means we might crash the system if we */ - /* try to restore the ISR. Can't fix this until i386_isr is */ - /* redefined. XXX [BHC]. */ - previous_isr = (i386_isr_entry) handler_info.pm_offset; - - /* install the IDT entry */ - handler_info.pm_offset = (u_long)handler; - handler_info.pm_selector = _go32_my_cs(); - _go32_dpmi_set_protected_mode_interrupt_vector( vector, &handler_info); + _CPU_ISR_install_raw_handler( vector, handler, (proc_ptr *)&previous_isr); } return previous_isr; } |