1: #
   2: /*
   3: **  ACCESS.H -- definitions relating to the access methods.
   4: **
   5: **	Version:
   6: **		@(#)access.h	8.2	2/8/85
   7: */
   8: 
   9: # ifndef PGSIZE
  10: 
  11: 
  12: /*
  13: **	PGSIZE is the physical size of a page.
  14: **	MAXTUP is the maximum size of a tuple, assuming only one
  15: **		tuple on the page.  This is PGSIZE-hdrsize, where
  16: **		hdrsize is the size of the page header (12 bytes).
  17: **	MAXLINENO is the maximum number of tuples on a page
  18: **		assuming minimum size tuples (1 byte).  This is
  19: **		constrained by the size of the lineid field of
  20: **		the tid.
  21: */
  22: 
  23: # define    PGSIZE      1024        /* size of page */
  24: # define    MAXTUP      1010        /* max size of a tuple */
  25: # define    MAXLINENO   254     /* max tuples per page */
  26: # define    PGPTRSIZ    4       /* size of a tid */
  27: # define    MAXTUPS     100     /* maximum number of tups */
  28: 
  29: /* storage structure flags; < 0 means compressed */
  30: # define    M_HEAP      5       /* paged heap */
  31: # define    M_ISAM      11      /* indexed sequential */
  32: # define    M_HASH      21      /* random hash */
  33: # define    M_BTREE     31      /* BTREES */
  34: # define    M_ORDER     41      /* ordered */
  35: # define    M_TRUNC     99      /* internal pseudo-mode: truncated */
  36: 
  37: # define    NACCBUFS    3       /* number of access method buffers */
  38: 
  39: /* error flags */
  40: # define    AMREAD_ERR  -1
  41: # define    AMWRITE_ERR -2
  42: # define    AMNOFILE_ERR    -3  /* can't open file for a relation */
  43: # define    AMREL_ERR   -4  /* can't open relation relation */
  44: # define    AMATTR_ERR  -5  /* can't open attribute relation */
  45: # define    AMNOATTS_ERR    -6  /* attribute missing or xtra in att-rel */
  46: # define    AMCLOSE_ERR -7  /* can't close relation */
  47: # define    AMFIND_ERR  -8  /* unidentifiable stora  Petructure in find */
  48: # define    AMINVL_ERR  -9  /* invalid TID */
  49: # define    AMOPNVIEW_ERR   -10 /* attempt to open a view for rd or wr */
  50: 
  51: /* the following is the access methods buffer */
  52: struct accbuf
  53: {
  54:     /* this stuff is actually stored in the relation */
  55:     long        mainpg;     /* next main page (0 - eof) */
  56:     long        ovflopg;    /* next ovflo page (0 - none) */
  57:     short       nxtlino;    /* next avail line no for this page */
  58:     char        firstup[PGSIZE - 12];   /* tuple space */
  59:     short       linetab[1]; /* line table at end of buffer - grows down */
  60:                     /* linetab[lineno] is offset into
  61: 					** the buffer for that line; linetab[nxtlino]
  62: 					** is free space pointer */
  63: 
  64:     /* this stuff is not stored in the relation */
  65:     long        rel_tupid;  /* unique relation id */
  66:     long        thispage;   /* page number of the current page */
  67:     int     filedesc;   /* file descriptor for this reln */
  68:     struct accbuf   *modf;      /* use time link list forward pointer */
  69:     struct accbuf   *modb;      /* back pointer */
  70:     int     bufstatus;  /* various bits defined below */
  71: };
  72: 
  73: /* The following assignments are status bits for accbuf.bufstatus */
  74: # define    BUF_DIRTY   001 /* page has been changed */
  75: # define    BUF_LOCKED  002 /* page has a page lock on it */
  76: # define    BUF_DIRECT  004 /* this is a page from isam direct */
  77: 
  78: /* access method buffer typed differently for various internal operations */
  79: struct
  80: {
  81:     char    acc_buf[NACCBUFS];
  82: };
  83: 
  84: /* pointers to maintain the buffer */
  85: extern struct accbuf    *Acc_head;  /* head of the LRU list */
  86: extern struct accbuf    *Acc_tail;  /* tail of the LRU list */
  87: extern struct accbuf    Acc_buf[NACCBUFS];  /* the buffers themselves */
  88: 
  89: 
  90: /*
  91: **  ADMIN file struct
  92: **
  93: **	The ADMIN struct describes the initial part of the ADMIN file
  94: **	which exists in each database.  This file is used to initially
  95: **	create the database, to maintain some information about the
  96: **	database, and to access the RELATION and ATTRIBUTE relations
  97: **	on OPENR calls.
  98: */
  99: 
 100: struct adminhdr
 101: {
 102:     char    adowner[2]; /* user code of data base owner */
 103:     short   adflags;    /* database flags */
 104:     short   adlength;   /* length of adminhdr */
 105:     short   adversion;  /* database format stamp */
 106:     short   adreldsz;   /* length of relation descriptor */
 107:     short   adattdsz;   /* length of attribute descriptor */
 108: };
 109: 
 110: struct admin
 111: {
 112:     struct adminhdr     adhdr;
 113:     struct descriptor   adreld;
 114:     struct descriptor   adattd;
 115: };
 116: 
 117: /*
 118: **  Admin status bits
 119: **
 120: **	These bits define the status of the database.  They are
 121: **	contained in the adflags field of the admin struct.
 122: */
 123: 
 124: # define    A_DBCONCUR  0000001     /* set database concurrency */
 125: # define    A_QRYMOD    0000002     /* database uses query modification */
 126: # define    A_NEWFMT    0000004     /* database is post-6.2 */
 127: 
 128: 
 129: /* following is buffer space for data from admin file */
 130: extern struct admin     Admin;
 131: 
 132: /*
 133: **  PGTUPLE -- btree index key (a tid and an index key)
 134: */
 135: 
 136: struct pgtuple
 137: {
 138:     struct tup_id   childtid;       /* the pointer comes before */
 139:     char        childtup[MAXTUP];
 140: };
 141: 
 142: /*
 143: ** global counters for the number of UNIX read and write
 144: **  requests issued by the access methods.
 145: */
 146: 
 147: extern long Accuread, Accuwrite;
 148: 
 149: /*
 150: **	Global values used by everything
 151: */
 152: 
 153: extern char *Acctuple;      /* pointer to canonical tuple */
 154: extern      Accerror;       /* error no for fatal errors */
 155: extern char Accanon[MAXTUP];    /* canonical tuple buffer */
 156: 
 157: 
 158: /* Macros for the return values of iutil/add_ovflo.c */
 159: # define    NOBUFFER    -1  /* can't get buffer for overflow page */
 160: # define    NOSETUP     -2  /* can't set up overflow page */
 161: # define    NOGETCURRENT    -3  /* can't get the current page */
 162: # define    NORMVMAIN   -4  /* can't remove the main page */
 163: # define    NOGETOVFLO  -5  /* can't get the overflow page */
 164: # endif PGSIZE

Defined struct's

accbuf defined in line 52; used 10 times
admin defined in line 110; used 2 times
  • in line 130(2)
adminhdr defined in line 100; used 2 times
  • in line 112(2)
pgtuple defined in line 136; never used

Defined macros

AMATTR_ERR defined in line 44; never used
AMCLOSE_ERR defined in line 46; never used
AMFIND_ERR defined in line 47; never used
AMINVL_ERR defined in line 48; never used
AMNOATTS_ERR defined in line 45; never used
AMNOFILE_ERR defined in line 42; never used
AMOPNVIEW_ERR defined in line 49; never used
AMREAD_ERR defined in line 40; never used
AMREL_ERR defined in line 43; never used
AMWRITE_ERR defined in line 41; never used
A_DBCONCUR defined in line 124; never used
A_NEWFMT defined in line 126; never used
A_QRYMOD defined in line 125; never used
BUF_DIRECT defined in line 76; never used
BUF_DIRTY defined in line 74; never used
BUF_LOCKED defined in line 75; never used
MAXLINENO defined in line 25; never used
MAXTUP defined in line 24; used 2 times
MAXTUPS defined in line 27; never used
M_BTREE defined in line 33; never used
M_HASH defined in line 32; never used
M_HEAP defined in line 30; never used
M_ISAM defined in line 31; never used
M_ORDER defined in line 34; never used
M_TRUNC defined in line 35; never used
NACCBUFS defined in line 37; used 2 times
NOBUFFER defined in line 159; never used
NOGETCURRENT defined in line 161; never used
NOGETOVFLO defined in line 163; never used
NORMVMAIN defined in line 162; never used
NOSETUP defined in line 160; never used
PGPTRSIZ defined in line 26; never used
PGSIZE defined in line 23; used 2 times
  • in line 9, 58
Last modified: 1986-04-17
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 763
Valid CSS Valid XHTML 1.0 Strict