FreeBSD rfork support changes from Russ Cox <rsc@plan9.bell-labs.com>:
* syscall.c (internal_syscall): Handle SYS_rfork with internal_fork.
* process.c (internal_fork) [SYS_rfork]: Bail if RFPROC flag not set.
struct tcb *tcpchild;
if (exiting(tcp)) {
struct tcb *tcpchild;
if (exiting(tcp)) {
+#ifdef SYS_rfork
+ if (tcp->scno == SYS_rfork && !(tcp->u_arg[0]&RFPROC))
+ return 0;
+#endif
if (getrval2(tcp))
return 0;
if (!followfork)
if (getrval2(tcp))
return 0;
if (!followfork)
#endif
#ifdef SYS_rforkall
case SYS_rforkall:
#endif
#ifdef SYS_rforkall
case SYS_rforkall:
+#endif
+#ifdef SYS_rfork
+ case SYS_rfork:
#endif
internal_fork(tcp);
break;
#endif
internal_fork(tcp);
break;