/********************************************************************************************************************************/ /* Created: 9-Mar-2021 22:28:04 by OpenVMS SDL EV3-3 */ /* Source: 09-MAR-2021 22:28:01 $1$DGA8085:[STARLET_H.SRC]RMSUSR.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $RABDEF ***/ #ifndef __RABDEF_LOADED #define __RABDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /* */ /* record access block (rab) definitions */ /* */ /* there is one rab per connected stream */ /* it is used for all communications between the user */ /* and rms concerning operations on the stream */ /* */ /* the fields thru ctx cannot be changed due to commonality */ /* with the fab */ /* */ #ifdef __NEW_STARLET struct _fabdef; #else struct fabdef; #endif #define RAB$C_BID 1 /* code for rab */ #define RAB$M_PPF_RAT 0x3FC0 #define RAB$M_PPF_IND 0x4000 #define RAB$M_PPISI 0x8000 #define RAB$M_ASY 0x1 #define RAB$M_TPT 0x2 #define RAB$M_REA 0x4 #define RAB$M_RRL 0x8 #define RAB$M_UIF 0x10 #define RAB$M_MAS 0x20 #define RAB$M_FDL 0x40 #define RAB$M_REV 0x80 #define RAB$M_EOF 0x100 #define RAB$M_RAH 0x200 #define RAB$M_WBH 0x400 #define RAB$M_BIO 0x800 #define RAB$M_CDK 0x1000 #define RAB$M_LOA 0x2000 #define RAB$M_LIM 0x4000 #define RAB$M_SYNCSTS 0x8000 #define RAB$M_LOC 0x10000 #define RAB$M_WAT 0x20000 #define RAB$M_ULK 0x40000 #define RAB$M_RLK 0x80000 #define RAB$M_NLK 0x100000 #define RAB$M_KGE 0x200000 #define RAB$M_KGT 0x400000 #define RAB$M_NXR 0x800000 #define RAB$M_RNE 0x1000000 #define RAB$M_TMO 0x2000000 #define RAB$M_CVT 0x4000000 #define RAB$M_RNF 0x8000000 #define RAB$M_ETO 0x10000000 #define RAB$M_PTA 0x20000000 #define RAB$M_PMT 0x40000000 #define RAB$M_CCO 0x80000000 #define RAB$M_EQNXT 0x200000 #define RAB$M_NXT 0x400000 #define RAB$M_NQL 0x1 #define RAB$M_NODLCKWT 0x2 #define RAB$M_NODLCKBLK 0x4 #define RAB$C_SEQ 0 /* sequential access */ #define RAB$C_KEY 1 /* keyed access */ #define RAB$C_RFA 2 /* rfa access */ #define RAB$C_STM 3 /* stream access (valid only for sequential org) */ #define RAB$C_MAXRAC 2 /* Maximum RAC value currently supported by RMS */ #ifdef __cplusplus /* Define structure prototypes */ struct _fabdef; #endif /* #ifdef __cplusplus */ #ifdef __NEW_STARLET #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _rabdef { #pragma __nomember_alignment unsigned char rab$b_bid; /* block id */ unsigned char rab$b_bln; /* block length */ __union { unsigned short int rab$w_isi; /* internal stream index */ /* (ifi in fab) */ __struct { unsigned rabdef$$_fill_1 : 6; /* move to bit 6 */ unsigned rab$v_ppf_rat : 8; /* rat value for process-permanent files */ unsigned rab$v_ppf_ind : 1; /* indirect access to process-permanent file */ /* (i.e., restricted operations) */ unsigned rab$v_ppisi : 1; /* indicates that this is process-permanent stream */ } rab$r_isi_bits; } rab$r_isi_overlay; __union { unsigned int rab$l_rop; /* record options */ __struct { unsigned rab$v_asy : 1; /* asynchronous operations */ unsigned rab$v_tpt : 1; /* truncate put - allow sequential put not at */ /* eof, thus truncating file (seq. org only) */ /* */ /* these next two should be in the byte for bits */ /* input to $find or $get, but there is no room there */ /* */ unsigned rab$v_rea : 1; /* lock record for read only, allow other readers */ unsigned rab$v_rrl : 1; /* read record regardless of lock */ /* */ unsigned rab$v_uif : 1; /* update if existent */ unsigned rab$v_mas : 1; /* mass-insert mode */ unsigned rab$v_fdl : 1; /* fast record deletion */ unsigned rab$v_rev : 1; /* reverse-search - can only be set with NXT or EQNXT */ /* */ unsigned rab$v_eof : 1; /* connect to eof */ unsigned rab$v_rah : 1; /* read ahead */ unsigned rab$v_wbh : 1; /* write behind */ unsigned rab$v_bio : 1; /* connect for bio only */ unsigned rab$v_cdk : 1; /* check for duplicate keys on $GET */ unsigned rab$v_loa : 1; /* use bucket fill percentage */ unsigned rab$v_lim : 1; /* compare for key limit reached on $get/$find seq. (idx only) */ unsigned rab$v_syncsts : 1; /* Synchronous status notification for asynchronous routines. */ /* */ /* the following bits are input to */ /* $find or $get, (see above also REA and RRL) */ /* (separate byte) */ /* */ unsigned rab$v_loc : 1; /* use locate mode */ unsigned rab$v_wat : 1; /* wait if record not available */ unsigned rab$v_ulk : 1; /* manual unlocking */ unsigned rab$v_rlk : 1; /* allow readers for this locked record */ unsigned rab$v_nlk : 1; /* do not lock record */ unsigned rab$v_kge : 1; /* key > or = */ unsigned rab$v_kgt : 1; /* key greater than */ unsigned rab$v_nxr : 1; /* get non-existent record */ /* */ /* the following bits are terminal qualifiers only */ /* (separate byte) */ /* */ unsigned rab$v_rne : 1; /* read no echo */ unsigned rab$v_tmo : 1; /* use time-out period */ unsigned rab$v_cvt : 1; /* convert to upper case */ unsigned rab$v_rnf : 1; /* read no filter */ unsigned rab$v_eto : 1; /* extended terminal operation */ unsigned rab$v_pta : 1; /* purge type ahead */ unsigned rab$v_pmt : 1; /* use prompt buffer */ unsigned rab$v_cco : 1; /* cancel control o on output */ } rab$r_rop_bits0; __struct { unsigned rabdef$$_fill_6 : 21; unsigned rab$v_eqnxt : 1; /* Synonyms for KGE and */ unsigned rab$v_nxt : 1; /* KGT */ unsigned rab$v_fill_3_ : 1; } rab$r_rop_bits1; /* the following bits may be */ /* input to various rab-related */ /* operations */ /* */ __struct { char rabdef$$_fill_3; unsigned char rab$b_rop1; /* various options */ unsigned char rab$b_rop2; /* get/find options (use of this field discouraged */ /* due to REA and RRL being in a different byte) */ unsigned char rab$b_rop3; /* terminal read options */ /* */ } rab$r_rop_fields; } rab$r_rop_overlay; unsigned int rab$l_sts; /* status */ __union { unsigned int rab$l_stv; /* status value */ __struct { unsigned short int rab$w_stv0; /* low word of stv */ unsigned short int rab$w_stv2; /* high word of stv */ } rab$r_stv_fields; } rab$r_stv_overlay; __union { unsigned short int rab$w_rfa [3]; /* record's file address */ __struct { unsigned int rab$l_rfa0; unsigned short int rab$w_rfa4; } rab$r_rfa_fields; } rab$r_rfa_overlay; short int rabdef$$_fill_4; /* (reserved - rms release 1 optimizes stores */ /* to the rfa field to be a move quad, overwriting */ /* this reserved word) */ unsigned int rab$l_ctx; /* user context */ /*-----***** */ __union { /* */ unsigned short int rab$w_rop_2; /* extension to record options in traditional RAB */ __struct { unsigned rab$v_nql : 1; /* no query locking (record level) */ unsigned rab$v_nodlckwt : 1; /* no deadlock wait */ unsigned rab$v_nodlckblk : 1; /* no deadlock blocking */ unsigned rabdef$$_fill_5 : 13; /* reserved for future development */ } rab$r_rop_2_bits0; } rab$r_rop_2_overlay; unsigned char rab$b_rac; /* record access */ unsigned char rab$b_tmo; /* time-out period */ unsigned short int rab$w_usz; /* user buffer size */ unsigned short int rab$w_rsz; /* record buffer size */ char *rab$l_ubf; /* user buffer address */ char *rab$l_rbf; /* record buffer address */ char *rab$l_rhb; /* record header buffer addr */ __union { char *rab$l_kbf; /* key buffer address */ char *rab$l_pbf; /* prompt buffer addr */ } rab$r_kbf_overlay; __union { unsigned char rab$b_ksz; /* key buffer size */ unsigned char rab$b_psz; /* prompt buffer size */ } rab$r_ksz_overlay; unsigned char rab$b_krf; /* key of reference */ char rab$b_mbf; /* multi-buffer count */ unsigned char rab$b_mbc; /* multi-block count */ __union { unsigned int rab$l_bkt; /* bucket hash code, vbn, or rrn */ unsigned int rab$l_dct; /* duplicates count on key accessed on alternate key */ } rab$r_bkt_overlay; struct _fabdef *rab$l_fab; /* related fab for connect ~~~ struct fabdef ~~~ */ void *rab$l_xab; /* XAB address */ } RABDEF; #if !defined(__VAXC) #define rab$w_isi rab$r_isi_overlay.rab$w_isi #define rab$r_isi_bits rab$r_isi_overlay.rab$r_isi_bits #define rab$v_ppf_rat rab$r_isi_bits.rab$v_ppf_rat #define rab$v_ppf_ind rab$r_isi_bits.rab$v_ppf_ind #define rab$v_ppisi rab$r_isi_bits.rab$v_ppisi #define rab$l_rop rab$r_rop_overlay.rab$l_rop #define rab$r_rop_bits0 rab$r_rop_overlay.rab$r_rop_bits0 #define rab$v_asy rab$r_rop_bits0.rab$v_asy #define rab$v_tpt rab$r_rop_bits0.rab$v_tpt #define rab$v_rea rab$r_rop_bits0.rab$v_rea #define rab$v_rrl rab$r_rop_bits0.rab$v_rrl #define rab$v_uif rab$r_rop_bits0.rab$v_uif #define rab$v_mas rab$r_rop_bits0.rab$v_mas #define rab$v_fdl rab$r_rop_bits0.rab$v_fdl #define rab$v_rev rab$r_rop_bits0.rab$v_rev #define rab$v_eof rab$r_rop_bits0.rab$v_eof #define rab$v_rah rab$r_rop_bits0.rab$v_rah #define rab$v_wbh rab$r_rop_bits0.rab$v_wbh #define rab$v_bio rab$r_rop_bits0.rab$v_bio #define rab$v_cdk rab$r_rop_bits0.rab$v_cdk #define rab$v_loa rab$r_rop_bits0.rab$v_loa #define rab$v_lim rab$r_rop_bits0.rab$v_lim #define rab$v_syncsts rab$r_rop_bits0.rab$v_syncsts #define rab$v_loc rab$r_rop_bits0.rab$v_loc #define rab$v_wat rab$r_rop_bits0.rab$v_wat #define rab$v_ulk rab$r_rop_bits0.rab$v_ulk #define rab$v_rlk rab$r_rop_bits0.rab$v_rlk #define rab$v_nlk rab$r_rop_bits0.rab$v_nlk #define rab$v_kge rab$r_rop_bits0.rab$v_kge #define rab$v_kgt rab$r_rop_bits0.rab$v_kgt #define rab$v_nxr rab$r_rop_bits0.rab$v_nxr #define rab$v_rne rab$r_rop_bits0.rab$v_rne #define rab$v_tmo rab$r_rop_bits0.rab$v_tmo #define rab$v_cvt rab$r_rop_bits0.rab$v_cvt #define rab$v_rnf rab$r_rop_bits0.rab$v_rnf #define rab$v_eto rab$r_rop_bits0.rab$v_eto #define rab$v_pta rab$r_rop_bits0.rab$v_pta #define rab$v_pmt rab$r_rop_bits0.rab$v_pmt #define rab$v_cco rab$r_rop_bits0.rab$v_cco #define rab$r_rop_bits1 rab$r_rop_overlay.rab$r_rop_bits1 #define rab$v_eqnxt rab$r_rop_bits1.rab$v_eqnxt #define rab$v_nxt rab$r_rop_bits1.rab$v_nxt #define rab$r_rop_fields rab$r_rop_overlay.rab$r_rop_fields #define rab$b_rop1 rab$r_rop_fields.rab$b_rop1 #define rab$b_rop2 rab$r_rop_fields.rab$b_rop2 #define rab$b_rop3 rab$r_rop_fields.rab$b_rop3 #define rab$l_stv rab$r_stv_overlay.rab$l_stv #define rab$r_stv_fields rab$r_stv_overlay.rab$r_stv_fields #define rab$w_stv0 rab$r_stv_fields.rab$w_stv0 #define rab$w_stv2 rab$r_stv_fields.rab$w_stv2 #define rab$w_rfa rab$r_rfa_overlay.rab$w_rfa #define rab$r_rfa_fields rab$r_rfa_overlay.rab$r_rfa_fields #define rab$l_rfa0 rab$r_rfa_fields.rab$l_rfa0 #define rab$w_rfa4 rab$r_rfa_fields.rab$w_rfa4 #define rab$w_rop_2 rab$r_rop_2_overlay.rab$w_rop_2 #define rab$r_rop_2_bits0 rab$r_rop_2_overlay.rab$r_rop_2_bits0 #define rab$v_nql rab$r_rop_2_bits0.rab$v_nql #define rab$v_nodlckwt rab$r_rop_2_bits0.rab$v_nodlckwt #define rab$v_nodlckblk rab$r_rop_2_bits0.rab$v_nodlckblk #define rab$l_kbf rab$r_kbf_overlay.rab$l_kbf #define rab$l_pbf rab$r_kbf_overlay.rab$l_pbf #define rab$b_ksz rab$r_ksz_overlay.rab$b_ksz #define rab$b_psz rab$r_ksz_overlay.rab$b_psz #define rab$l_bkt rab$r_bkt_overlay.rab$l_bkt #define rab$l_dct rab$r_bkt_overlay.rab$l_dct #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif struct rabdef { #pragma __nomember_alignment unsigned char rab$b_bid; /* block id */ unsigned char rab$b_bln; /* block length */ __union { unsigned short int rab$w_isi; /* internal stream index */ /* (ifi in fab) */ __struct { unsigned rabdef$$_fill_1 : 6; /* move to bit 6 */ unsigned rab$v_ppf_rat : 8; /* rat value for process-permanent files */ unsigned rab$v_ppf_ind : 1; /* indirect access to process-permanent file */ /* (i.e., restricted operations) */ unsigned rab$v_ppisi : 1; /* indicates that this is process-permanent stream */ } rab$r_isi_bits; } rab$r_isi_overlay; __union { unsigned int rab$l_rop; /* record options */ __struct { unsigned rab$v_asy : 1; /* asynchronous operations */ unsigned rab$v_tpt : 1; /* truncate put - allow sequential put not at */ /* eof, thus truncating file (seq. org only) */ /* */ /* these next two should be in the byte for bits */ /* input to $find or $get, but there is no room there */ /* */ unsigned rab$v_rea : 1; /* lock record for read only, allow other readers */ unsigned rab$v_rrl : 1; /* read record regardless of lock */ /* */ unsigned rab$v_uif : 1; /* update if existent */ unsigned rab$v_mas : 1; /* mass-insert mode */ unsigned rab$v_fdl : 1; /* fast record deletion */ unsigned rab$v_rev : 1; /* reverse-search - can only be set with NXT or EQNXT */ /* */ unsigned rab$v_eof : 1; /* connect to eof */ unsigned rab$v_rah : 1; /* read ahead */ unsigned rab$v_wbh : 1; /* write behind */ unsigned rab$v_bio : 1; /* connect for bio only */ unsigned rab$v_cdk : 1; /* check for duplicate keys on $GET */ unsigned rab$v_loa : 1; /* use bucket fill percentage */ unsigned rab$v_lim : 1; /* compare for key limit reached on $get/$find seq. (idx only) */ unsigned rab$v_syncsts : 1; /* Synchronous status notification for asynchronous routines. */ /* */ /* the following bits are input to */ /* $find or $get, (see above also REA and RRL) */ /* (separate byte) */ /* */ unsigned rab$v_loc : 1; /* use locate mode */ unsigned rab$v_wat : 1; /* wait if record not available */ unsigned rab$v_ulk : 1; /* manual unlocking */ unsigned rab$v_rlk : 1; /* allow readers for this locked record */ unsigned rab$v_nlk : 1; /* do not lock record */ unsigned rab$v_kge : 1; /* key > or = */ unsigned rab$v_kgt : 1; /* key greater than */ unsigned rab$v_nxr : 1; /* get non-existent record */ /* */ /* the following bits are terminal qualifiers only */ /* (separate byte) */ /* */ unsigned rab$v_rne : 1; /* read no echo */ unsigned rab$v_tmo : 1; /* use time-out period */ unsigned rab$v_cvt : 1; /* convert to upper case */ unsigned rab$v_rnf : 1; /* read no filter */ unsigned rab$v_eto : 1; /* extended terminal operation */ unsigned rab$v_pta : 1; /* purge type ahead */ unsigned rab$v_pmt : 1; /* use prompt buffer */ unsigned rab$v_cco : 1; /* cancel control o on output */ } rab$r_rop_bits0; __struct { unsigned rabdef$$_fill_6 : 21; unsigned rab$v_eqnxt : 1; /* Synonyms for KGE and */ unsigned rab$v_nxt : 1; /* KGT */ unsigned rab$v_fill_3_ : 1; } rab$r_rop_bits1; /* the following bits may be */ /* input to various rab-related */ /* operations */ /* */ __struct { char rabdef$$_fill_3; unsigned char rab$b_rop1; /* various options */ unsigned char rab$b_rop2; /* get/find options (use of this field discouraged */ /* due to REA and RRL being in a different byte) */ unsigned char rab$b_rop3; /* terminal read options */ /* */ } rab$r_rop_fields; } rab$r_rop_overlay; unsigned int rab$l_sts; /* status */ __union { unsigned int rab$l_stv; /* status value */ __struct { unsigned short int rab$w_stv0; /* low word of stv */ unsigned short int rab$w_stv2; /* high word of stv */ } rab$r_stv_fields; } rab$r_stv_overlay; __union { unsigned short int rab$w_rfa [3]; /* record's file address */ __struct { unsigned int rab$l_rfa0; unsigned short int rab$w_rfa4; } rab$r_rfa_fields; } rab$r_rfa_overlay; short int rabdef$$_fill_4; /* (reserved - rms release 1 optimizes stores */ /* to the rfa field to be a move quad, overwriting */ /* this reserved word) */ unsigned int rab$l_ctx; /* user context */ /*-----***** */ __union { /* */ unsigned short int rab$w_rop_2; /* extension to record options in traditional RAB */ __struct { unsigned rab$v_nql : 1; /* no query locking (record level) */ unsigned rab$v_nodlckwt : 1; /* no deadlock wait */ unsigned rab$v_nodlckblk : 1; /* no deadlock blocking */ unsigned rabdef$$_fill_5 : 13; /* reserved for future development */ } rab$r_rop_2_bits0; } rab$r_rop_2_overlay; unsigned char rab$b_rac; /* record access */ unsigned char rab$b_tmo; /* time-out period */ unsigned short int rab$w_usz; /* user buffer size */ unsigned short int rab$w_rsz; /* record buffer size */ char *rab$l_ubf; /* user buffer address */ char *rab$l_rbf; /* record buffer address */ char *rab$l_rhb; /* record header buffer addr */ __union { char *rab$l_kbf; /* key buffer address */ char *rab$l_pbf; /* prompt buffer addr */ } rab$r_kbf_overlay; __union { unsigned char rab$b_ksz; /* key buffer size */ unsigned char rab$b_psz; /* prompt buffer size */ } rab$r_ksz_overlay; unsigned char rab$b_krf; /* key of reference */ char rab$b_mbf; /* multi-buffer count */ unsigned char rab$b_mbc; /* multi-block count */ __union { unsigned int rab$l_bkt; /* bucket hash code, vbn, or rrn */ unsigned int rab$l_dct; /* duplicates count on key accessed on alternate key */ } rab$r_bkt_overlay; struct fabdef *rab$l_fab; /* related fab for connect */ void *rab$l_xab; /* XAB address */ } ; #if !defined(__VAXC) #define rab$w_isi rab$r_isi_overlay.rab$w_isi #define rab$v_ppf_rat rab$r_isi_overlay.rab$r_isi_bits.rab$v_ppf_rat #define rab$v_ppf_ind rab$r_isi_overlay.rab$r_isi_bits.rab$v_ppf_ind #define rab$v_ppisi rab$r_isi_overlay.rab$r_isi_bits.rab$v_ppisi #define rab$l_rop rab$r_rop_overlay.rab$l_rop #define rab$v_asy rab$r_rop_overlay.rab$r_rop_bits0.rab$v_asy #define rab$v_tpt rab$r_rop_overlay.rab$r_rop_bits0.rab$v_tpt #define rab$v_rea rab$r_rop_overlay.rab$r_rop_bits0.rab$v_rea #define rab$v_rrl rab$r_rop_overlay.rab$r_rop_bits0.rab$v_rrl #define rab$v_uif rab$r_rop_overlay.rab$r_rop_bits0.rab$v_uif #define rab$v_mas rab$r_rop_overlay.rab$r_rop_bits0.rab$v_mas #define rab$v_fdl rab$r_rop_overlay.rab$r_rop_bits0.rab$v_fdl #define rab$v_rev rab$r_rop_overlay.rab$r_rop_bits0.rab$v_rev #define rab$v_eof rab$r_rop_overlay.rab$r_rop_bits0.rab$v_eof #define rab$v_rah rab$r_rop_overlay.rab$r_rop_bits0.rab$v_rah #define rab$v_wbh rab$r_rop_overlay.rab$r_rop_bits0.rab$v_wbh #define rab$v_bio rab$r_rop_overlay.rab$r_rop_bits0.rab$v_bio #define rab$v_cdk rab$r_rop_overlay.rab$r_rop_bits0.rab$v_cdk #define rab$v_loa rab$r_rop_overlay.rab$r_rop_bits0.rab$v_loa #define rab$v_lim rab$r_rop_overlay.rab$r_rop_bits0.rab$v_lim #define rab$v_syncsts rab$r_rop_overlay.rab$r_rop_bits0.rab$v_syncsts #define rab$v_loc rab$r_rop_overlay.rab$r_rop_bits0.rab$v_loc #define rab$v_wat rab$r_rop_overlay.rab$r_rop_bits0.rab$v_wat #define rab$v_ulk rab$r_rop_overlay.rab$r_rop_bits0.rab$v_ulk #define rab$v_rlk rab$r_rop_overlay.rab$r_rop_bits0.rab$v_rlk #define rab$v_nlk rab$r_rop_overlay.rab$r_rop_bits0.rab$v_nlk #define rab$v_kge rab$r_rop_overlay.rab$r_rop_bits0.rab$v_kge #define rab$v_kgt rab$r_rop_overlay.rab$r_rop_bits0.rab$v_kgt #define rab$v_nxr rab$r_rop_overlay.rab$r_rop_bits0.rab$v_nxr #define rab$v_rne rab$r_rop_overlay.rab$r_rop_bits0.rab$v_rne #define rab$v_tmo rab$r_rop_overlay.rab$r_rop_bits0.rab$v_tmo #define rab$v_cvt rab$r_rop_overlay.rab$r_rop_bits0.rab$v_cvt #define rab$v_rnf rab$r_rop_overlay.rab$r_rop_bits0.rab$v_rnf #define rab$v_eto rab$r_rop_overlay.rab$r_rop_bits0.rab$v_eto #define rab$v_pta rab$r_rop_overlay.rab$r_rop_bits0.rab$v_pta #define rab$v_pmt rab$r_rop_overlay.rab$r_rop_bits0.rab$v_pmt #define rab$v_cco rab$r_rop_overlay.rab$r_rop_bits0.rab$v_cco #define rab$v_eqnxt rab$r_rop_overlay.rab$r_rop_bits1.rab$v_eqnxt #define rab$v_nxt rab$r_rop_overlay.rab$r_rop_bits1.rab$v_nxt #define rab$b_rop1 rab$r_rop_overlay.rab$r_rop_fields.rab$b_rop1 #define rab$b_rop2 rab$r_rop_overlay.rab$r_rop_fields.rab$b_rop2 #define rab$b_rop3 rab$r_rop_overlay.rab$r_rop_fields.rab$b_rop3 #define rab$l_stv rab$r_stv_overlay.rab$l_stv #define rab$w_stv0 rab$r_stv_overlay.rab$r_stv_fields.rab$w_stv0 #define rab$w_stv2 rab$r_stv_overlay.rab$r_stv_fields.rab$w_stv2 #define rab$w_rfa rab$r_rfa_overlay.rab$w_rfa #define rab$l_rfa0 rab$r_rfa_overlay.rab$r_rfa_fields.rab$l_rfa0 #define rab$w_rfa4 rab$r_rfa_overlay.rab$r_rfa_fields.rab$w_rfa4 #define rab$w_rop_2 rab$r_rop_2_overlay.rab$w_rop_2 #define rab$v_nql rab$r_rop_2_overlay.rab$r_rop_2_bits0.rab$v_nql #define rab$v_nodlckwt rab$r_rop_2_overlay.rab$r_rop_2_bits0.rab$v_nodlckwt #define rab$v_nodlckblk rab$r_rop_2_overlay.rab$r_rop_2_bits0.rab$v_nodlckblk #define rab$l_kbf rab$r_kbf_overlay.rab$l_kbf #define rab$l_pbf rab$r_kbf_overlay.rab$l_pbf #define rab$b_ksz rab$r_ksz_overlay.rab$b_ksz #define rab$b_psz rab$r_ksz_overlay.rab$b_psz #define rab$l_bkt rab$r_bkt_overlay.rab$l_bkt #define rab$l_dct rab$r_bkt_overlay.rab$l_dct #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* end of traditional 32-bit rab */ #define RAB$K_BLN 68 /* length of traditional 32-bit rab */ #define RAB$C_BLN 68 /* length of traditional 32-bit rab */ /* These are traditional macros that should be hand-maintained for compatibility */ /* Do not have to add new ones, but do have to maintain those that are here already. */ #define RAB$V_PPF_RAT 6 /* rat value for process-permanent files */ #define RAB$S_PPF_RAT 8 #define RAB$V_PPF_IND 14 /* indirect access to process-permanent file */ #define RAB$V_ASY 0 /* asynchronous operations */ #define RAB$V_TPT 1 /* truncate-on-put - allow sequential put not at eof */ #define RAB$V_REA 2 /* lock record for read only, allow other readers */ #define RAB$V_RRL 3 /* read record regardless of lock */ #define RAB$V_UIF 4 /* update if existent */ #define RAB$V_MAS 5 /* mass-insert mode */ #define RAB$V_FDL 6 /* fast record deletion */ #define RAB$V_REV 7 /* reverse-search */ #define RAB$V_EOF 8 /* connect to end-of-file */ #define RAB$V_RAH 9 /* read ahead */ #define RAB$V_WBH 10 /* write behind */ #define RAB$V_BIO 11 /* connect for block I/O only */ #define RAB$V_CDK 12 /* check for duplicate keys on $GET */ #define RAB$V_LOA 13 /* load buckets according to the file size */ #define RAB$V_LIM 14 /* compare for key limit reached on $get/$find seq.(idx only) */ #define RAB$V_SYNCSTS 15 /* Synchronous status notification for asynchronous routines. */ #define RAB$V_LOC 16 /* use locate mode */ #define RAB$V_WAT 17 /* wait if record not available */ #define RAB$V_ULK 18 /* manual unlocking */ #define RAB$V_RLK 19 /* allow readers for this locked record */ #define RAB$V_NLK 20 /* do not lock record */ #define RAB$V_KGE 21 /* key is greater than or equal to */ #define RAB$V_KGT 22 /* key is greater than */ #define RAB$V_NXR 23 /* non-existent record processing */ #define RAB$V_RNE 24 /* read no echo */ #define RAB$V_TMO 25 /* use time-out period */ #define RAB$V_CVT 26 /* convert to upper case */ #define RAB$V_RNF 27 /* read no filter */ #define RAB$V_ETO 28 /* extended terminal operation */ #define RAB$V_PTA 29 /* purge type ahead */ #define RAB$V_PMT 30 /* use prompt buffer */ #define RAB$V_CCO 31 /* cancel control O on output */ #define RAB$V_EQNXT 21 /* Synonym for KGE */ #define RAB$V_NXT 22 /* Synonym for KGT */ #ifdef __NEW_STARLET #define RAB _rabdef #else #define RAB rabdef #endif #define cc$rms_rab (*decc$ga_rms_rab) #if defined(__DECC) || defined(__DECCXX) # pragma extern_model __save # pragma extern_model strict_refdef extern struct RAB cc$rms_rab; /* Declare initialized prototype data structures */ # pragma extern_model __restore #else globalref struct RAB cc$rms_rab; /* Declare initialized prototype data structures */ #endif /* */ /* 64-bit variant of the record access block (rab) definitions */ /* */ /* The 64-bit rab consists of the traditional 32-bit rab */ /* followed by additional cells, added mainly to provide */ /* support for a 64-bit address for user buffers (UBF, RBF, */ /* KBF, RHB). */ /* */ /* */ #define RAB64$C_BID 1 /* code for rab */ #define RAB64$M_PPF_RAT 0x3FC0 #define RAB64$M_PPF_IND 0x4000 #define RAB64$M_PPISI 0x8000 #define RAB64$M_ASY 0x1 #define RAB64$M_TPT 0x2 #define RAB64$M_REA 0x4 #define RAB64$M_RRL 0x8 #define RAB64$M_UIF 0x10 #define RAB64$M_MAS 0x20 #define RAB64$M_FDL 0x40 #define RAB64$M_REV 0x80 #define RAB64$M_EOF 0x100 #define RAB64$M_RAH 0x200 #define RAB64$M_WBH 0x400 #define RAB64$M_BIO 0x800 #define RAB64$M_CDK 0x1000 #define RAB64$M_LOA 0x2000 #define RAB64$M_LIM 0x4000 #define RAB64$M_SYNCSTS 0x8000 #define RAB64$M_LOC 0x10000 #define RAB64$M_WAT 0x20000 #define RAB64$M_ULK 0x40000 #define RAB64$M_RLK 0x80000 #define RAB64$M_NLK 0x100000 #define RAB64$M_KGE 0x200000 #define RAB64$M_KGT 0x400000 #define RAB64$M_NXR 0x800000 #define RAB64$M_RNE 0x1000000 #define RAB64$M_TMO 0x2000000 #define RAB64$M_CVT 0x4000000 #define RAB64$M_RNF 0x8000000 #define RAB64$M_ETO 0x10000000 #define RAB64$M_PTA 0x20000000 #define RAB64$M_PMT 0x40000000 #define RAB64$M_CCO 0x80000000 #define RAB64$M_EQNXT 0x200000 #define RAB64$M_NXT 0x400000 #define RAB64$M_NQL 0x1 #define RAB64$M_NODLCKWT 0x2 #define RAB64$M_NODLCKBLK 0x4 #define RAB64$C_SEQ 0 /* sequential access */ #define RAB64$C_KEY 1 /* keyed access */ #define RAB64$C_RFA 2 /* rfa access */ #define RAB64$C_STM 3 /* stream access (valid only for sequential org) */ #define RAB64$C_MAXRAC 2 /* Maximum RAC value currently supported by RMS */ #define RAB64$M_RESERVED29 0x20000000 #define RAB64$M_RESERVED30 0x40000000 #define RAB64$M_RESERVED31 0x80000000 #define RAB$M_RESERVED29 536870912 #define RAB$M_RESERVED30 1073741824 #define RAB$M_RESERVED31 -2147483648 #ifdef __cplusplus /* Define structure prototypes */ struct _fabdef; #endif /* #ifdef __cplusplus */ #ifdef __NEW_STARLET #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _rab64def { #pragma __nomember_alignment unsigned char rab64$b_bid; /* block id */ unsigned char rab64$b_bln; /* block length */ __union { unsigned short int rab64$w_isi; /* internal stream index */ /* (ifi in fab) */ __struct { unsigned rab64def$$_fill_1 : 6; /* move to bit 6 */ unsigned rab64$v_ppf_rat : 8; /* rat value for process-permanent files */ unsigned rab64$v_ppf_ind : 1; /* indirect access to process-permanent file */ /* (i.e., restricted operations) */ unsigned rab64$v_ppisi : 1; /* indicates that this is process-permanent stream */ } rab64$r_isi_bits; } rab64$r_isi_overlay; __union { unsigned int rab64$l_rop; /* record options */ __struct { unsigned rab64$v_asy : 1; /* asynchronous operations */ unsigned rab64$v_tpt : 1; /* truncate put - allow sequential put not at */ /* eof, thus truncating file (seq. org only) */ /* */ /* these next two should be in the byte for bits */ /* input to $find or $get, but there is no room there */ /* */ unsigned rab64$v_rea : 1; /* lock record for read only, allow other readers */ unsigned rab64$v_rrl : 1; /* read record regardless of lock */ /* */ unsigned rab64$v_uif : 1; /* update if existent */ unsigned rab64$v_mas : 1; /* mass-insert mode */ unsigned rab64$v_fdl : 1; /* fast record deletion */ unsigned rab64$v_rev : 1; /* reverse-search - can only be set with NXT or EQNXT */ /* */ unsigned rab64$v_eof : 1; /* connect to eof */ unsigned rab64$v_rah : 1; /* read ahead */ unsigned rab64$v_wbh : 1; /* write behind */ unsigned rab64$v_bio : 1; /* connect for bio only */ unsigned rab64$v_cdk : 1; /* check for duplicate keys on $GET */ unsigned rab64$v_loa : 1; /* use bucket fill percentage */ unsigned rab64$v_lim : 1; /* compare for key limit reached on $get/$find seq. (idx only) */ unsigned rab64$v_syncsts : 1; /* Synchronous status notification for asynchronous routines. */ /* */ /* the following bits are input to */ /* $find or $get, (see above also REA and RRL) */ /* (separate byte) */ /* */ unsigned rab64$v_loc : 1; /* use locate mode */ unsigned rab64$v_wat : 1; /* wait if record not available */ unsigned rab64$v_ulk : 1; /* manual unlocking */ unsigned rab64$v_rlk : 1; /* allow readers for this locked record */ unsigned rab64$v_nlk : 1; /* do not lock record */ unsigned rab64$v_kge : 1; /* key > or = */ unsigned rab64$v_kgt : 1; /* key greater than */ unsigned rab64$v_nxr : 1; /* get non-existent record */ /* */ /* the following bits are terminal qualifiers only */ /* (separate byte) */ /* */ unsigned rab64$v_rne : 1; /* read no echo */ unsigned rab64$v_tmo : 1; /* use time-out period */ unsigned rab64$v_cvt : 1; /* convert to upper case */ unsigned rab64$v_rnf : 1; /* read no filter */ unsigned rab64$v_eto : 1; /* extended terminal operation */ unsigned rab64$v_pta : 1; /* purge type ahead */ unsigned rab64$v_pmt : 1; /* use prompt buffer */ unsigned rab64$v_cco : 1; /* cancel control o on output */ } rab64$r_rop_bits0; __struct { unsigned rab64def$$_fill_6 : 21; unsigned rab64$v_eqnxt : 1; /* Synonyms for KGE and */ unsigned rab64$v_nxt : 1; /* KGT */ unsigned rab64$v_fill_4_ : 1; } rab64$r_rop_bits1; /* the following bits may be */ /* input to various rab-related */ /* operations */ /* */ __struct { char rab64def$$_fill_3; unsigned char rab64$b_rop1; /* various options */ unsigned char rab64$b_rop2; /* get/find options (use of this field discouraged */ /* due to REA and RRL being in a different byte) */ unsigned char rab64$b_rop3; /* terminal read options */ /* */ } rab64$r_rop_fields; } rab64$r_rop_overlay; unsigned int rab64$l_sts; /* status */ __union { unsigned int rab64$l_stv; /* status value */ __struct { unsigned short int rab64$w_stv0; /* low word of stv */ unsigned short int rab64$w_stv2; /* high word of stv */ } rab64$r_stv_fields; } rab64$r_stv_overlay; __union { unsigned short int rab64$w_rfa [3]; /* record's file address */ __struct { unsigned int rab64$l_rfa0; unsigned short int rab64$w_rfa4; } rab64$r_rfa_fields; } rab64$r_rfa_overlay; short int rab64def$$_fill_4; /* (reserved - rms release 1 optimizes stores */ /* to the rfa field to be a move quad, overwriting */ /* this reserved word) */ unsigned int rab64$l_ctx; /* user context */ /*-----***** */ __union { /* */ unsigned short int rab64$w_rop_2; /* extension to record options in traditional RAB */ __struct { unsigned rab64$v_nql : 1; /* no query locking (record level) */ unsigned rab64$v_nodlckwt : 1; /* no deadlock wait */ unsigned rab64$v_nodlckblk : 1; /* no deadlock blocking */ unsigned rab64def$$_fill_5 : 13; /* reserved for future development */ } rab64$r_rop_2_bits0; } rab64$r_rop_2_overlay; unsigned char rab64$b_rac; /* record access */ unsigned char rab64$b_tmo; /* time-out period */ unsigned short int rab64$w_usz; /* user buffer size */ unsigned short int rab64$w_rsz; /* record buffer size */ char *rab64$l_ubf; /* user buffer address */ char *rab64$l_rbf; /* record buffer address */ char *rab64$l_rhb; /* record header buffer addr */ __union { char *rab64$l_kbf; /* key buffer address */ char *rab64$l_pbf; /* prompt buffer addr */ } rab64$r_kbf_overlay; __union { unsigned char rab64$b_ksz; /* key buffer size */ unsigned char rab64$b_psz; /* prompt buffer size */ } rab64$r_ksz_overlay; unsigned char rab64$b_krf; /* key of reference */ char rab64$b_mbf; /* multi-buffer count */ unsigned char rab64$b_mbc; /* multi-block count */ __union { unsigned int rab64$l_bkt; /* bucket hash code, vbn, or rrn */ unsigned int rab64$l_dct; /* duplicates count on key accessed on alternate key */ } rab64$r_bkt_overlay; struct _fabdef *rab64$l_fab; /* related fab for connect ~~~ struct fabdef ~~~ */ void *rab64$l_xab; /* XAB address */ __union { unsigned int rab64$l_version; /* 64-bit rab extension version */ unsigned int rab$l_version; /* 64-bit rab extension version */ __struct { unsigned short int rab64$w_verminor; /* minor version ident */ unsigned short int rab64$w_vermajor; /* major version ident */ } rab64$r_version_fields_1; __struct { unsigned short int rab$w_verminor; /* minor version ident */ unsigned short int rab$w_vermajor; /* major version ident */ } rab64$r_version_fields_2; } rab64$r_version64_overlay; __union { #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rab64$pq_ubf; /* 64-bit user buffer address */ #else unsigned __int64 rab64$pq_ubf; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rab$pq_ubf; /* 64-bit user buffer address */ #else unsigned __int64 rab$pq_ubf; #endif } rab64$r_ubf64_overlay; #pragma __nomember_alignment __union { unsigned __int64 rab64$q_usz; /* 64-bit user buffer size */ unsigned __int64 rab$q_usz; /* 64-bit user buffer size */ } rab64$r_usz64_overlay; __union { #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rab64$pq_rbf; /* 64-bit record buffer address */ #else unsigned __int64 rab64$pq_rbf; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rab$pq_rbf; /* 64-bit record buffer address */ #else unsigned __int64 rab$pq_rbf; #endif } rab64$r_rbf64_overlay; __union { unsigned __int64 rab64$q_rsz; /* 64-bit record buffer size */ unsigned __int64 rab$q_rsz; /* 64-bit record buffer size */ } rab64$r_rsz64_overlay; __union { #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rab64$pq_kbf; /* 64-bit key buffer address */ #else unsigned __int64 rab64$pq_kbf; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rab$pq_kbf; /* 64-bit key buffer address */ #else unsigned __int64 rab$pq_kbf; #endif } rab64$r_kbf64_overlay; __union { #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rab64$pq_rhb; /* 64-bit record header buffer addr */ #else unsigned __int64 rab64$pq_rhb; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rab$pq_rhb; /* 64-bit record header buffer addr */ #else unsigned __int64 rab$pq_rhb; #endif } rab64$r_rhb64_overlay; __union { unsigned __int64 rab64$q_ctx; /* 64-bit user context */ unsigned __int64 rab$q_ctx; /* 64-bit user context */ } rab64$r_ctx64_overlay; __union { unsigned int rab64$l_ropext; /* extended record options */ unsigned int rab$l_ropext; /* extended record options */ __struct { unsigned rab64def$$_fill_7_1 : 29; unsigned rab64$v_reserved29 : 1; /* MBZ - reserved for Digital */ unsigned rab64$v_reserved30 : 1; /* MBZ - reserved for Digital */ unsigned rab64$v_reserved31 : 1; /* MBZ - reserved for Digital */ } rab64$r_ropext_bits0_1; __struct { unsigned rab64def$$_fill_7_2 : 29; unsigned rab$v_reserved29 : 1; /* MBZ - reserved for Digital */ unsigned rab$v_reserved30 : 1; /* MBZ - reserved for Digital */ unsigned rab$v_reserved31 : 1; /* MBZ - reserved for Digital */ } rab64$r_ropext_bits0_2; } rab64$r_ropext_overlay_rab64; __union { unsigned int rab64$l_mbf; /* longword multi-buffer count */ unsigned int rab$l_mbf; /* longword multi-buffer count */ } rab64$r_mbf_overlay; __union { unsigned int rab64$l_mbc; /* longword multi-block count */ unsigned int rab$l_mbc; /* longword multi-block count */ } rab64$r_mbc_overlay; __union { unsigned int rab64$l_reserved_1; /* MBZ - reserved for Digital */ unsigned int rab$l_reserved_1; /* MBZ - reserved for Digital */ } rab64$r_reserved_1_overlay; } RAB64DEF; #if !defined(__VAXC) #define rab64$w_isi rab64$r_isi_overlay.rab64$w_isi #define rab64$r_isi_bits rab64$r_isi_overlay.rab64$r_isi_bits #define rab64$v_ppf_rat rab64$r_isi_bits.rab64$v_ppf_rat #define rab64$v_ppf_ind rab64$r_isi_bits.rab64$v_ppf_ind #define rab64$v_ppisi rab64$r_isi_bits.rab64$v_ppisi #define rab64$l_rop rab64$r_rop_overlay.rab64$l_rop #define rab64$r_rop_bits0 rab64$r_rop_overlay.rab64$r_rop_bits0 #define rab64$v_asy rab64$r_rop_bits0.rab64$v_asy #define rab64$v_tpt rab64$r_rop_bits0.rab64$v_tpt #define rab64$v_rea rab64$r_rop_bits0.rab64$v_rea #define rab64$v_rrl rab64$r_rop_bits0.rab64$v_rrl #define rab64$v_uif rab64$r_rop_bits0.rab64$v_uif #define rab64$v_mas rab64$r_rop_bits0.rab64$v_mas #define rab64$v_fdl rab64$r_rop_bits0.rab64$v_fdl #define rab64$v_rev rab64$r_rop_bits0.rab64$v_rev #define rab64$v_eof rab64$r_rop_bits0.rab64$v_eof #define rab64$v_rah rab64$r_rop_bits0.rab64$v_rah #define rab64$v_wbh rab64$r_rop_bits0.rab64$v_wbh #define rab64$v_bio rab64$r_rop_bits0.rab64$v_bio #define rab64$v_cdk rab64$r_rop_bits0.rab64$v_cdk #define rab64$v_loa rab64$r_rop_bits0.rab64$v_loa #define rab64$v_lim rab64$r_rop_bits0.rab64$v_lim #define rab64$v_syncsts rab64$r_rop_bits0.rab64$v_syncsts #define rab64$v_loc rab64$r_rop_bits0.rab64$v_loc #define rab64$v_wat rab64$r_rop_bits0.rab64$v_wat #define rab64$v_ulk rab64$r_rop_bits0.rab64$v_ulk #define rab64$v_rlk rab64$r_rop_bits0.rab64$v_rlk #define rab64$v_nlk rab64$r_rop_bits0.rab64$v_nlk #define rab64$v_kge rab64$r_rop_bits0.rab64$v_kge #define rab64$v_kgt rab64$r_rop_bits0.rab64$v_kgt #define rab64$v_nxr rab64$r_rop_bits0.rab64$v_nxr #define rab64$v_rne rab64$r_rop_bits0.rab64$v_rne #define rab64$v_tmo rab64$r_rop_bits0.rab64$v_tmo #define rab64$v_cvt rab64$r_rop_bits0.rab64$v_cvt #define rab64$v_rnf rab64$r_rop_bits0.rab64$v_rnf #define rab64$v_eto rab64$r_rop_bits0.rab64$v_eto #define rab64$v_pta rab64$r_rop_bits0.rab64$v_pta #define rab64$v_pmt rab64$r_rop_bits0.rab64$v_pmt #define rab64$v_cco rab64$r_rop_bits0.rab64$v_cco #define rab64$r_rop_bits1 rab64$r_rop_overlay.rab64$r_rop_bits1 #define rab64$v_eqnxt rab64$r_rop_bits1.rab64$v_eqnxt #define rab64$v_nxt rab64$r_rop_bits1.rab64$v_nxt #define rab64$r_rop_fields rab64$r_rop_overlay.rab64$r_rop_fields #define rab64$b_rop1 rab64$r_rop_fields.rab64$b_rop1 #define rab64$b_rop2 rab64$r_rop_fields.rab64$b_rop2 #define rab64$b_rop3 rab64$r_rop_fields.rab64$b_rop3 #define rab64$l_stv rab64$r_stv_overlay.rab64$l_stv #define rab64$r_stv_fields rab64$r_stv_overlay.rab64$r_stv_fields #define rab64$w_stv0 rab64$r_stv_fields.rab64$w_stv0 #define rab64$w_stv2 rab64$r_stv_fields.rab64$w_stv2 #define rab64$w_rfa rab64$r_rfa_overlay.rab64$w_rfa #define rab64$r_rfa_fields rab64$r_rfa_overlay.rab64$r_rfa_fields #define rab64$l_rfa0 rab64$r_rfa_fields.rab64$l_rfa0 #define rab64$w_rfa4 rab64$r_rfa_fields.rab64$w_rfa4 #define rab64$w_rop_2 rab64$r_rop_2_overlay.rab64$w_rop_2 #define rab64$r_rop_2_bits0 rab64$r_rop_2_overlay.rab64$r_rop_2_bits0 #define rab64$v_nql rab64$r_rop_2_bits0.rab64$v_nql #define rab64$v_nodlckwt rab64$r_rop_2_bits0.rab64$v_nodlckwt #define rab64$v_nodlckblk rab64$r_rop_2_bits0.rab64$v_nodlckblk #define rab64$l_kbf rab64$r_kbf_overlay.rab64$l_kbf #define rab64$l_pbf rab64$r_kbf_overlay.rab64$l_pbf #define rab64$b_ksz rab64$r_ksz_overlay.rab64$b_ksz #define rab64$b_psz rab64$r_ksz_overlay.rab64$b_psz #define rab64$l_bkt rab64$r_bkt_overlay.rab64$l_bkt #define rab64$l_dct rab64$r_bkt_overlay.rab64$l_dct #define rab64$l_version rab64$r_version64_overlay.rab64$l_version #define rab$l_version rab64$r_version64_overlay.rab$l_version #define rab64$r_version_fields_1 rab64$r_version64_overlay.rab64$r_version_fields_1 #define rab64$w_verminor rab64$r_version_fields_1.rab64$w_verminor #define rab64$w_vermajor rab64$r_version_fields_1.rab64$w_vermajor #define rab64$r_version_fields_2 rab64$r_version64_overlay.rab64$r_version_fields_2 #define rab$w_verminor rab64$r_version_fields_2.rab$w_verminor #define rab$w_vermajor rab64$r_version_fields_2.rab$w_vermajor #define rab64$pq_ubf rab64$r_ubf64_overlay.rab64$pq_ubf #define rab$pq_ubf rab64$r_ubf64_overlay.rab$pq_ubf #define rab64$q_usz rab64$r_usz64_overlay.rab64$q_usz #define rab$q_usz rab64$r_usz64_overlay.rab$q_usz #define rab64$pq_rbf rab64$r_rbf64_overlay.rab64$pq_rbf #define rab$pq_rbf rab64$r_rbf64_overlay.rab$pq_rbf #define rab64$q_rsz rab64$r_rsz64_overlay.rab64$q_rsz #define rab$q_rsz rab64$r_rsz64_overlay.rab$q_rsz #define rab64$pq_kbf rab64$r_kbf64_overlay.rab64$pq_kbf #define rab$pq_kbf rab64$r_kbf64_overlay.rab$pq_kbf #define rab64$pq_rhb rab64$r_rhb64_overlay.rab64$pq_rhb #define rab$pq_rhb rab64$r_rhb64_overlay.rab$pq_rhb #define rab64$q_ctx rab64$r_ctx64_overlay.rab64$q_ctx #define rab$q_ctx rab64$r_ctx64_overlay.rab$q_ctx #define rab64$l_ropext rab64$r_ropext_overlay_rab64.rab64$l_ropext #define rab$l_ropext rab64$r_ropext_overlay_rab64.rab$l_ropext #define rab64$r_ropext_bits0_1 rab64$r_ropext_overlay_rab64.rab64$r_ropext_bits0_1 #define rab64$v_reserved29 rab64$r_ropext_bits0_1.rab64$v_reserved29 #define rab64$v_reserved30 rab64$r_ropext_bits0_1.rab64$v_reserved30 #define rab64$v_reserved31 rab64$r_ropext_bits0_1.rab64$v_reserved31 #define rab64$r_ropext_bits0_2 rab64$r_ropext_overlay_rab64.rab64$r_ropext_bits0_2 #define rab$v_reserved29 rab64$r_ropext_bits0_2.rab$v_reserved29 #define rab$v_reserved30 rab64$r_ropext_bits0_2.rab$v_reserved30 #define rab$v_reserved31 rab64$r_ropext_bits0_2.rab$v_reserved31 #define rab64$l_mbf rab64$r_mbf_overlay.rab64$l_mbf #define rab$l_mbf rab64$r_mbf_overlay.rab$l_mbf #define rab64$l_mbc rab64$r_mbc_overlay.rab64$l_mbc #define rab$l_mbc rab64$r_mbc_overlay.rab$l_mbc #define rab64$l_reserved_1 rab64$r_reserved_1_overlay.rab64$l_reserved_1 #define rab$l_reserved_1 rab64$r_reserved_1_overlay.rab$l_reserved_1 #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif struct rab64def { #pragma __nomember_alignment unsigned char rab64$b_bid; /* block id */ unsigned char rab64$b_bln; /* block length */ __union { unsigned short int rab64$w_isi; /* internal stream index */ /* (ifi in fab) */ __struct { unsigned rab64def$$_fill_1 : 6; /* move to bit 6 */ unsigned rab64$v_ppf_rat : 8; /* rat value for process-permanent files */ unsigned rab64$v_ppf_ind : 1; /* indirect access to process-permanent file */ /* (i.e., restricted operations) */ unsigned rab64$v_ppisi : 1; /* indicates that this is process-permanent stream */ } rab64$r_isi_bits; } rab64$r_isi_overlay; __union { unsigned int rab64$l_rop; /* record options */ __struct { unsigned rab64$v_asy : 1; /* asynchronous operations */ unsigned rab64$v_tpt : 1; /* truncate put - allow sequential put not at */ /* eof, thus truncating file (seq. org only) */ /* */ /* these next two should be in the byte for bits */ /* input to $find or $get, but there is no room there */ /* */ unsigned rab64$v_rea : 1; /* lock record for read only, allow other readers */ unsigned rab64$v_rrl : 1; /* read record regardless of lock */ /* */ unsigned rab64$v_uif : 1; /* update if existent */ unsigned rab64$v_mas : 1; /* mass-insert mode */ unsigned rab64$v_fdl : 1; /* fast record deletion */ unsigned rab64$v_rev : 1; /* reverse-search - can only be set with NXT or EQNXT */ /* */ unsigned rab64$v_eof : 1; /* connect to eof */ unsigned rab64$v_rah : 1; /* read ahead */ unsigned rab64$v_wbh : 1; /* write behind */ unsigned rab64$v_bio : 1; /* connect for bio only */ unsigned rab64$v_cdk : 1; /* check for duplicate keys on $GET */ unsigned rab64$v_loa : 1; /* use bucket fill percentage */ unsigned rab64$v_lim : 1; /* compare for key limit reached on $get/$find seq. (idx only) */ unsigned rab64$v_syncsts : 1; /* Synchronous status notification for asynchronous routines. */ /* */ /* the following bits are input to */ /* $find or $get, (see above also REA and RRL) */ /* (separate byte) */ /* */ unsigned rab64$v_loc : 1; /* use locate mode */ unsigned rab64$v_wat : 1; /* wait if record not available */ unsigned rab64$v_ulk : 1; /* manual unlocking */ unsigned rab64$v_rlk : 1; /* allow readers for this locked record */ unsigned rab64$v_nlk : 1; /* do not lock record */ unsigned rab64$v_kge : 1; /* key > or = */ unsigned rab64$v_kgt : 1; /* key greater than */ unsigned rab64$v_nxr : 1; /* get non-existent record */ /* */ /* the following bits are terminal qualifiers only */ /* (separate byte) */ /* */ unsigned rab64$v_rne : 1; /* read no echo */ unsigned rab64$v_tmo : 1; /* use time-out period */ unsigned rab64$v_cvt : 1; /* convert to upper case */ unsigned rab64$v_rnf : 1; /* read no filter */ unsigned rab64$v_eto : 1; /* extended terminal operation */ unsigned rab64$v_pta : 1; /* purge type ahead */ unsigned rab64$v_pmt : 1; /* use prompt buffer */ unsigned rab64$v_cco : 1; /* cancel control o on output */ } rab64$r_rop_bits0; __struct { unsigned rab64def$$_fill_6 : 21; unsigned rab64$v_eqnxt : 1; /* Synonyms for KGE and */ unsigned rab64$v_nxt : 1; /* KGT */ unsigned rab64$v_fill_4_ : 1; } rab64$r_rop_bits1; /* the following bits may be */ /* input to various rab-related */ /* operations */ /* */ __struct { char rab64def$$_fill_3; unsigned char rab64$b_rop1; /* various options */ unsigned char rab64$b_rop2; /* get/find options (use of this field discouraged */ /* due to REA and RRL being in a different byte) */ unsigned char rab64$b_rop3; /* terminal read options */ /* */ } rab64$r_rop_fields; } rab64$r_rop_overlay; unsigned int rab64$l_sts; /* status */ __union { unsigned int rab64$l_stv; /* status value */ __struct { unsigned short int rab64$w_stv0; /* low word of stv */ unsigned short int rab64$w_stv2; /* high word of stv */ } rab64$r_stv_fields; } rab64$r_stv_overlay; __union { unsigned short int rab64$w_rfa [3]; /* record's file address */ __struct { unsigned int rab64$l_rfa0; unsigned short int rab64$w_rfa4; } rab64$r_rfa_fields; } rab64$r_rfa_overlay; short int rab64def$$_fill_4; /* (reserved - rms release 1 optimizes stores */ /* to the rfa field to be a move quad, overwriting */ /* this reserved word) */ unsigned int rab64$l_ctx; /* user context */ /*-----***** */ __union { /* */ unsigned short int rab64$w_rop_2; /* extension to record options in traditional RAB */ __struct { unsigned rab64$v_nql : 1; /* no query locking (record level) */ unsigned rab64$v_nodlckwt : 1; /* no deadlock wait */ unsigned rab64$v_nodlckblk : 1; /* no deadlock blocking */ unsigned rab64def$$_fill_5 : 13; /* reserved for future development */ } rab64$r_rop_2_bits0; } rab64$r_rop_2_overlay; unsigned char rab64$b_rac; /* record access */ unsigned char rab64$b_tmo; /* time-out period */ unsigned short int rab64$w_usz; /* user buffer size */ unsigned short int rab64$w_rsz; /* record buffer size */ char *rab64$l_ubf; /* user buffer address */ char *rab64$l_rbf; /* record buffer address */ char *rab64$l_rhb; /* record header buffer addr */ __union { char *rab64$l_kbf; /* key buffer address */ char *rab64$l_pbf; /* prompt buffer addr */ } rab64$r_kbf_overlay; __union { unsigned char rab64$b_ksz; /* key buffer size */ unsigned char rab64$b_psz; /* prompt buffer size */ } rab64$r_ksz_overlay; unsigned char rab64$b_krf; /* key of reference */ char rab64$b_mbf; /* multi-buffer count */ unsigned char rab64$b_mbc; /* multi-block count */ __union { unsigned int rab64$l_bkt; /* bucket hash code, vbn, or rrn */ unsigned int rab64$l_dct; /* duplicates count on key accessed on alternate key */ } rab64$r_bkt_overlay; struct fabdef *rab64$l_fab; /* related fab for connect */ void *rab64$l_xab; /* XAB address */ __union { unsigned int rab64$l_version; /* 64-bit rab extension version */ unsigned int rab$l_version; /* 64-bit rab extension version */ __struct { unsigned short int rab64$w_verminor; /* minor version ident */ unsigned short int rab64$w_vermajor; /* major version ident */ } rab64$r_version_fields_1; __struct { unsigned short int rab$w_verminor; /* minor version ident */ unsigned short int rab$w_vermajor; /* major version ident */ } rab64$r_version_fields_2; } rab64$r_version64_overlay; __union { #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned __int64 rab64$pq_ubf; /* 64-bit user buffer address */ unsigned __int64 rab$pq_ubf; /* 64-bit user buffer address */ } rab64$r_ubf64_overlay; #pragma __nomember_alignment __union { unsigned int rab64$q_usz [2]; /* 64-bit user buffer size */ unsigned int rab$q_usz [2]; /* 64-bit user buffer size */ } rab64$r_usz64_overlay; __union { unsigned __int64 rab64$pq_rbf; /* 64-bit record buffer address */ unsigned __int64 rab$pq_rbf; /* 64-bit record buffer address */ } rab64$r_rbf64_overlay; __union { unsigned int rab64$q_rsz [2]; /* 64-bit record buffer size */ unsigned int rab$q_rsz [2]; /* 64-bit record buffer size */ } rab64$r_rsz64_overlay; __union { unsigned __int64 rab64$pq_kbf; /* 64-bit key buffer address */ unsigned __int64 rab$pq_kbf; /* 64-bit key buffer address */ } rab64$r_kbf64_overlay; __union { unsigned __int64 rab64$pq_rhb; /* 64-bit record header buffer addr */ unsigned __int64 rab$pq_rhb; /* 64-bit record header buffer addr */ } rab64$r_rhb64_overlay; __union { unsigned int rab64$q_ctx [2]; /* 64-bit user context */ unsigned int rab$q_ctx [2]; /* 64-bit user context */ } rab64$r_ctx64_overlay; __union { unsigned int rab64$l_ropext; /* extended record options */ unsigned int rab$l_ropext; /* extended record options */ __struct { unsigned rab64def$$_fill_7_1 : 29; unsigned rab64$v_reserved29 : 1; /* MBZ - reserved for Digital */ unsigned rab64$v_reserved30 : 1; /* MBZ - reserved for Digital */ unsigned rab64$v_reserved31 : 1; /* MBZ - reserved for Digital */ } rab64$r_ropext_bits0_1; __struct { unsigned rab64def$$_fill_7_2 : 29; unsigned rab$v_reserved29 : 1; /* MBZ - reserved for Digital */ unsigned rab$v_reserved30 : 1; /* MBZ - reserved for Digital */ unsigned rab$v_reserved31 : 1; /* MBZ - reserved for Digital */ } rab64$r_ropext_bits0_2; } rab64$r_ropext_overlay_rab64; __union { unsigned int rab64$l_mbf; /* longword multi-buffer count */ unsigned int rab$l_mbf; /* longword multi-buffer count */ } rab64$r_mbf_overlay; __union { unsigned int rab64$l_mbc; /* longword multi-block count */ unsigned int rab$l_mbc; /* longword multi-block count */ } rab64$r_mbc_overlay; __union { unsigned int rab64$l_reserved_1; /* MBZ - reserved for Digital */ unsigned int rab$l_reserved_1; /* MBZ - reserved for Digital */ } rab64$r_reserved_1_overlay; } ; #if !defined(__VAXC) #define rab64$w_isi rab64$r_isi_overlay.rab64$w_isi #define rab64$v_ppf_rat rab64$r_isi_overlay.rab64$r_isi_bits.rab64$v_ppf_rat #define rab64$v_ppf_ind rab64$r_isi_overlay.rab64$r_isi_bits.rab64$v_ppf_ind #define rab64$v_ppisi rab64$r_isi_overlay.rab64$r_isi_bits.rab64$v_ppisi #define rab64$l_rop rab64$r_rop_overlay.rab64$l_rop #define rab64$v_asy rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_asy #define rab64$v_tpt rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_tpt #define rab64$v_rea rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_rea #define rab64$v_rrl rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_rrl #define rab64$v_uif rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_uif #define rab64$v_mas rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_mas #define rab64$v_fdl rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_fdl #define rab64$v_rev rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_rev #define rab64$v_eof rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_eof #define rab64$v_rah rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_rah #define rab64$v_wbh rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_wbh #define rab64$v_bio rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_bio #define rab64$v_cdk rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_cdk #define rab64$v_loa rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_loa #define rab64$v_lim rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_lim #define rab64$v_syncsts rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_syncsts #define rab64$v_loc rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_loc #define rab64$v_wat rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_wat #define rab64$v_ulk rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_ulk #define rab64$v_rlk rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_rlk #define rab64$v_nlk rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_nlk #define rab64$v_kge rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_kge #define rab64$v_kgt rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_kgt #define rab64$v_nxr rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_nxr #define rab64$v_rne rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_rne #define rab64$v_tmo rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_tmo #define rab64$v_cvt rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_cvt #define rab64$v_rnf rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_rnf #define rab64$v_eto rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_eto #define rab64$v_pta rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_pta #define rab64$v_pmt rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_pmt #define rab64$v_cco rab64$r_rop_overlay.rab64$r_rop_bits0.rab64$v_cco #define rab64$v_eqnxt rab64$r_rop_overlay.rab64$r_rop_bits1.rab64$v_eqnxt #define rab64$v_nxt rab64$r_rop_overlay.rab64$r_rop_bits1.rab64$v_nxt #define rab64$b_rop1 rab64$r_rop_overlay.rab64$r_rop_fields.rab64$b_rop1 #define rab64$b_rop2 rab64$r_rop_overlay.rab64$r_rop_fields.rab64$b_rop2 #define rab64$b_rop3 rab64$r_rop_overlay.rab64$r_rop_fields.rab64$b_rop3 #define rab64$l_stv rab64$r_stv_overlay.rab64$l_stv #define rab64$w_stv0 rab64$r_stv_overlay.rab64$r_stv_fields.rab64$w_stv0 #define rab64$w_stv2 rab64$r_stv_overlay.rab64$r_stv_fields.rab64$w_stv2 #define rab64$w_rfa rab64$r_rfa_overlay.rab64$w_rfa #define rab64$l_rfa0 rab64$r_rfa_overlay.rab64$r_rfa_fields.rab64$l_rfa0 #define rab64$w_rfa4 rab64$r_rfa_overlay.rab64$r_rfa_fields.rab64$w_rfa4 #define rab64$w_rop_2 rab64$r_rop_2_overlay.rab64$w_rop_2 #define rab64$v_nql rab64$r_rop_2_overlay.rab64$r_rop_2_bits0.rab64$v_nql #define rab64$v_nodlckwt rab64$r_rop_2_overlay.rab64$r_rop_2_bits0.rab64$v_nodlckwt #define rab64$v_nodlckblk rab64$r_rop_2_overlay.rab64$r_rop_2_bits0.rab64$v_nodlckblk #define rab64$l_kbf rab64$r_kbf_overlay.rab64$l_kbf #define rab64$l_pbf rab64$r_kbf_overlay.rab64$l_pbf #define rab64$b_ksz rab64$r_ksz_overlay.rab64$b_ksz #define rab64$b_psz rab64$r_ksz_overlay.rab64$b_psz #define rab64$l_bkt rab64$r_bkt_overlay.rab64$l_bkt #define rab64$l_dct rab64$r_bkt_overlay.rab64$l_dct #define rab64$l_version rab64$r_version64_overlay.rab64$l_version #define rab$l_version rab64$r_version64_overlay.rab$l_version #define rab64$w_verminor rab64$r_version64_overlay.rab64$r_version_fields_1.rab64$w_verminor #define rab64$w_vermajor rab64$r_version64_overlay.rab64$r_version_fields_1.rab64$w_vermajor #define rab$w_verminor rab64$r_version64_overlay.rab64$r_version_fields_2.rab$w_verminor #define rab$w_vermajor rab64$r_version64_overlay.rab64$r_version_fields_2.rab$w_vermajor #define rab64$pq_ubf rab64$r_ubf64_overlay.rab64$pq_ubf #define rab$pq_ubf rab64$r_ubf64_overlay.rab$pq_ubf #define rab64$q_usz rab64$r_usz64_overlay.rab64$q_usz #define rab$q_usz rab64$r_usz64_overlay.rab$q_usz #define rab64$pq_rbf rab64$r_rbf64_overlay.rab64$pq_rbf #define rab$pq_rbf rab64$r_rbf64_overlay.rab$pq_rbf #define rab64$q_rsz rab64$r_rsz64_overlay.rab64$q_rsz #define rab$q_rsz rab64$r_rsz64_overlay.rab$q_rsz #define rab64$pq_kbf rab64$r_kbf64_overlay.rab64$pq_kbf #define rab$pq_kbf rab64$r_kbf64_overlay.rab$pq_kbf #define rab64$pq_rhb rab64$r_rhb64_overlay.rab64$pq_rhb #define rab$pq_rhb rab64$r_rhb64_overlay.rab$pq_rhb #define rab64$q_ctx rab64$r_ctx64_overlay.rab64$q_ctx #define rab$q_ctx rab64$r_ctx64_overlay.rab$q_ctx #define rab64$l_ropext rab64$r_ropext_overlay_rab64.rab64$l_ropext #define rab$l_ropext rab64$r_ropext_overlay_rab64.rab$l_ropext #define rab64$v_reserved29 rab64$r_ropext_overlay_rab64.rab64$r_ropext_bits0_1.rab64$v_reserved29 #define rab64$v_reserved30 rab64$r_ropext_overlay_rab64.rab64$r_ropext_bits0_1.rab64$v_reserved30 #define rab64$v_reserved31 rab64$r_ropext_overlay_rab64.rab64$r_ropext_bits0_1.rab64$v_reserved31 #define rab$v_reserved29 rab64$r_ropext_overlay_rab64.rab64$r_ropext_bits0_2.rab$v_reserved29 #define rab$v_reserved30 rab64$r_ropext_overlay_rab64.rab64$r_ropext_bits0_2.rab$v_reserved30 #define rab$v_reserved31 rab64$r_ropext_overlay_rab64.rab64$r_ropext_bits0_2.rab$v_reserved31 #define rab64$l_mbf rab64$r_mbf_overlay.rab64$l_mbf #define rab$l_mbf rab64$r_mbf_overlay.rab$l_mbf #define rab64$l_mbc rab64$r_mbc_overlay.rab64$l_mbc #define rab$l_mbc rab64$r_mbc_overlay.rab$l_mbc #define rab64$l_reserved_1 rab64$r_reserved_1_overlay.rab64$l_reserved_1 #define rab$l_reserved_1 rab64$r_reserved_1_overlay.rab$l_reserved_1 #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* end of 64-bit rab variant */ #define RAB64$K_BLN64 144 /* length of 64-bit rab variant */ #define RAB64$C_BLN64 144 /* length of 64-bit rab variant */ #define RAB$K_BLN64 144 /* length of 64-bit rab variant */ #define RAB$C_BLN64 144 /* length of 64-bit rab variant */ #define RAB$K_MAXBLN 144 /* current maximum length of rab */ #define RAB$C_MAXBLN 144 /* current maximum length of rab */ /* These are traditional macros that should be hand-maintained for compatibility */ /* Do not have to add new ones, but do have to maintain those that are here already. */ #define RAB64$V_PPF_RAT 6 /* rat value for process-permanent files */ #define RAB64$S_PPF_RAT 8 #define RAB64$V_PPF_IND 14 /* indirect access to process-permanent file */ #define RAB64$V_ASY 0 /* asynchronous operations */ #define RAB64$V_TPT 1 /* truncate-on-put - allow sequential put not at eof */ #define RAB64$V_REA 2 /* lock record for read only, allow other readers */ #define RAB64$V_RRL 3 /* read record regardless of lock */ #define RAB64$V_UIF 4 /* update if existent */ #define RAB64$V_MAS 5 /* mass-insert mode */ #define RAB64$V_FDL 6 /* fast record deletion */ #define RAB64$V_REV 7 /* reverse-search */ #define RAB64$V_EOF 8 /* connect to end-of-file */ #define RAB64$V_RAH 9 /* read ahead */ #define RAB64$V_WBH 10 /* write behind */ #define RAB64$V_BIO 11 /* connect for block I/O only */ #define RAB64$V_CDK 12 /* check for duplicate keys on $GET */ #define RAB64$V_LOA 13 /* load buckets according to the file size */ #define RAB64$V_LIM 14 /* compare for key limit reached on $get/$find seq.(idx only) */ #define RAB64$V_SYNCSTS 15 /* Synchronous status notification for asynchronous routines. */ #define RAB64$V_LOC 16 /* use locate mode */ #define RAB64$V_WAT 17 /* wait if record not available */ #define RAB64$V_ULK 18 /* manual unlocking */ #define RAB64$V_RLK 19 /* allow readers for this locked record */ #define RAB64$V_NLK 20 /* do not lock record */ #define RAB64$V_KGE 21 /* key is greater than or equal to */ #define RAB64$V_KGT 22 /* key is greater than */ #define RAB64$V_NXR 23 /* non-existent record processing */ #define RAB64$V_RNE 24 /* read no echo */ #define RAB64$V_TMO 25 /* use time-out period */ #define RAB64$V_CVT 26 /* convert to upper case */ #define RAB64$V_RNF 27 /* read no filter */ #define RAB64$V_ETO 28 /* extended terminal operation */ #define RAB64$V_PTA 29 /* purge type ahead */ #define RAB64$V_PMT 30 /* use prompt buffer */ #define RAB64$V_CCO 31 /* cancel control O on output */ #define RAB64$V_EQNXT 21 /* Synonym for KGE */ #define RAB64$V_NXT 22 /* Synonym for KGT */ #ifdef __NEW_STARLET #define RAB64 _rab64def #else #define RAB64 rab64def #endif #define cc$rms_rab64 (*decc$ga_rms_rab64) #if defined(__DECC) || defined(__DECCXX) # pragma extern_model __save # pragma extern_model strict_refdef #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif extern struct RAB64 cc$rms_rab64; /* Declare initialized prototype data structures */ #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif # pragma extern_model __restore #else globalref struct RAB64 cc$rms_rab64; /* Declare initialized prototype data structures */ #endif #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __RABDEF_LOADED */