[M3devel] [M3commit] CVS Update: cm3

Jay jay.krell at cornell.edu
Sun Feb 1 23:59:27 CET 2009


> What is the purpose of this code?

 
OpenBSD does not have the *context functions.
This provides them for OpenBSD/x86.
 

I /assume/ their only user will be ThreadPosix.m3.
That there will be unix/common/ucontext.i3 that declares them.
  Even if that is a little bit "dishonest" on platforms that lack them.
  Eh, I guess that begs for the answer, they belong in 
   unix/common/x86?
 (forking for x86-thisos, x86-thatos, if/as needed)

 
 A reason not to put in unix/common/x86 however is if there are
  compromises that make them not meet the general spec, but adequate
  for ThreadPosix.m3. I don't have any in mind currently.
  Restricting makecontext to have argc=1 is tempting, but so far avoided.
 

Perhaps I will see about getting these into OpenBSD.
I also anticipate trying to implement them for other systems e.g. PPC_DARWIN.
(again, current 10.5 Darwin has them, older 10.4 does not).
Possibly in both cases I can just use the "real" versions, I should have thought
of that. You know, look the NetBSD/FreeBSD/Darwin 10.5 versions, copy them.
 

 - Jay




----------------------------------------
> From: hosking at cs.purdue.edu
> To: jay.krell at cornell.edu
> Date: Mon, 2 Feb 2009 09:32:56 +1100
> CC: jkrell at elego.de; m3devel at elegosoft.com
> Subject: Re: [M3devel] [M3commit] CVS Update: cm3
>
> What is the purpose of this code?
>
> On 2 Feb 2009, at 00:55, Jay wrote:
>
>>
>> How about thread/posix/x86?
>>
>> - Jay
>>
>>
>> ----------------------------------------
>>> From: hosking at cs.purdue.edu
>>> To: jkrell at elego.de
>>> Date: Fri, 30 Jan 2009 14:43:24 +1100
>>> CC: m3devel at elegosoft.com
>>> Subject: Re: [M3devel] [M3commit] CVS Update: cm3
>>>
>>> Probably the wrong place for this. If it is x86-dependent it should
>>> go somewhere in the x86 hierarchy, not in a top-level directory like
>>> "context".
>>>
>>> On 30 Jan 2009, at 04:25, Jay Krell wrote:
>>>
>>>> CVSROOT: /usr/cvs
>>>> Changes by: jkrell at birch. 09/01/30 04:25:37
>>>>
>>>> Added files:
>>>> cm3/m3-libs/m3core/src/context/: context.c context.h tcontext.c
>>>>
>>>> Log message:
>>>> highly non-portable working version of set/get/make/swapcontext for
>>>> NT386;
>>>> should assist in providing e.g. Cygwin, OpenBSD/x86, and perhaps
>>>> non-x86,
>>>> though again, it is highly system specific, and inline assembly
>>>> syntax
>>>> is very different between Visual C++ and gcc
>


More information about the M3devel mailing list