# 2.11BSD#431 - /usr/src/ucb/PORT/pascal/pdx/process/rdwr.c

##### Functions

    dread             X
    dwrite            X
    iread             X
    iwrite            X
    rwerr             X

       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:
       7: #ifndef lint
       8: static char sccsid[] = "@(#)rdwr.c	5.1 (Berkeley) 6/6/85";
       9: #endif not lint
      10: /*
      11:  * These routines are used to access the debuggee process from
      12:  * outside the "process" module.
      13:  *
      14:  * They invoke "pio" which eventually leads to a call to "ptrace".
      15:  * The system generates an I/O error when a ptrace fails, we catch
      16:  * that here and assume its due to a misguided address.
      17:  */
      18:
      19: #include "defs.h"
      20: #include <errno.h>
      21: #include "process.h"
      22: #include "process.rep"
      23:
      24: #	if (isvaxpx)
      25: #		include "pxinfo.h"
      26: #	endif
      27:
      28: typedef int INTFUNC();
      29:
      30: extern INTFUNC *onsyserr();
      31:
      32: LOCAL badaddr;
      33: LOCAL rwerr();
      34:
      35: /*
      36:  * Read from the process' instruction area.  For px, this is actually
      37:  * the data area.
      38:  */
      39:
      40: iread(buff, addr, nbytes)
      41: char *buff;
      42: ADDRESS addr;
      43: int nbytes;
      44: {
      45:     INTFUNC *f;
      46:
      47:     f = onsyserr(EIO, &rwerr);
      48: #	if (isvaxpx)
      49:         badaddr = addr + ENDOFF;
      50:         pio(process, PREAD, DATASEG, buff, addr + ENDOFF, nbytes);
      51: #	else
      52:         badaddr = addr;
      53:         pio(process, PREAD, TEXTSEG, buff, addr, nbytes);
      54: #	endif
      55:     onsyserr(EIO, f);
      56: }
      57:
      58: /*
      59:  * Write to the process' instruction area, usually in order to set
      60:  * or unset a breakpoint.
      61:  */
      62:
      63: iwrite(buff, addr, nbytes)
      64: char *buff;
      65: ADDRESS addr;
      66: int nbytes;
      67: {
      68:     INTFUNC *f;
      69:
      70:     f = onsyserr(EIO, &rwerr);
      71: #	if (isvaxpx)
      72:         badaddr = addr + ENDOFF;
      73:         pio(process, PWRITE, DATASEG, buff, addr + ENDOFF, nbytes);
      74: #	else
      75:         badaddr = addr;
      76:         pio(process, PWRITE, TEXTSEG, buff, addr, nbytes);
      77: #	endif
      78:     onsyserr(EIO, f);
      79: }
      80:
      81: /*
      82:  * Read for the process' data area.
      83:  */
      84:
      85: dread(buff, addr, nbytes)
      86: char *buff;
      87: ADDRESS addr;
      88: int nbytes;
      89: {
      90:     INTFUNC *f;
      91:
      92:     f = onsyserr(EIO, &rwerr);
      93:     badaddr = addr;
      94:     pio(process, PREAD, DATASEG, buff, addr, nbytes);
      95:     onsyserr(EIO, f);
      96: }
      97:
      98: /*
      99:  * Write to the process' data area.
     100:  */
     101:
     102: dwrite(buff, addr, nbytes)
     103: char *buff;
     104: ADDRESS addr;
     105: int nbytes;
     106: {
     107:     INTFUNC *f;
     108:
     109:     f = onsyserr(EIO, &rwerr);
     110:     badaddr = addr;
     111:     pio(process, PWRITE, DATASEG, buff, addr, nbytes);
     112:     onsyserr(EIO, f);
     113: }
     114:
     115: /*
     116:  * Error handler.
     117:  */
     118:
     119: LOCAL rwerr()
     120: {
     121:     error("bad read/write process address 0x%x", badaddr);
     122: }

#### Defined functions

dread defined in line 85; used 9 times

- in /usr/src/ucb/PORT/pascal/pdx/process/resume.c line 49-51(2), 57, 128-135(3), 141
- in /usr/src/ucb/PORT/pascal/pdx/process/start.c line 63-64(2)

dwrite defined in line 102; never used
iread defined in line 40; used 1 times

- in /usr/src/ucb/PORT/pascal/pdx/process/step.c line 128

iwrite defined in line 63; never used
rwerr defined in line 119; used 5 times

- in line 33, 47, 70, 92, 109

#### Defined variables

sccsid defined in line 8; never used

Last modified: 1985-06-06 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 1089 |