Annotation of 43BSD/ucb/pascal/pdx/process/process.rep, revision 1.1

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;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.