Annotation of 43BSD/ingres/source/iutil/dblocks.c, revision 1.1.1.1

1.1       root        1: # include      <ingres.h>
                      2: # include      <lock.h>
                      3: # include      <sccs.h>
                      4: 
                      5: SCCSID(@(#)dblocks.c   8.1     12/31/84)
                      6: 
                      7: struct lockreq Lock;
                      8: /*
                      9:  *     setdbl - set data base lock for either exclusive or shared
                     10:  *              access.
                     11:  */
                     12: setdbl(act, mod)
                     13: char   act;                    /* type request */
                     14: char   mod;                    /* mod of lock: = 1 for exclusive, = 2 for shared*/
                     15: {
                     16:        register char   *r;
                     17:        register int    i;
                     18:        auto    int     ret_val;
                     19: 
                     20: #      ifdef xATR1
                     21:        if ( tTf(28,6) )
                     22:                printf(" setdbl act=%o md=%o\n", act, mod);
                     23: #      endif
                     24:        if (Alockdes < 0)
                     25:                return (1);
                     26:        Lock.lract = act;               /* type of request */
                     27:        Lock.lrtype = T_DB;             /* data base lock */
                     28:        Lock.lrmod = mod;               /* exclusive or shared */
                     29:                                        /* zero out rest of key */
                     30:        r = Lock.lrel;
                     31:        for (i = 0; i < 8; i++)
                     32:                *r++ = 0;
                     33:        i = write(Alockdes, &Lock, KEYSIZE + 3);
                     34:        read(Alockdes, &ret_val, sizeof (int));
                     35:        return (ret_val);
                     36: }
                     37: /*
                     38:  *     unldb   - release the data base lock
                     39:  */
                     40: unldb()
                     41: {
                     42:        register char   *r;
                     43:        register int    i;
                     44:        auto    int     ret_val;
                     45: 
                     46: #      ifdef xATR1
                     47:        if (tTf(28, 7))
                     48:                printf(" unldb\n");
                     49: #      endif
                     50:        if (Alockdes < 0)
                     51:                return (1);
                     52:        Lock.lract = A_RLS1;            /* release 1 lock */
                     53:        Lock.lrtype = T_DB;             /* a data base lock*/
                     54:        r = Lock.lrel;
                     55:        for (i = 0; i < 8; i++)         /* zero out part of key*/
                     56:                *r++ = 0;
                     57:        i = write(Alockdes, &Lock, KEYSIZE + 3);
                     58:        read(Alockdes, &ret_val, sizeof (int));
                     59:        return (ret_val);
                     60: }

unix.superglobalmegacorp.com

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