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