Message-ID: <38D0FB4E.DC451D35@student.uni-ulm.deNOSPAM> Date: Thu, 16 Mar 2000 16:18:38 +0100 From: Karsten Schmidt X-Mailer: Mozilla 4.51 [en] (X11; I; SunOS 5.7 sun4u) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: comp.os.msdos.djgpp Subject: Re: Interrupt handler crashes after a minute References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit NNTP-Posting-Host: mic19.e-technik.uni-ulm.de X-Trace: 16 Mar 2000 16:18:49 +0100, mic19.e-technik.uni-ulm.de Lines: 31 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com 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.