Annotation of 43BSD/ingres/source/support/ildr.h, revision 1.1.1.1

1.1       root        1: /*
                      2: **  ILDR.H -- header file for INGRES lock driver.
                      3: **
                      4: **     @(#)ildr.h      8.1     12/31/84
                      5: */
                      6: 
                      7: # define       KEYSIZE 12
                      8: # define       DLOCKS  10      /* max number of data base locks (limits # of ingreses */
                      9: # define       RLOCKS  2*DLOCKS + 6
                     10: # define       PLOCKS  RLOCKS + 3
                     11: # define       NLOCKS  PLOCKS + 1
                     12: # define       LOCKPRI 1
                     13: # define       TRUE    1
                     14: # define       FALSE   0
                     15: # define       M_EMTY          0
                     16: # define       M_SHARE         2
                     17: # define       M_EXCL          1
                     18: # define       T_CS            0
                     19: # define       T_PAGE          1
                     20: # define       T_REL           2
                     21: # define       T_DB            3
                     22: # define       A_RTN           1
                     23: # define       A_SLP           2
                     24: # define       A_RLS1          3
                     25: # define       A_RLSA          4
                     26: # define       A_ABT           5
                     27: # define       W_ON            1
                     28: # define       W_OFF           0
                     29: /*     Device driver for the /dev/ILOCK 
                     30:  *     an in core device used as a Lock table
                     31:  */
                     32: /* Only the parameters NLOCKS, PLOCKS, RLOCKS and DLOCKS
                     33:  * may be changed by an INGRES installation.  See 
                     34:  * 'HOW TO INSTALL CONCURRENCY DEVICE' for details.
                     35:  * The file can be printed by "nroff .../doc/other/lockdev.nr"
                     36:  */
                     37: /*
                     38:  *     data structure for Lock table
                     39:  */
                     40: struct Lockform
                     41: {
                     42:        int     l_pid;
                     43:        char    l_wflag;        /* wait flag: = 1 a process is waiting*/
                     44:        char    l_type;         /* type of lock:
                     45:                                        = 0 for critical section
                     46:                                        = 1 for page
                     47:                                        = 2 for logical
                     48:                                        = 3 for data base
                     49:                                */
                     50:        char    l_mod;          /* mod of Lock or lock action requested 
                     51:                                 *      = 0 slot empty
                     52:                                 *      = 1 exclusive lock
                     53:                                 *      = 2 shared lock
                     54:                                 */
                     55:        char l_key[KEYSIZE];
                     56: }      Locktab[NLOCKS];
                     57: 
                     58: int    Lockset[]
                     59:                        /* array of number of locks which can be
                     60:                         * set for each lock.
                     61:                         */
                     62: {
                     63:        NLOCKS,
                     64:        PLOCKS,
                     65:        RLOCKS,
                     66:        DLOCKS
                     67: };
                     68: 
                     69: struct Lockreq
                     70:                        /* Lock Request */
                     71: {
                     72:        int     lr_pid;         /* requesting process id */
                     73:        char    lr_act;         /* requested action:
                     74:                                 *      =1 request lock, err return
                     75:                                 *      =2 request lock, sleep
                     76:                                 *      =3 release lock
                     77:                                 *      =4 release all locks for pid
                     78:                                 */
                     79:        char    lr_type;        /* same as Locktab l_type */
                     80:        char    lr_mod;         /* same as Locktab l_mod */
                     81:        char    lr_key[KEYSIZE];/* requested key        */
                     82: };

unix.superglobalmegacorp.com

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