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
49,
142,
167,
253,
270,
302,
381,
396-397(2),
692,
911,
934,
940,
976
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
32-33(4),
138(2),
160(2),
186-188(4),
247(2),
268(2),
281-283(4),
314(2),
341-344(6),
360(2),
378(2),
506(2),
527-530(4),
655(2),
661(2),
680(2),
707(2),
724(2),
738(2),
754(2),
815(2),
877-880(4),
908(2),
916-920(4),
969-974(8),
993(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
49,
142,
167,
270,
318,
391-393(2),
486,
497,
923-928(2),
939,
974,
981,
1045
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
56,
83,
95,
147,
195(2),
209,
255,
346(2),
628,
646,
695,
838,
887-888(2)
PSTOPPED
defined in line
39; used 22 times
- in line 44
- in /usr/src/bin/csh/sh.proc.c line
56-58(2),
83,
98-103(2),
110,
125,
147,
216-224(4),
508,
628,
646,
695,
887-889(2),
901,
912,
979
PTIME
defined in line
46; used 6 times
Usage of this include