/**/ /***************************************************************************/ /** **/ /** © Copyright 2010, Hewlett-Packard Development Company, L.P. **/ /** **/ /** Confidential computer software. Valid license from HP and/or **/ /** its subsidiaries required for possession, use, or copying. **/ /** **/ /** Consistent with FAR 12.211 and 12.212, Commercial Computer Software, **/ /** Computer Software Documentation, and Technical Data for Commercial **/ /** Items are licensed to the U.S. Government under vendor's standard **/ /** commercial license. **/ /** **/ /** Neither HP nor any of its subsidiaries shall be liable for technical **/ /** or editorial errors or omissions contained herein. The information **/ /** in this document is provided "as is" without warranty of any kind and **/ /** is subject to change without notice. The warranties for HP products **/ /** are set forth in the express limited warranty statements accompanying **/ /** such products. Nothing herein should be construed as constituting an **/ /** additional warranty. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:26:04 by OpenVMS SDL EV3-3 */ /* Source: 09-JUN-1993 15:42:57 $1$DGA7274:[LIB_H.SRC]RMSFILSTR.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $KEYDEF ***/ #ifndef __KEYDEF_LOADED #define __KEYDEF_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 /* */ /* definitions for the key descriptors in the prologue */ /* */ /* these definitions are associated w/ the plg and area definitions */ /* */ #define KEY$M_DUPKEYS 0x1 #define KEY$M_CHGKEYS 0x2 #define KEY$M_NULKEYS 0x4 #define KEY$M_IDX_COMPR 0x8 #define KEY$M_INITIDX 0x10 #define KEY$M_KEY_COMPR 0x40 #define KEY$M_REC_COMPR 0x80 #define KEY$C_MAX_DAT 10 /* (PLG3) Maximum size of a non-compressed data */ /* record */ #define KEY$C_MAX_PRIMARY 6 /* (PLG3) Maximum size of a non-compressed */ /* primary key */ #define KEY$C_MAX_INDEX 6 /* (PLG3) Maximum size of a non-compressed */ /* index and SIDR key */ #define KEY$C_STRING 0 /* string data type */ #define KEY$C_SGNWORD 1 /* signed binary word */ #define KEY$C_UNSGNWORD 2 /* unsigned binary word */ #define KEY$C_SGNLONG 3 /* signed binary long word */ #define KEY$C_UNSGNLONG 4 /* unsigned binary long word */ #define KEY$C_PACKED 5 /* packed decimal */ #define KEY$C_SGNQUAD 6 /* signed binary quadword */ #define KEY$C_UNSGNQUAD 7 /* unsigned binary quadword */ #define KEY$C_COLLATED 8 /* collated */ #define KEY$C_MAX_ASCEND 8 /* maximum ASCENDING data type */ #define KEY$C_DSTRING 32 /* descending string data type */ #define KEY$C_DSGNWORD 33 /* " signed binary word */ #define KEY$C_DUNSGNWORD 34 /* " unsigned binary word */ #define KEY$C_DSGNLONG 35 /* " signed binary long word */ #define KEY$C_DUNSGNLONG 36 /* " unsigned binary long word */ #define KEY$C_DPACKED 37 /* " packed decimal */ #define KEY$C_DSGNQUAD 38 /* " signed binary quadword */ #define KEY$C_DUNSGNQUAD 39 /* " unsigned binary quadword */ #define KEY$C_DCOLLATED 40 /* " collated */ #define KEY$C_MAX_DATA 40 /* maximum data type value allowed */ #define KEY$K_BLN 96 /* length of key descriptor in the prologue (plg 3) */ #define KEY$C_BLN 96 /* length of key descriptor in the prologue (plg 3) */ #define KEY$C_SPARE 6 /* these are spare words in key block (plg 3) */ #define KEY$S_KEYDEF 96 /* Old size name - synonym */ typedef struct _prologue_key { unsigned int key$l_idxfl; /* vbn for next key descriptor */ unsigned short int key$w_noff; /* offset to next key descriptor */ unsigned char key$b_ianum; /* index area number */ unsigned char key$b_lanum; /* level 1 area number */ unsigned char key$b_danum; /* data area number */ unsigned char key$b_rootlev; /* root level */ unsigned char key$b_idxbktsz; /* index bucket size */ unsigned char key$b_datbktsz; /* data bucket size */ unsigned int key$l_rootvbn; /* root bucket pointer */ __union { unsigned char key$b_flags; /* flag bits */ __struct { unsigned key$v_dupkeys : 1; /* duplicate key values allowed */ unsigned key$v_chgkeys : 1; /* key value may change on $update operation */ unsigned key$v_nulkeys : 1; /* null key character enabled */ unsigned key$v_idx_compr : 1; /* index is compressed */ unsigned key$v_initidx : 1; /* index must be initialized */ unsigned key$$_fill_1 : 1; /* spare */ unsigned key$v_key_compr : 1; /* (PLG3) key is compressed in data record */ unsigned key$v_fill_8_ : 1; } key$r_flags_bits0; __struct { unsigned key$$_fill_2 : 1; /* space over dupkeys */ unsigned key$$_fill_3 : 2; /* spare */ unsigned key$$_fill_4 : 1; /* space over idx_compr */ unsigned key$$_fill_5 : 1; /* space over initidx */ unsigned key$$_fill_6 : 1; /* spare */ unsigned key$$_fill_7 : 1; /* space over key compr */ unsigned key$v_rec_compr : 1; /* (PLG3) Data record is compressed */ } key$r_flags_bits1; } key$r_flags_overlay; unsigned char key$b_datatype; /* data type for key */ unsigned char key$b_segments; /* number of segments in key */ unsigned char key$b_nullchar; /* "null" character */ unsigned char key$b_keysz; /* total key size */ unsigned char key$b_keyref; /* key of reference */ unsigned short int key$w_minrecsz; /* minimum record length */ unsigned short int key$w_idxfill; /* index fill quantity */ unsigned short int key$w_datfill; /* data fill quantity */ __union { unsigned short int key$w_position; /* key seg position */ unsigned short int key$w_position0; /* another name for position 0 */ } key$r_position_overlay; unsigned short int key$w_position1; /* position 1 */ unsigned short int key$w_position2; /* position 2 */ unsigned short int key$w_position3; /* position 3 */ unsigned short int key$w_position4; /* position 4 */ unsigned short int key$w_position5; unsigned short int key$w_position6; unsigned short int key$w_position7; __union { unsigned char key$b_size; /* key segment size */ unsigned char key$b_size0; /* another name for size */ } key$r_size_overlay; unsigned char key$b_size1; /* size 1 */ unsigned char key$b_size2; unsigned char key$b_size3; unsigned char key$b_size4; unsigned char key$b_size5; unsigned char key$b_size6; unsigned char key$b_size7; char key$t_keynam [32]; /* key name */ unsigned int key$l_ldvbn; /* first data bucket */ __union { unsigned char key$b_type; /* key segment datatype (plg 3) */ unsigned char key$b_type0; /* another name for first datatype (plg 3) */ } key$r_type_overlay; unsigned char key$b_type1; /* (plg 3) */ unsigned char key$b_type2; /* (plg 3) */ unsigned char key$b_type3; /* (plg 3) */ unsigned char key$b_type4; /* (plg 3) */ unsigned char key$b_type5; /* (plg 3) */ unsigned char key$b_type6; /* (plg 3) */ unsigned char key$b_type7; /* (plg 3) */ } PROLOGUE_KEY; #if !defined(__VAXC) #define key$b_flags key$r_flags_overlay.key$b_flags #define key$r_flags_bits0 key$r_flags_overlay.key$r_flags_bits0 #define key$v_dupkeys key$r_flags_bits0.key$v_dupkeys #define key$v_chgkeys key$r_flags_bits0.key$v_chgkeys #define key$v_nulkeys key$r_flags_bits0.key$v_nulkeys #define key$v_idx_compr key$r_flags_bits0.key$v_idx_compr #define key$v_initidx key$r_flags_bits0.key$v_initidx #define key$v_key_compr key$r_flags_bits0.key$v_key_compr #define key$r_flags_bits1 key$r_flags_overlay.key$r_flags_bits1 #define key$v_rec_compr key$r_flags_bits1.key$v_rec_compr #define key$w_position key$r_position_overlay.key$w_position #define key$w_position0 key$r_position_overlay.key$w_position0 #define key$b_size key$r_size_overlay.key$b_size #define key$b_size0 key$r_size_overlay.key$b_size0 #define key$b_type key$r_type_overlay.key$b_type #define key$b_type0 key$r_type_overlay.key$b_type0 #endif /* #if !defined(__VAXC) */ #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 /* __KEYDEF_LOADED */