Mail Archives: djgpp/2000/03/16/12:53:18
Eli Zaretskii wrote:
>
> On Wed, 15 Mar 2000, Karsten Schmidt wrote:
>
> > I'm currently porting a Borland 16bit library to DJGPP and therefore I
> > must chain the interrupt of a PCI device.
> > When I use the _go32_dpmi_chain_protected_mode_interrupt_vector() the
> > library seems to work fine for a while, but suddenly the program hangs
> > and the only thing I can do is to reboot the machine.
>
> I don't see any code which locks the code and the data touched by the
> interrupt handler. If you indeed don't do that, I suggest to try locking
> everything (use the appropriate bit in _crt0_startup_flags), and see if
> the problem goes away.
First of all the program is running on the CWSDPR0 server, so code
locking shouldn't be necessary. But anyway the _crt0_startup_flags are
declared in another library file (adr.cpp) which is included with the
adr.h header.
Nevertheless I've tested the code with the (_CRT0_FLAG_LOCK_MEMORY |
_CRT_FLAG_NONMOVE_SBRK) set in the mainfile before the main function and
it seems to have no effect.
Besides I hope that the interrupt handler will be removed automatically
at the end of my program or do I have to reinstall the old ISR on my own
?
And I hope that the "return 1" call calls the old ISR and the "return 0"
doesn't.
All the other parts of the sourcecode are unchanged and work together
with Borland without any problems.
- Raw text -