summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1995-07-21 20:10:49 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1995-07-21 20:10:49 +0000
commit1690c6b636dad196f1327021e00a721cebc1f264 (patch)
tree2df7eadaa8c2a30c839969ac1d5df34317816e47 /cpukit/score/cpu
parentupdating go32 to make timer more accurate (diff)
downloadrtems-1690c6b636dad196f1327021e00a721cebc1f264.tar.bz2
after testing go32 and cvme961
Diffstat (limited to 'cpukit/score/cpu')
-rw-r--r--cpukit/score/cpu/i386/cpu.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/cpukit/score/cpu/i386/cpu.c b/cpukit/score/cpu/i386/cpu.c
index cf30fd0b94..d1ceaba88a 100644
--- a/cpukit/score/cpu/i386/cpu.c
+++ b/cpukit/score/cpu/i386/cpu.c
@@ -86,7 +86,14 @@ void _CPU_ISR_install_raw_handler(
#if __GO32__
_go32_dpmi_seginfo handler_info;
- *old_handler = 0; /* XXX not supported */
+ /* 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]. */
+ *old_handler = (proc_ptr *) handler_info.pm_offset;
handler_info.pm_offset = (u_long) new_handler;
handler_info.pm_selector = _go32_my_cs();