X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/15637ed4f028f1b013a54c226bcb3c75228ad20d..3c83a5bcf148390bb116f44ccadccc6968bb181b:/sys/kern/kern_proc.c diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c index 8b0403c945..4b408ee201 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -30,7 +30,8 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * @(#)kern_proc.c 7.16 (Berkeley) 6/28/91 + * from: @(#)kern_proc.c 7.16 (Berkeley) 6/28/91 + * $Id: kern_proc.c,v 1.3 1993/11/25 01:33:03 wollman Exp $ */ #include "param.h" @@ -48,9 +49,17 @@ #include "ioctl.h" #include "tty.h" +struct prochd qs[NQS]; /* as good a place as any... */ +struct proc *zombproc; +struct proc *allproc; + +static void pgdelete(struct pgrp *); +static void orphanpg(struct pgrp *); + /* * Is p an inferior of the current process? */ +int inferior(p) register struct proc *p; { @@ -65,8 +74,7 @@ inferior(p) * Locate a process by number */ struct proc * -pfind(pid) - register pid; +pfind(int pid) { register struct proc *p = pidhash[PIDHASH(pid)]; @@ -80,8 +88,7 @@ pfind(pid) * Locate a process group by number */ struct pgrp * -pgfind(pgid) - register pid_t pgid; +pgfind(pid_t pgid) { register struct pgrp *pgrp = pgrphash[PIDHASH(pgid)]; @@ -94,9 +101,11 @@ pgfind(pgid) /* * Move p to a new or existing process group (and session) */ +void enterpgrp(p, pgid, mksess) register struct proc *p; pid_t pgid; + int mksess; { register struct pgrp *pgrp = pgfind(pgid); register struct proc **pp; @@ -185,6 +194,7 @@ done: /* * remove process from process group */ +void leavepgrp(p) register struct proc *p; { @@ -205,6 +215,7 @@ done: /* * delete a process group */ +static void pgdelete(pgrp) register struct pgrp *pgrp; { @@ -225,8 +236,6 @@ done: FREE(pgrp, M_PGRP); } -static orphanpg(); - /* * Adjust pgrp jobc counters when specified process changes process group. * We count the number of processes in each process group that "qualify" @@ -237,6 +246,7 @@ static orphanpg(); * entering == 0 => p is leaving specified group. * entering == 1 => p is entering specified group. */ +void fixjobc(p, pgrp, entering) register struct proc *p; register struct pgrp *pgrp; @@ -276,7 +286,7 @@ fixjobc(p, pgrp, entering) * if there are any stopped processes in the group, * hang-up all process in that group. */ -static +static void orphanpg(pg) struct pgrp *pg; {