aboutsummaryrefslogtreecommitdiff
path: root/sys/compat/cloudabi
diff options
context:
space:
mode:
authorMateusz Guzik <mjg@FreeBSD.org>2016-02-04 04:22:18 +0000
committerMateusz Guzik <mjg@FreeBSD.org>2016-02-04 04:22:18 +0000
commit33fd9b9a2bc277248b3dc153e1352e2b021d4fb1 (patch)
tree85458aa64b140adb018b8056f3f355fb4345dade /sys/compat/cloudabi
parent6c95c7903c346fed0511e5d625530f838820547c (diff)
downloadsrc-33fd9b9a2bc277248b3dc153e1352e2b021d4fb1.tar.gz
src-33fd9b9a2bc277248b3dc153e1352e2b021d4fb1.zip
fork: pass arguments to fork1 in a dedicated structure
Suggested by: kib
Notes
Notes: svn path=/head/; revision=295232
Diffstat (limited to 'sys/compat/cloudabi')
-rw-r--r--sys/compat/cloudabi/cloudabi_proc.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/compat/cloudabi/cloudabi_proc.c b/sys/compat/cloudabi/cloudabi_proc.c
index d91733760ceb..7320af01e7fc 100644
--- a/sys/compat/cloudabi/cloudabi_proc.c
+++ b/sys/compat/cloudabi/cloudabi_proc.c
@@ -75,12 +75,18 @@ int
cloudabi_sys_proc_fork(struct thread *td,
struct cloudabi_sys_proc_fork_args *uap)
{
+ struct fork_req fr;
struct filecaps fcaps = {};
struct proc *p2;
int error, fd;
cap_rights_init(&fcaps.fc_rights, CAP_FSTAT, CAP_EVENT);
- error = fork1(td, RFFDG | RFPROC | RFPROCDESC, 0, &p2, &fd, 0, &fcaps);
+ bzero(&fr, sizeof(fr));
+ fr.fr_flags = RFFDG | RFPROC | RFPROCDESC;
+ fr.fr_procp = &p2;
+ fr.fr_pd_fd = &fd;
+ fr.fr_pd_fcaps = &fcaps;
+ error = fork1(td, &fr);
if (error != 0)
return (error);
/* Return the file descriptor to the parent process. */