home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / database / ingres04.lzh / source / h / lock.h < prev    next >
Encoding:
C/C++ Source or Header  |  1988-06-12  |  1.1 KB  |  54 lines

  1. /*
  2. **  LOCK.H -- Concurency structs and global variables
  3. **
  4. **    Version:
  5. **        @(#)lock.h    8.2    6/12/88
  6. */
  7.  
  8. # ifndef KEYSIZE
  9.  
  10.  
  11. # define    M_SHARE        2
  12. # define    M_EXCL        1
  13. # define    T_CS        0
  14. # define    T_PAGE        1
  15. # define    T_REL        2
  16. # define    T_DB        3
  17. # define    A_RTN        1
  18. # define    A_SLP        2
  19. # define    A_RLS1        3
  20. # define    A_RLSA        4
  21. # define    KEYSIZE        12
  22.  
  23. extern char    Acclock;        /* locks enabled flag */
  24. extern int    Alockdes;        /* file descriptor for lock device*/
  25. extern int    Lockrel;        /* lock relations flag*/
  26.  
  27. #define    LOCKDRV    (Alockdes >= 0)
  28.  
  29. # endif KEYSIZE
  30.  
  31. struct lockreq
  32. {
  33.     char    lract;            /* requested action
  34.                      *    =1 request lock,err return
  35.                      *    =2 request lock,sleep
  36.                      *    =3 release lock
  37.                      *    =release all locks for pid
  38.                      */
  39.     char    lrtype;            /* type of lock:
  40.                      *   =0, critical section lock
  41.                      *   =1, page lock
  42.                      *   =2, logical lock
  43.                      *   =3, data base lock
  44.                      */
  45.     char    lrmod;            /* mode of lock
  46.                      *    =1 exclusive lock
  47.                      *    =2 shared lock
  48.                     */
  49.                     /* key for the lock */
  50.     char    dbnode[4];        /* inode of data base */
  51.     char    lrel[4];        /* relation tid */
  52.     char    lpage[4];        /* page address        */
  53. };
  54.