1: /*
2: * Copyright (c) 1980 Regents of the University of California.
3: * All rights reserved. The Berkeley Software License Agreement
4: * specifies the terms and conditions for redistribution.
5: *
6: * @(#)sh.proc.h 5.2 (Berkeley) 6/6/85
7: */
8:
9: /*
10: * C shell - process structure declarations
11: */
12:
13: /*
14: * Structure for each process the shell knows about:
15: * allocated and filled by pcreate.
16: * flushed by pflush; freeing always happens at top level
17: * so the interrupt level has less to worry about.
18: * processes are related to "friends" when in a pipeline;
19: * p_friends links makes a circular list of such jobs
20: */
21: struct process {
22: struct process *p_next; /* next in global "proclist" */
23: struct process *p_friends; /* next in job list (or self) */
24: struct directory *p_cwd; /* cwd of the job (only in head) */
25: short unsigned p_flags; /* various job status flags */
26: char p_reason; /* reason for entering this state */
27: char p_index; /* shorthand job index */
28: int p_pid;
29: int p_jobid; /* pid of job leader */
30: /* if a job is stopped/background p_jobid gives its pgrp */
31: struct timeval p_btime; /* begin time */
32: struct timeval p_etime; /* end time */
33: struct rusage p_rusage;
34: char *p_command; /* first PMAXLEN chars of command */
35: };
36:
37: /* flag values for p_flags */
38: #define PRUNNING (1<<0) /* running */
39: #define PSTOPPED (1<<1) /* stopped */
40: #define PNEXITED (1<<2) /* normally exited */
41: #define PAEXITED (1<<3) /* abnormally exited */
42: #define PSIGNALED (1<<4) /* terminated by a signal != SIGINT */
43:
44: #define PALLSTATES (PRUNNING|PSTOPPED|PNEXITED|PAEXITED|PSIGNALED|PINTERRUPTED)
45: #define PNOTIFY (1<<5) /* notify async when done */
46: #define PTIME (1<<6) /* job times should be printed */
47: #define PAWAITED (1<<7) /* top level is waiting for it */
48: #define PFOREGND (1<<8) /* started in shells pgrp */
49: #define PDUMPED (1<<9) /* process dumped core */
50: #define PDIAG (1<<10) /* diagnostic output also piped out */
51: #define PPOU (1<<11) /* piped output */
52: #define PREPORTED (1<<12) /* status has been reported */
53: #define PINTERRUPTED (1<<13) /* job stopped via interrupt signal */
54: #define PPTIME (1<<14) /* time individual process */
55: #define PNEEDNOTE (1<<15) /* notify as soon as practical */
56:
57: #define PNULL (struct process *)0
58: #define PMAXLEN 80
59:
60: /* defines for arguments to pprint */
61: #define NUMBER 01
62: #define NAME 02
63: #define REASON 04
64: #define AMPERSAND 010
65: #define FANCY 020
66: #define SHELLDIR 040 /* print shell's dir if not the same */
67: #define JOBDIR 0100 /* print job's dir if not the same */
68: #define AREASON 0200
69:
70: struct process proclist; /* list head of all processes */
71: bool pnoprocesses; /* pchild found nothing to wait for */
72:
73: struct process *pholdjob; /* one level stack of current jobs */
74:
75: struct process *pcurrjob; /* current job */
76: struct process *pcurrent; /* current job in table */
77: struct process *pprevious; /* previous job in table */
78:
79: short pmaxindex; /* current maximum job index */
80:
81: int psigint();
82: struct process *pgetcurr();
83: struct process *plookup();
84: struct process *pfind();
Defined variables
proclist
defined in line
70; used 14 times
- in /usr/src/bin/csh/sh.proc.c line
50,
144,
169,
256,
273,
305,
384,
399-400(2),
695,
915,
938,
944,
980
Defined struct's
process
defined in line
21; used 94 times
- in line 22-23(4),
70-84(16)
- in /usr/src/bin/csh/sh.proc.c line
33-34(4),
139(2),
162(2),
188-190(4),
250(2),
271(2),
284-286(4),
317(2),
344-347(6),
363(2),
381(2),
509(2),
530-533(4),
658(2),
664(2),
683(2),
710(2),
727(2),
741(2),
757(2),
818(2),
880-883(4),
912(2),
920-924(4),
973-978(8),
997(2)
Defined macros
FANCY
defined in line
65; used 3 times
NAME
defined in line
62; used 7 times
PDIAG
defined in line
50; used 2 times
PNULL
defined in line
57; used 15 times
- in /usr/src/bin/csh/sh.proc.c line
50,
144,
169,
273,
321,
394-396(2),
489,
500,
927-932(2),
943,
978,
985,
1050
PPOU
defined in line
51; used 2 times
PRUNNING
defined in line
38; used 17 times
- in line 44
- in /usr/src/bin/csh/sh.proc.c line
57,
84,
96,
149,
198(2),
212,
258,
349(2),
631,
649,
698,
841,
891-892(2)
PSTOPPED
defined in line
39; used 22 times
- in line 44
- in /usr/src/bin/csh/sh.proc.c line
57-59(2),
84,
99-104(2),
111,
126,
149,
219-227(4),
511,
631,
649,
698,
891-893(2),
905,
916,
983
PTIME
defined in line
46; used 6 times
Usage of this include