Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!decwrl!lll-winken!quintro!bpdsun1!dwg From: dwg@bpdsun1.uucp (David W. Glessner) Newsgroups: comp.os.msdos.programmer Subject: Re: TC++ coroutines with setjmp/longjmp. (MSC) Message-ID: <1990Sep11.211609.23889@bpdsun1.uucp> Date: 11 Sep 90 21:16:09 GMT References: <1727@dinl.mmc.UUCP> <1990Sep10.234937.12444@ecn.purdue.edu> Reply-To: dwg@bpdsun1.UUCP (David W. Glessner) Organization: Harris Broadcast Div., Quincy, IL Lines: 17 In article <1990Sep10.234937.12444@ecn.purdue.edu> milton@zebra.ecn.purdue.edu (Milton D Miller) writes: > [ stuff about setjmp/longjmp for multi-tasking kernel ] >(BTW, supposedly the MSC 6.? manual says the Setjmp/Longjmp don't >save enough state to be used for this purpose) MSC 5.1 setjmp() does _not_ save enough state. Specificially SS, ES, and flags. Multiple "processes" with their own stack (e.g. possibly from malloc()) will also confuse the run-time stack checking routine __chkstk. I'm not sure about MSC 6.0. I've ported parts of KA9Q's NOS to MSC and have modified setjmp(), longjmp(), and __chkstk to work properly. E-mail for the gory details. -- David WU9A quintro!bpdsun1!dwg@lll-winken.llnl.gov uunet!tiamat!quintro!bpdsun1!dwg