MCPcopy Create free account
hub / github.com/F-Stack/f-stack / sys_rfork

Function sys_rfork

freebsd/kern/kern_fork.c:164–192  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

162}
163
164int
165sys_rfork(struct thread *td, struct rfork_args *uap)
166{
167 struct fork_req fr;
168 int error, pid;
169
170 /* Don't allow kernel-only flags. */
171 if ((uap->flags & RFKERNELONLY) != 0)
172 return (EINVAL);
173 /* RFSPAWN must not appear with others */
174 if ((uap->flags & RFSPAWN) != 0 && uap->flags != RFSPAWN)
175 return (EINVAL);
176
177 AUDIT_ARG_FFLAGS(uap->flags);
178 bzero(&fr, sizeof(fr));
179 if ((uap->flags & RFSPAWN) != 0) {
180 fr.fr_flags = RFFDG | RFPROC | RFPPWAIT | RFMEM;
181 fr.fr_flags2 = FR2_DROPSIG_CAUGHT;
182 } else {
183 fr.fr_flags = uap->flags;
184 }
185 fr.fr_pidp = &pid;
186 error = fork1(td, &fr);
187 if (error == 0) {
188 td->td_retval[0] = pid;
189 td->td_retval[1] = 0;
190 }
191 return (error);
192}
193
194int __exclusive_cache_line nprocs = 1; /* process 0 */
195int lastpid = 0;

Callers

nothing calls this directly

Calls 2

bzeroFunction · 0.85
fork1Function · 0.85

Tested by

no test coverage detected