home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / gccdist / gcc / include / rab.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-02-27  |  5.7 KB  |  149 lines

  1. /*    RAB - Record Access Block Definitions    */
  2.  
  3. struct    RAB    {
  4.        unsigned char    rab$b_bid;        /* block identification */
  5. #define            RAB$C_BID    1    /* block identification constant */
  6.  
  7.        unsigned char    rab$b_bln;        /* block length */
  8. #define            RAB$C_BLN    0x044    /* block length constant */
  9. #define            RAB$K_BLN    0x044
  10.  
  11.        unsigned short    rab$w_isi;                /* internal stream identifier */
  12. #define            RAB$V_PPF_RAT    6            /* rat value for process-permanent files */
  13. #define            RAB$S_PPF_RAT    8
  14. #define            RAB$M_PPF_RAT    (0x0ff << RAB$V_PPF_RAT)
  15. #define            RAB$V_PPF_IND    14            /* indirect access to process-permanent file */
  16. #define            RAB$M_PPF_IND    (1 << RAB$V_PPF_IND)
  17.  
  18.        unsigned int    rab$l_rop;            /* record processing options */
  19. #define            RAB$V_ASY    0        /* asynchronous operations */
  20. #define            RAB$M_ASY    (1 << RAB$V_ASY)
  21. #define            RAB$V_TPT    1        /* truncate-on-put - allow sequential put not at eof, thus
  22.                                truncating file (sequential organization only) */
  23. #define            RAB$M_TPT    (1 << RAB$V_TPT)
  24. #define            RAB$V_REA    2        /* lock record for read only, allow other readers */
  25. #define            RAB$M_REA    (1 << RAB$V_REA)
  26. #define            RAB$V_RRL    3        /* read record regardless of lock */
  27. #define            RAB$M_RRL    (1 << RAB$V_RRL)
  28. #define            RAB$V_UIF    4        /* update if existent */
  29. #define            RAB$M_UIF    (1 << RAB$V_UIF)
  30. #define            RAB$V_MAS    5        /* mass-insert mode */
  31. #define            RAB$M_MAS    (1 << RAB$V_MAS)
  32. #define            RAB$V_FDL    6        /* fast record deletion */
  33. #define            RAB$M_FDL    (1 << RAB$V_FDL)
  34. #define            RAB$V_HSH    7        /* use hash code in bkt */
  35. #define            RAB$M_HSH    (1 << RAB$V_HSH)
  36. #define            RAB$V_EOF    8        /* connect to end-of-file */
  37. #define            RAB$M_EOF    (1 << RAB$V_EOF)
  38. #define            RAB$V_RAH    9        /* read ahead */
  39. #define            RAB$M_RAH    (1 << RAB$V_RAH)
  40. #define            RAB$V_WBH    10        /* write behind */
  41. #define            RAB$M_WBH    (1 << RAB$V_WBH)
  42. #define            RAB$V_BIO    11        /* connect for block I/O only */
  43. #define            RAB$M_BIO    (1 << RAB$V_BIO)
  44. #define            RAB$V_LV2    12        /* level 2 RU lock consistency */
  45. #define            RAB$M_LV2    (1 << RAB$V_LV2)
  46. #define            RAB$V_LOA    13        /* load buckets according to the file size */
  47. #define            RAB$M_LOA    (1 << RAB$V_LOA)
  48. #define            RAB$V_LIM    14        /* compare for key limit reached on $get/$find seq.(idx only) */
  49. #define            RAB$M_LIM    (1 << RAB$V_LIM)
  50. #define            RAB$V_LOC    16        /* use locate mode */
  51. #define            RAB$M_LOC    (1 << RAB$V_LOC)
  52. #define            RAB$V_WAT    17        /* wait if record not available */
  53. #define            RAB$M_WAT    (1 << RAB$V_WAT)
  54. #define            RAB$V_ULK    18        /* manual unlocking */
  55. #define            RAB$M_ULK    (1 << RAB$V_ULK)
  56. #define            RAB$V_RLK    19        /* allow readers for this locked record */
  57. #define            RAB$M_RLK    (1 << RAB$V_RLK)
  58. #define            RAB$V_NLK    20        /* do not lock record */
  59. #define            RAB$M_NLK    (1 << RAB$V_NLK)
  60. #define            RAB$V_KGE    21        /* key is greater than or equal to */
  61. #define            RAB$M_KGE    (1 << RAB$V_KGE)
  62. #define            RAB$V_KGT    22        /* key is greater than */
  63. #define            RAB$M_KGT    (1 << RAB$V_KGT)
  64. #define            RAB$V_NXR    23        /* non-existent record processing */
  65. #define            RAB$M_NXR    (1 << RAB$V_NXR)
  66. #define            RAB$V_RNE    24        /* read no echo */
  67. #define            RAB$M_RNE    (1 << RAB$V_RNE)
  68. #define            RAB$V_TMO    25        /* use time-out period */
  69. #define            RAB$M_TMO    (1 << RAB$V_TMO)
  70. #define            RAB$V_CVT    26        /* convert to upper case */
  71. #define            RAB$M_CVT    (1 << RAB$V_CVT)
  72. #define            RAB$V_RNF    27        /* read no filter */
  73. #define            RAB$M_RNF    (1 << RAB$V_RNF)
  74. #define            RAB$V_ETO    28        /* extended terminal operation */
  75. #define            RAB$M_ETO    (1 << RAB$V_ETO)
  76. #define            RAB$V_PTA    29        /* purge type ahead */
  77. #define            RAB$M_PTA    (1 << RAB$V_PTA)
  78. #define            RAB$V_PMT    30        /* use prompt buffer */
  79. #define            RAB$M_PMT    (1 << RAB$V_PMT)
  80. #define            RAB$V_CCO    31        /* cancel control O on output */
  81. #define            RAB$M_CCO    (1 << RAB$V_CCO)
  82.  
  83.        unsigned int    rab$l_sts;        /* completion status code */
  84.        unsigned int    rab$l_stv;        /* status value */
  85.        unsigned short    rab$w_rfa[3];        /* record's file address */
  86.  
  87.         unsigned : 16;            /* spare */
  88.  
  89.        unsigned int    rab$l_ctx;        /* user context */
  90.  
  91.         unsigned : 16;            /* spare */
  92.  
  93.        unsigned char    rab$b_rac;        /* record access mode */
  94. #define            RAB$C_SEQ    0    /* sequential access */
  95. #define            RAB$C_KEY    1    /* keyed access */
  96. #define            RAB$C_RFA    2    /* rfa access */
  97. #define            RAB$C_STM    3    /* stream access (valid only for sequential org) */
  98.  
  99.        unsigned char    rab$b_tmo;        /* time-out period */
  100.        unsigned short    rab$w_usz;        /* user record area size */
  101.        unsigned short    rab$w_rsz;        /* record size */
  102.         char    *rab$l_ubf;        /* user record area address */
  103.         char    *rab$l_rbf;        /* record buffer address */
  104.         char    *rab$l_rhb;        /* record header buffer address */
  105.  
  106.         char    *rab$l_kbf;            /* key address */
  107. #define            rab$l_pbf    rab$l_kbf    /* prompt buffer address (same offset as rab$l_kbf) */
  108.  
  109.        unsigned char    rab$b_ksz;            /* key buffer size */
  110. #define            rab$b_psz    rab$b_ksz    /* prompt buffer size (same offset as rab$b_ksz) */
  111.  
  112.        unsigned char    rab$b_krf;        /* key of reference */
  113.         char    rab$b_mbf;        /* multi-buffer count */
  114.        unsigned char    rab$b_mbc;        /* multi-block count */
  115.  
  116.        unsigned int    rab$l_bkt;            /* bucket hash code, vbn, or rrn */
  117. #define            rab$l_dct    rab$l_bkt    /* duplicates count on key accessed on alternate key */
  118.  
  119.      struct FAB    *rab$l_fab;        /* related fab address for connect */
  120.  
  121.      char        *rab$l_xab;        /* related XAB address */
  122.         };
  123.  
  124.  
  125. struct    {
  126.     unsigned    : 32;
  127.     unsigned    : 32;
  128.     unsigned    : 32;
  129.  
  130.     unsigned short    rab$w_stv0;    /* low order word of stv */
  131.     unsigned short    rab$w_stv2;    /* high order word of stv */
  132.     unsigned int    rab$l_rfa0;
  133.     unsigned short    rab$w_rfa4;
  134.     };
  135.  
  136. struct {
  137.     unsigned    : 32;
  138.     unsigned    : 8;
  139.  
  140.     unsigned char    rab$b_rop1;    /* second byte of ROP */
  141.     unsigned char    rab$b_rop2;    /* third  byte of ROP */
  142.     unsigned char    rab$b_rop3;    /* fourth byte of ROP */
  143.     };
  144.  
  145.  
  146. extern int cc$rms_rab();
  147. #define cc$rms_rab (*(struct RAB *) cc$rms_rab)
  148. /* globalref struct RAB cc$rms_rab;       /* Declare initialized prototype data structure */
  149.