manual page first distributed with 4.2BSD
[unix-history] / usr / src / usr.bin / pascal / pdx / process / process.rep
CommitLineData
ca0bf12f 1
7a1812dd
ML
2/* Copyright (c) 1982 Regents of the University of California */
3
ca0bf12f 4/* static char sccsid[] = "@(#)process.rep 1.2 1/18/82"; */
7a1812dd
ML
5
6/*
7 * This file defines the representation of a process.
8 * It is MACHINE DEPENDENT.
9 */
10
11#define STOPPED 0177
12#define FINISHED 0
13
ca0bf12f 14#ifdef vax
7a1812dd 15#define NREG 12 /* maximum number of saved registers */
ca0bf12f
ML
16#else
17#define NREG 14 /* maximum number of saved registers */
18#endif
7a1812dd
ML
19#define CSIZE 101 /* size of instruction cache */
20
21/*
22 * Cache-ing of instruction segment is done to reduce the number
23 * of calls to ptrace.
24 */
25
26typedef struct {
27 WORD addr;
28 WORD val;
29} CACHEWORD;
30
31/*
32 * This structure holds the information we need from the user structure.
33 */
34
35struct process {
36 int pid; /* process being traced */
37 WORD reg[NREG]; /* process's registers */
38 WORD ap, fp, sp, pc; /* special registers */
39 WORD oreg[NREG]; /* registers when process last stopped */
40 WORD oap, ofp, osp, opc;/* special registers when process stopped */
41 int status; /* either STOPPED or FINISHED */
42 int signo; /* signal that stopped process */
43 int exitval; /* return value from exit() */
44 long sigset; /* bit array of traced signals */
45 CACHEWORD word[CSIZE]; /* text segment cache */
46};
47
48/*
49 * Process manipulation routines local to this module.
50 */
51
52pstart(); /* start up a process */
53pcont(); /* continue execution */
54pstep(); /* single step */
55pio(); /* process memory move */
56psigtrace(); /* catch/don't catch a signal */
57unsetsigtraces(); /* don't catch any signals */
58
59/*
60 * These definitions are for the arguments to "pio".
61 */
62
63typedef enum { PREAD, PWRITE } PIO_OP;
64typedef enum { TEXTSEG, DATASEG } PIO_SEG;