Mail Archives: djgpp/2004/04/12/08:00:30
Joel <jbs30000 AT aol DOT com> wrote:
> Now, I hook a real mode interrupt and my routine is called. Now say,
> at a certain point, I want the old handler called. I could try this:
> _go32_set_real_mode_interrupt_vector(Interrupt Number, &OldInt);
> Set the dpmi reg struct as needed
> _dpmi_int(Interrupt Number, &r);
Depends on where you do this from. Doing this from inside the
"NewInt" handler function itself is almost certainly a no-no.
Interrupts, or more particularly their handling routines, aren't
generally reentrant.
Generally speaking there's a limit as to what you can do in this area
using C code. You'll have to revert to assembly sooner or later, at
least for the "outer layers", i.e. the routines actually registered as
interrupt handlers. C code can be called from there if you're
careful.
--
Hans-Bernhard Broeker (broeker AT physik DOT rwth-aachen DOT de)
Even if all the snow were burnt, ashes would remain.
- Raw text -