|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.