X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: ahenric AT ccii DOT co DOT za (Arne) Newsgroups: comp.os.msdos.djgpp Subject: Hardware interrupt stack and task switching Date: 3 Oct 2003 02:38:02 -0700 Organization: http://groups.google.com Lines: 19 Message-ID: NNTP-Posting-Host: 196.30.62.5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: posting.google.com 1065173883 27384 127.0.0.1 (3 Oct 2003 09:38:03 GMT) X-Complaints-To: groups-abuse AT google DOT com NNTP-Posting-Date: Fri, 3 Oct 2003 09:38:03 +0000 (UTC) To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Hi, I am trying to get uC/OS-II (the real-time kernel) to work under DOS. I can do task level switching, but it seems like one cannot do task switching from a hardware interrupt routine. What I have noticed is that the stack pointer in the ISR is not the same as that from the interrupted task. Now what I have read is that DOS sometimes allocates stacks for HW ISRs, but that one can disable this with the STACKS=0,0 statement in config.sys. This unfortunately does not change anything for me. So my question: is the DPMI host allocating stacks for each HW ISR? If that is so, how can I do task switching from the ISR? Is it at all possible? I have hooked up my hardware interrupt with the function _go32_dpmi_set_protected_mode_interrupt_vector(). Is there a better way? Thanks Arne