Annotation of 42BSD/ingres/source/iutil/readadmin.c, revision 1.1.1.1

1.1       root        1: # include      <ingres.h>
                      2: # include      <access.h>
                      3: # include      <aux.h>
                      4: # include      <lock.h>
                      5: # include      <sccs.h>
                      6: 
                      7: SCCSID(@(#)readadmin.c 7.1     2/5/81)
                      8: 
                      9: /*
                     10: **  READADMIN -- read admin file into 'Admin' cache
                     11: **
                     12: **     The admin file in the current directory is opened and read
                     13: **     into the 'Admin' cache.  The admin file contains the following
                     14: **     information:
                     15: **
                     16: **     A header block, containing the owner of the database (that is,
                     17: **     the DBA), and a set of status bits for the database as a whole.
                     18: **     These bits are defined in aux.h.  This header also includes a
                     19: **     field that defines the length of the header part & a version
                     20: **     stamp.
                     21: **
                     22: **     Descriptors for the relation and attribute relations.  These
                     23: **     descriptors should be completely correct except for the
                     24: **     relfp and relopn fields.  These are required so that the
                     25: **     process of opening a relation is not recursive.
                     26: **
                     27: **     After the admin file is read in, the relation and attribute
                     28: **     files are opened, and the relfp and relopn fields in both
                     29: **     descriptors are correctly initialized.  Both catalogs are
                     30: **     opened read/write.
                     31: **
                     32: **     WARNING:
                     33: **             This routine is redefined by creatdb.  If this
                     34: **             routine is changed, check that program also!!
                     35: **
                     36: **     Parameters:
                     37: **             none
                     38: **
                     39: **     Returns:
                     40: **             none
                     41: **
                     42: **     Side Effects:
                     43: **             The 'Admin' struct is filled in from the 'admin' file
                     44: **                     in the current directory.
                     45: **             The 'relation....xx' and 'attribute...xx' files are
                     46: **                     opened.
                     47: **
                     48: **     Files:
                     49: **             ./admin
                     50: **                     The bootstrap description of the database,
                     51: **                     described above.
                     52: **
                     53: **     Trace Flags:
                     54: **             none
                     55: */
                     56: 
                     57: readadmin()
                     58: {
                     59:        register int    i;
                     60:        char            relname[MAXNAME + 4];
                     61:        extern long     lseek();
                     62: 
                     63:        /* read the stuff from the admin file */
                     64:        i = open("admin", 0);
                     65:        if (i < 0)
                     66:                syserr("readadmin: open admin %d", i);
                     67:        checkadmin(i);
                     68:        close(i);
                     69: 
                     70:        /* open the physical files for 'relation' and 'attribute' */
                     71:        ingresname(Admin.adreld.reldum.relid, Admin.adreld.reldum.relowner, relname);
                     72:        if ((Admin.adreld.relfp = open(relname, 2)) < 0)
                     73:                syserr("readadmin: open rel %d", Admin.adreld.relfp);
                     74:        ingresname(Admin.adattd.reldum.relid, Admin.adattd.reldum.relowner, relname);
                     75:        if ((Admin.adattd.relfp = open(relname, 2)) < 0)
                     76:                syserr("readadmin: open att %d", Admin.adattd.relfp);
                     77:        Admin.adreld.relopn = (Admin.adreld.relfp + 1) * -5;
                     78:        /* we just want to read here create, modify and destroy fix it up */
                     79:        Admin.adattd.relopn = (Admin.adattd.relfp + 1) * 5;
                     80: 
                     81:        return;
                     82: }

unix.superglobalmegacorp.com

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