Hi folks. I'm still cleaning up the system call stuff, and have mostly
extracted system call argument setting and return value installing from all
the system calls and the process objects themselves. The only place I
really have left is the clone system call which sets some registers in an
"#if THE_ISA ==" block, and which explicitly sets what the return looks
like in the new context.

The man page for clone() seems to refer to the libc wrapper which has more
complicated semantics, but I gather that the underlying system call is
supposed to return "success" (however it does that) to the child, and the
child's PID to the parent. I haven't been able to find anything which
actually says what that's supposed to look like for different ISAs. For
instance, is it written down someplace that in SPARC extra registers are
supposed to be set to 0 and 1?

If that documentation does exist someplace, I'd really like to take a look
at it so I can figure out a (clean) way to extract these last little bits
and fully push argument and return value handling in GuestABI mechanism I
added.

Any pointers would be appreciated. Since Brandon checked in the code with
that behavior, I'm assuming he found something somewhere that said to do
things that way?

Gabe
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to