Annotation of 42BSD/ingres/source/h/access.h, revision 1.1

1.1     ! root        1: #
        !             2: /*
        !             3: **  ACCESS.H -- definitions relating to the access methods.
        !             4: **
        !             5: **     Version:
        !             6: **             @(#)access.h    7.1     2/5/81
        !             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_TRUNC         99              /* internal pseudo-mode: truncated */
        !            35: 
        !            36: # define       NACCBUFS        3               /* number of access method buffers */
        !            37: 
        !            38: /* error flags */
        !            39: # define       AMREAD_ERR      -1
        !            40: # define       AMWRITE_ERR     -2
        !            41: # define       AMNOFILE_ERR    -3      /* can't open file for a relation */
        !            42: # define       AMREL_ERR       -4      /* can't open relation relation */
        !            43: # define       AMATTR_ERR      -5      /* can't open attribute relation */
        !            44: # define       AMNOATTS_ERR    -6      /* attribute missing or xtra in att-rel */
        !            45: # define       AMCLOSE_ERR     -7      /* can't close relation */
        !            46: # define       AMFIND_ERR      -8      /* unidentifiable stora  Petructure in find */
        !            47: # define       AMINVL_ERR      -9      /* invalid TID */
        !            48: # define       AMOPNVIEW_ERR   -10     /* attempt to open a view for rd or wr */
        !            49: 
        !            50: /* the following is the access methods buffer */
        !            51: struct accbuf
        !            52: {
        !            53:        /* this stuff is actually stored in the relation */
        !            54:        long            mainpg;         /* next main page (0 - eof) */
        !            55:        long            ovflopg;        /* next ovflo page (0 - none) */
        !            56:        short           nxtlino;        /* next avail line no for this page */
        !            57:        char            firstup[PGSIZE - 12];   /* tuple space */
        !            58:        short           linetab[1];     /* line table at end of buffer - grows down */
        !            59:                                        /* linetab[lineno] is offset into
        !            60:                                        ** the buffer for that line; linetab[nxtlino]
        !            61:                                        ** is free space pointer */
        !            62: 
        !            63:        /* this stuff is not stored in the relation */
        !            64:        long            rel_tupid;      /* unique relation id */
        !            65:        long            thispage;       /* page number of the current page */
        !            66:        int             filedesc;       /* file descriptor for this reln */
        !            67:        struct accbuf   *modf;          /* use time link list forward pointer */
        !            68:        struct accbuf   *modb;          /* back pointer */
        !            69:        int             bufstatus;      /* various bits defined below */
        !            70: };
        !            71: 
        !            72: /* The following assignments are status bits for accbuf.bufstatus */
        !            73: # define       BUF_DIRTY       001     /* page has been changed */
        !            74: # define       BUF_LOCKED      002     /* page has a page lock on it */
        !            75: # define       BUF_DIRECT      004     /* this is a page from isam direct */
        !            76: 
        !            77: /* access method buffer typed differently for various internal operations */
        !            78: struct
        !            79: {
        !            80:        char    acc_buf[NACCBUFS];
        !            81: };
        !            82: 
        !            83: /* pointers to maintain the buffer */
        !            84: extern struct accbuf   *Acc_head;      /* head of the LRU list */
        !            85: extern struct accbuf   *Acc_tail;      /* tail of the LRU list */
        !            86: extern struct accbuf   Acc_buf[NACCBUFS];      /* the buffers themselves */
        !            87: 
        !            88: 
        !            89: /*
        !            90: **  ADMIN file struct
        !            91: **
        !            92: **     The ADMIN struct describes the initial part of the ADMIN file
        !            93: **     which exists in each database.  This file is used to initially
        !            94: **     create the database, to maintain some information about the
        !            95: **     database, and to access the RELATION and ATTRIBUTE relations
        !            96: **     on OPENR calls.
        !            97: */
        !            98: 
        !            99: struct adminhdr
        !           100: {
        !           101:        char    adowner[2];     /* user code of data base owner */
        !           102:        short   adflags;        /* database flags */
        !           103:        short   adlength;       /* length of adminhdr */
        !           104:        short   adversion;      /* database format stamp */
        !           105:        short   adreldsz;       /* length of relation descriptor */
        !           106:        short   adattdsz;       /* length of attribute descriptor */
        !           107: };
        !           108: 
        !           109: struct admin
        !           110: {
        !           111:        struct adminhdr         adhdr;
        !           112:        struct descriptor       adreld;
        !           113:        struct descriptor       adattd;
        !           114: };
        !           115: 
        !           116: /*
        !           117: **  Admin status bits
        !           118: **
        !           119: **     These bits define the status of the database.  They are
        !           120: **     contained in the adflags field of the admin struct.
        !           121: */
        !           122: 
        !           123: # define       A_DBCONCUR      0000001         /* set database concurrency */
        !           124: # define       A_QRYMOD        0000002         /* database uses query modification */
        !           125: # define       A_NEWFMT        0000004         /* database is post-6.2 */
        !           126: 
        !           127: 
        !           128: /* following is buffer space for data from admin file */
        !           129: extern struct admin            Admin;
        !           130: 
        !           131: /*
        !           132: **  PGTUPLE -- btree index key (a tid and an index key)
        !           133: */
        !           134: 
        !           135: struct pgtuple
        !           136: {
        !           137:        struct tup_id   childtid;               /* the pointer comes before */
        !           138:        char            childtup[MAXTUP];
        !           139: };
        !           140: 
        !           141: /*
        !           142: ** global counters for the number of UNIX read and write
        !           143: **  requests issued by the access methods.
        !           144: */
        !           145: 
        !           146: extern long    Accuread, Accuwrite;
        !           147: 
        !           148: /*
        !           149: **     Global values used by everything
        !           150: */
        !           151: 
        !           152: extern char    *Acctuple;              /* pointer to canonical tuple */
        !           153: extern         Accerror;               /* error no for fatal errors */
        !           154: extern char    Accanon[MAXTUP];        /* canonical tuple buffer */
        !           155: 
        !           156: # endif PGSIZE

unix.superglobalmegacorp.com

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