• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/src/router/busybox-1.x/shell/

Lines Matching defs:jp

3261 set_curjob(struct job *jp, unsigned mode)
3270 if (jp1 == jp)
3302 jp->prev_job = *jpp;
3303 *jpp = jp;
3310 jobno(const struct job *jp)
3312 return jp - jobtab + 1;
3322 struct job *jp;
3330 jp = curjob;
3349 if (jp)
3350 jp = jp->prev_job;
3353 if (!jp)
3362 jp = jobtab + num - 1;
3363 if (jp->used)
3377 if (!jp)
3379 if (match(jp->ps[0].cmd, p)) {
3382 found = jp;
3385 jp = jp->prev_job;
3391 if (getctl && jp->jobctl == 0)
3394 return jp;
3403 freejob(struct job *jp)
3409 for (i = jp->nprocs, ps = jp->ps; --i >= 0; ps++) {
3413 if (jp->ps != &jp->ps0)
3414 free(jp->ps);
3415 jp->used = 0;
3416 set_curjob(jp, CUR_DELETE);
3504 struct job *jp = getjob(argv[i], 0);
3505 unsigned pid = jp->ps[0].pid;
3519 showpipe(struct job *jp, FILE *out)
3524 spend = jp->ps + jp->nprocs;
3525 for (sp = jp->ps + 1; sp < spend; sp++)
3533 restartjob(struct job *jp, int mode)
3541 if (jp->state == JOBDONE)
3543 jp->state = JOBRUNNING;
3544 pgid = jp->ps->pid;
3548 ps = jp->ps;
3549 i = jp->nprocs;
3557 status = (mode == FORK_FG) ? waitforjob(jp) : 0;
3565 struct job *jp;
3575 jp = getjob(*argv, 1);
3577 set_curjob(jp, CUR_RUNNING);
3578 fprintf(out, "[%d] ", jobno(jp));
3580 outstr(jp->ps->cmd, out);
3581 showpipe(jp, out);
3582 retval = restartjob(jp, mode);
3676 struct job *jp;
3687 for (jp = curjob; jp; jp = jp->prev_job) {
3690 if (jp->state == JOBDONE)
3693 spend = jp->ps + jp->nprocs;
3694 sp = jp->ps;
3699 jobno(jp), pid, sp->status, status));
3701 thisjob = jp;
3709 jp->stopstatus = sp->status;
3759 showjob(FILE *out, struct job *jp, int mode)
3767 ps = jp->ps;
3775 col = fmtstr(s, 16, "[%d] ", jobno(jp));
3778 if (jp == curjob)
3780 else if (curjob && jp == curjob->prev_job)
3786 psend = ps + jp->nprocs;
3788 if (jp->state == JOBRUNNING) {
3793 if (jp->state == JOBSTOPPED)
3794 status = jp->stopstatus;
3808 showpipe(jp, out);
3817 jp->changed = 0;
3819 if (jp->state == JOBDONE) {
3820 TRACE(("showjob: freeing job %d\n", jobno(jp)));
3821 freejob(jp);
3832 struct job *jp;
3840 for (jp = curjob; jp; jp = jp->prev_job) {
3841 if (!(mode & SHOW_CHANGED) || jp->changed) {
3842 showjob(out, jp, mode);
3904 struct job *jp;
3915 jp = curjob;
3917 if (!jp) {
3921 if (jp->state == JOBRUNNING)
3923 jp->waited = 1;
3924 jp = jp->prev_job;
3964 struct job *jp, *jq;
3966 len = njobs * sizeof(*jp);
3968 jp = ckrealloc(jq, len + 4 * sizeof(*jp));
3970 offset = (char *)jp - (char *)jq;
3977 l -= sizeof(*jp);
3981 if (joff(jp)->ps == &jq->ps0)
3982 jmove(joff(jp)->ps);
3983 if (joff(jp)->prev_job)
3984 jmove(joff(jp)->prev_job);
3993 jobtab = jp;
3994 jp = (struct job *)((char *)jp + len);
3995 jq = jp + 3;
3998 } while (--jq >= jp);
3999 return jp;
4010 struct job *jp;
4012 for (i = njobs, jp = jobtab; ; jp++) {
4014 jp = growjobtab();
4017 if (jp->used == 0)
4019 if (jp->state != JOBDONE || !jp->waited)
4025 freejob(jp);
4028 memset(jp, 0, sizeof(*jp));
4030 /* jp->jobctl is a bitfield.
4031 * "jp->jobctl |= jobctl" likely to give awful code */
4033 jp->jobctl = 1;
4035 jp->prev_job = curjob;
4036 curjob = jp;
4037 jp->used = 1;
4038 jp->ps = &jp->ps0;
4040 jp->ps = ckmalloc(nprocs * sizeof(struct procstat));
4043 jobno(jp)));
4044 return jp;
4332 * N is the command that will be evaluated by the child. Both jp and n may
4369 forkchild(struct job *jp, union node *n, int mode)
4382 if (mode != FORK_NOJOB && jp->jobctl && !oldlvl) {
4385 if (jp->nprocs == 0)
4388 pgrp = jp->ps[0].pid;
4400 if (jp->nprocs == 0) {
4414 if (jp)
4415 freejob(jp);
4417 for (jp = curjob; jp; jp = jp->prev_job)
4418 freejob(jp);
4425 forkparent(struct job *jp, union node *n, int mode, pid_t pid)
4428 if (!jp) {
4434 if (mode != FORK_NOJOB && jp->jobctl) {
4437 if (jp->nprocs == 0)
4440 pgrp = jp->ps[0].pid;
4447 set_curjob(jp, CUR_RUNNING);
4449 if (jp) {
4450 struct procstat *ps = &jp->ps[jp->nprocs++];
4462 forkshell(struct job *jp, union node *n, int mode)
4466 TRACE(("forkshell(%%%d, %p, %d) called\n", jobno(jp), n, mode));
4470 if (jp)
4471 freejob(jp);
4475 forkchild(jp, n, mode);
4477 forkparent(jp, n, mode, pid);
4502 waitforjob(struct job *jp)
4506 TRACE(("waitforjob(%%%d) called\n", jobno(jp)));
4507 while (jp->state == JOBRUNNING) {
4508 dowait(DOWAIT_BLOCK, jp);
4510 st = getstatus(jp);
4512 if (jp->jobctl) {
4522 if (jp->sigint)
4525 if (jp->state == JOBDONE)
4527 freejob(jp);
4537 struct job *jp;
4543 jp = curjob;
4544 if (jp && jp->state == JOBSTOPPED) {
5223 struct job *jp; /* job structure for command */
5239 result->jp = NULL;
5249 struct job *jp;
5253 jp = makejob(n, 1);
5254 if (forkshell(jp, n, FORK_NOJOB) == 0) {
5268 result->jp = jp;
5272 TRACE(("evalbackcmd done: fd=%d buf=0x%x nleft=%d jp=0x%x\n",
5273 result->fd, result->buf, result->nleft, result->jp));
5319 back_exitstatus = waitforjob(in.jp);
7597 struct job *jp;
7605 jp = makejob(n, 1);
7606 if (forkshell(jp, n, backgnd) == 0) {
7618 status = waitforjob(jp);
7668 struct job *jp;
7680 jp = makejob(n, pipelen);
7691 if (forkshell(jp, lp->n, n->npipe.backgnd) == 0) {
7713 exitstatus = waitforjob(jp);
8153 struct job *jp;
8303 jp = makejob(cmd, 1);
8304 if (forkshell(jp, cmd, FORK_FG) != 0) {
8305 exitstatus = waitforjob(jp);