Mail Archives: djgpp/1996/06/18/14:49:38
> I got the message: << program received signal SIGFPE,
> arithmetic exception 0x3c33e in _strhold() >>
We would need to know more about your environment. The exact error
message which came out needs to shown. If the above message is what
is displayed then some local signal handler is catching it, and it needs
to be modified to provide more information or removed so that the
default handler can tell what you need to know. SIGFPE can be from
comprocessor errors, division by zero, or integer overflow.
> problem #2: one of my interruption handler has to handle IT from six
> separate sources, and needs reentrance capabilities. (most of the
> handler code is under_enable() ).
> It seems that, using go32_dpmi_set_protected_mode_interrupt_vector,
> reetrance is not allowed... Is there a solution?
Yes, re-write the interrupt wrapper code, or don't use it. You could
write your interrupt routines in assembler and stay on the locked 4K
stack, or you need to write code to handle multiple interrupt stacks.
Non-trivial in either case. Certainly not a two minute sort of question.
You might be able to use the fact that if you swap stacks in an interrupt
handler the new stack is the locked stack and not swap away from it if
SS = DS_alias.
- Raw text -