/********************************************************************************************************************************/ /* 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 $XABCXRDEF ***/ #ifndef __XABCXRDEF_LOADED #define __XABCXRDEF_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 /* */ /* RMS Context XAB associated with the RAB */ /* $xabcxrdef */ /* */ #define XAB$C_CXR 33 /* XABCXR id code */ #define XAB$M_CXRRST 0x1 #define XAB$C_CXB_VER1 1 #define XAB$C_CXRBLEN 512 /* Length of CXRBUF (bytes) */ #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 _xabcxrdef { #pragma __nomember_alignment unsigned char xab$b_cod; /* xab id code */ unsigned char xab$b_bln; /* block length */ short int xabcxrdef$$_fill_1; /* (spare) */ void *xab$l_nxt; /* xab chain link */ /* */ /* Following in common with the CXF block, too. */ /* Do not rearrange without changing it. */ /* */ unsigned int xab$l_cxrsts; /* Status of the last record operation. */ unsigned int xab$l_cxrstv; /* Status Value of the last record operation. */ __union { unsigned int xab$l_cxrcop; /* Context Options. */ __struct { unsigned xab$v_cxrrst : 1; /* Restore file/record state - use context blk as input. */ unsigned xabcxrdef$$_fill_5 : 27; unsigned xab$v_cxrbver : 4; /* Version of Key buffer */ } xab$r_cxrcop_bits; } xab$r_cxrcop_overlay; unsigned int xab$l_cxrbkp; /* Bookkeeping bits */ unsigned short int xab$w_cxrisi; /* Internal Record Identifier */ unsigned char xab$b_cxrver; /* prologue version num. */ char xabcxrdef$$_fill_6; /* spare to longword align commonality */ unsigned int xabcxrdef$$_fill_7; /* spare */ /* */ /* Up Till now in common with XABCXF, too. */ /* */ /* */ /* The following elements are arranged such that large amounts of */ /* data can be moved at a time rather than words or bytes. Do not */ /* rearrange them without this consideration in mind. */ /* */ /* The following elements are stream dependent regardless of file org. */ /* */ unsigned char xab$b_cxrmbf; /* Multibuffer count */ unsigned char xab$b_cxrmbc; /* Multiblock count */ unsigned short int xab$w_cxrbfz; /* sz in byte of CXRBUF */ /* */ /* The following elements are necessary for saving the NRP context for */ /* Sequential and Relative files. */ /* */ unsigned int xab$l_cxrvbn; /* NRP VBN */ unsigned short int xab$w_cxroff; /* NRP offset in VBN */ unsigned short int xab$w_fill_8; /* mbz - longword align */ /* */ /* The following elements are necessary for saving the NRP context for */ /* ISAM files. */ /* */ unsigned int xab$l_cxrpos0; /* Primary Positioning RFA */ unsigned short int xab$w_cxrpos4; short int xabcxrdef$$_fill_9; /* Spare MBZ */ unsigned int xab$l_cxrcur0; /* Current Positioning RFA */ unsigned short int xab$w_cxrcur4; short int xabcxrdef$$_fill_10; /* Spare MBZ */ unsigned int xab$l_cxrsid0; /* SIDR positioning RFA */ unsigned short int xab$w_cxrsid4; short int xabcxrdef$$_fill_11; /* Spare MBZ */ unsigned short int xab$w_cxrcnt; /* SIDR array count */ unsigned char xab$b_cxrkref; /* Cur Key of Reference */ unsigned char xab$b_cxrklen; /* Length of key */ char *xab$l_cxrbuf; /* address of key buf */ unsigned int xabcxrdef$$_fill_12 [2]; /* Spares */ } XABCXRDEF; #if !defined(__VAXC) #define xab$l_cxrcop xab$r_cxrcop_overlay.xab$l_cxrcop #define xab$r_cxrcop_bits xab$r_cxrcop_overlay.xab$r_cxrcop_bits #define xab$v_cxrrst xab$r_cxrcop_bits.xab$v_cxrrst #define xab$v_cxrbver xab$r_cxrcop_bits.xab$v_cxrbver #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 xabcxrdef { #pragma __nomember_alignment unsigned char xab$b_cod; /* xab id code */ unsigned char xab$b_bln; /* block length */ short int xabcxrdef$$_fill_1; /* (spare) */ void *xab$l_nxt; /* xab chain link */ /* */ /* Following in common with the CXF block, too. */ /* Do not rearrange without changing it. */ /* */ unsigned int xab$l_cxrsts; /* Status of the last record operation. */ unsigned int xab$l_cxrstv; /* Status Value of the last record operation. */ __union { unsigned int xab$l_cxrcop; /* Context Options. */ __struct { unsigned xab$v_cxrrst : 1; /* Restore file/record state - use context blk as input. */ unsigned xabcxrdef$$_fill_5 : 27; unsigned xab$v_cxrbver : 4; /* Version of Key buffer */ } xab$r_cxrcop_bits; } xab$r_cxrcop_overlay; unsigned int xab$l_cxrbkp; /* Bookkeeping bits */ unsigned short int xab$w_cxrisi; /* Internal Record Identifier */ unsigned char xab$b_cxrver; /* prologue version num. */ char xabcxrdef$$_fill_6; /* spare to longword align commonality */ unsigned int xabcxrdef$$_fill_7; /* spare */ /* */ /* Up Till now in common with XABCXF, too. */ /* */ /* */ /* The following elements are arranged such that large amounts of */ /* data can be moved at a time rather than words or bytes. Do not */ /* rearrange them without this consideration in mind. */ /* */ /* The following elements are stream dependent regardless of file org. */ /* */ unsigned char xab$b_cxrmbf; /* Multibuffer count */ unsigned char xab$b_cxrmbc; /* Multiblock count */ unsigned short int xab$w_cxrbfz; /* sz in byte of CXRBUF */ /* */ /* The following elements are necessary for saving the NRP context for */ /* Sequential and Relative files. */ /* */ unsigned int xab$l_cxrvbn; /* NRP VBN */ unsigned short int xab$w_cxroff; /* NRP offset in VBN */ unsigned short int xab$w_fill_8; /* mbz - longword align */ /* */ /* The following elements are necessary for saving the NRP context for */ /* ISAM files. */ /* */ unsigned int xab$l_cxrpos0; /* Primary Positioning RFA */ unsigned short int xab$w_cxrpos4; short int xabcxrdef$$_fill_9; /* Spare MBZ */ unsigned int xab$l_cxrcur0; /* Current Positioning RFA */ unsigned short int xab$w_cxrcur4; short int xabcxrdef$$_fill_10; /* Spare MBZ */ unsigned int xab$l_cxrsid0; /* SIDR positioning RFA */ unsigned short int xab$w_cxrsid4; short int xabcxrdef$$_fill_11; /* Spare MBZ */ unsigned short int xab$w_cxrcnt; /* SIDR array count */ unsigned char xab$b_cxrkref; /* Cur Key of Reference */ unsigned char xab$b_cxrklen; /* Length of key */ char *xab$l_cxrbuf; /* address of key buf */ unsigned int xabcxrdef$$_fill_12 [2]; /* Spares */ } ; #if !defined(__VAXC) #define xab$l_cxrcop xab$r_cxrcop_overlay.xab$l_cxrcop #define xab$v_cxrrst xab$r_cxrcop_overlay.xab$r_cxrcop_bits.xab$v_cxrrst #define xab$v_cxrbver xab$r_cxrcop_overlay.xab$r_cxrcop_bits.xab$v_cxrbver #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* basealign on aggregate XABCXRDEF operates after aggregate end */ #define XAB$K_CXRLEN 84 /* Length of XAB type CXR */ #define XAB$C_CXRLEN 84 /* Length of XAB type CXR */ #ifdef __NEW_STARLET #define XABCXR _xabcxrdef #else #define XABCXR xabcxrdef #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 /* __XABCXRDEF_LOADED */