|
|
1.1 ! root 1: ! 2: /* Copyright (c) 1982 Regents of the University of California */ ! 3: ! 4: /* static char sccsid[] = "@(#)process.rep 1.2 1/18/82"; */ ! 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: ! 14: #ifdef vax ! 15: #define NREG 12 /* maximum number of saved registers */ ! 16: #else ! 17: #define NREG 14 /* maximum number of saved registers */ ! 18: #endif ! 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: ! 26: typedef 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: ! 35: struct 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: ! 52: pstart(); /* start up a process */ ! 53: pcont(); /* continue execution */ ! 54: pstep(); /* single step */ ! 55: pio(); /* process memory move */ ! 56: psigtrace(); /* catch/don't catch a signal */ ! 57: unsetsigtraces(); /* don't catch any signals */ ! 58: ! 59: /* ! 60: * These definitions are for the arguments to "pio". ! 61: */ ! 62: ! 63: typedef enum { PREAD, PWRITE } PIO_OP; ! 64: typedef enum { TEXTSEG, DATASEG } PIO_SEG;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.