# 2.11BSD#431 - /usr/src/new/rn/backpage.c

##### Functions

    backpage_init     X
    vrdary            X
    vwtary            X

##### Variables

    maxindx           X

       1: /* $Header: backpage.c,v 4.3 85/05/01 11:36:03 lwall Exp $
       2:  *
       3:  * $Log:	backpage.c,v $
       4:  * Revision 4.3  85/05/01  11:36:03  lwall
       5:  * Baseline for release with 4.3bsd.
       6:  *
       7:  */
       8:
       9: #include "EXTERN.h"
      10: #include "common.h"
      11: #include "intrp.h"
      12: #include "final.h"
      13: #include "INTERN.h"
      14: #include "backpage.h"
      15:
      16: ART_LINE maxindx = -1;
      17: long lseek();
      18:
      19: void
      20: backpage_init()
      21: {
      22:     char *varyname;
      23:
      24:     varyname = filexp(VARYNAME);
      25:     close(creat(varyname,0600));
      26:     varyfd = open(varyname,2);
      27:     UNLINK(varyname);
      28:     if (varyfd < 0) {
      29:     printf(cantopen,varyname) FLUSH;
      30:     sig_catcher(0);
      31:     }
      32:
      33: }
      34:
      35: /* virtual array read */
      36:
      37: ART_POS
      38: vrdary(indx)
      39: ART_LINE indx;
      40: {
      41:     int subindx;
      42:     long offset;
      43:
      44: #ifdef DEBUGGING
      45:     if (indx > maxindx) {
      46:     printf("vrdary(%ld) > %ld\n",(long)indx, (long)maxindx) FLUSH;
      47:     return 0;
      48:     }
      49: #endif
      50:     if (indx < 0)
      51:     return 0;
      52:     subindx = indx % VARYSIZE;
      53:     offset = (indx - subindx) * sizeof(varybuf[0]);
      54:     if (offset != oldoffset) {
      55:     if (oldoffset >= 0) {
      56: #ifndef lint
      57:         (void)lseek(varyfd,oldoffset,0);
      58:         write(varyfd, (char *)varybuf,sizeof(varybuf));
      59: #endif lint
      60:     }
      61: #ifndef lint
      62:     (void)lseek(varyfd,offset,0);
      63:     read(varyfd,(char *)varybuf,sizeof(varybuf));
      64: #endif lint
      65:     oldoffset = offset;
      66:     }
      67:     return varybuf[subindx];
      68: }
      69:
      70: /* write to virtual array */
      71:
      72: void
      73: vwtary(indx,newvalue)
      74: ART_LINE indx;
      75: ART_POS newvalue;
      76: {
      77:     int subindx;
      78:     long offset;
      79:
      80: #ifdef DEBUGGING
      81:     if (indx < 0)
      82:     printf("vwtary(%ld)\n",(long)indx) FLUSH;
      83:     if (!indx)
      84:     maxindx = 0;
      85:     if (indx > maxindx) {
      86:     if (indx != maxindx + 1)
      87:         printf("indx skipped %d-%d\n",maxindx+1,indx-1) FLUSH;
      88:     maxindx = indx;
      89:     }
      90: #endif
      91:     subindx = indx % VARYSIZE;
      92:     offset = (indx - subindx) * sizeof(varybuf[0]);
      93:     if (offset != oldoffset) {
      94:     if (oldoffset >= 0) {
      95: #ifndef lint
      96:         (void)lseek(varyfd,oldoffset,0);
      97:         write(varyfd,(char *)varybuf,sizeof(varybuf));
      98: #endif lint
      99:     }
     100: #ifndef lint
     101:     (void)lseek(varyfd,offset,0);
     102:     read(varyfd,(char *)varybuf,sizeof(varybuf));
     103: #endif lint
     104:     oldoffset = offset;
     105:     }
     106:     varybuf[subindx] = newvalue;
     107: }

#### Defined functions

backpage_init defined in line 19; used 2 times

- in /usr/src/new/rn/backpage.h line 17
- in /usr/src/new/rn/init.c line 172

vrdary defined in line 37; used 8 times

- in /usr/src/new/rn/art.c line 122, 250, 499, 644, 676, 748
- in /usr/src/new/rn/backpage.h line 18
- in /usr/src/new/rn/ng.c line 953

vwtary defined in line 72; used 5 times

- in /usr/src/new/rn/art.c line 171, 250, 487, 499
- in /usr/src/new/rn/backpage.h line 19

#### Defined variables

maxindx defined in line 16; used 7 times

- in line 45-46(2), 84-88(5)

Last modified: 1987-03-16 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 693 |