ARGSUSED */
| 145 | |
| 146 | /* ARGSUSED */ |
| 147 | int |
| 148 | sys_vfork(struct thread *td, struct vfork_args *uap) |
| 149 | { |
| 150 | struct fork_req fr; |
| 151 | int error, pid; |
| 152 | |
| 153 | bzero(&fr, sizeof(fr)); |
| 154 | fr.fr_flags = RFFDG | RFPROC | RFPPWAIT | RFMEM; |
| 155 | fr.fr_pidp = &pid; |
| 156 | error = fork1(td, &fr); |
| 157 | if (error == 0) { |
| 158 | td->td_retval[0] = pid; |
| 159 | td->td_retval[1] = 0; |
| 160 | } |
| 161 | return (error); |
| 162 | } |
| 163 | |
| 164 | int |
| 165 | sys_rfork(struct thread *td, struct rfork_args *uap) |