Date: Thu, 15 Apr 1999 19:54:33 -0400 (EDT) From: Robert Watson <robert@cyrus.watson.org> To: hackers@freebsd.org Subject: child return in fork--question Message-ID: <Pine.BSF.3.96.990415195038.11607F-100000@fledge.watson.org>
next in thread | raw e-mail | index | archive | help
I'm playing around with process scheduling and doing funky things with syscalls. I notice that on i386, fork_return() hard codes the return values from the fork syscall: frame.tf_eax = 0; /* Child returns zero */ frame.tf_eflags &= ~PSL_C; /* success */ frame.tf_edx = 1; userret(p, &frame, 0); Most other places, we copy the p_retval[] fields out of the appropriate process structure, rather than hard coding. Is there a reason why the same thing doesn't happen here, and p_retval[] be set in the child proc structure in fork1()? If not, if I submit patches, would they be put in? (presumably the same code alpha-side would have to be done also). I'd like to be able to make a machine independent change to the fork return values in the fork code without munging into i386/alpha/etc code in the future if I need to change it. Robert N Watson robert@fledge.watson.org http://www.watson.org/~robert/ PGP key fingerprint: 03 01 DD 8E 15 67 48 73 25 6D 10 FC EC 68 C1 1C Carnegie Mellon University http://www.cmu.edu/ TIS Labs at Network Associates, Inc. http://www.tis.com/ Safeport Network Services http://www.safeport.com/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.990415195038.11607F-100000>