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