-/*
- * Pid of zero implies current process.
- * Pgrp -1 is getpgrp system call returning
- * current process group.
- */
-osetpgrp()
-{
- register struct proc *p;
- register struct a {
- int pid;
- int pgrp;
- } *uap;
-
- uap = (struct a *)u.u_ap;
- if (uap->pid == 0)
- p = u.u_procp;
- else {
- p = pfind(uap->pid);
- if (p == 0) {
- u.u_error = ESRCH;
- return;
- }
- }
- if (uap->pgrp <= 0) {
- u.u_r.r_val1 = p->p_pgrp;
- return;
- }
- if (p->p_uid != u.u_uid && u.u_uid && !inferior(p)) {
- u.u_error = EPERM;
- return;
- }
- p->p_pgrp = uap->pgrp;
-}
-/* END DEFUNCT */
-