/***************************************************************************/ /** **/ /** HPE CONFIDENTIAL. This software is confidential proprietary software **/ /** licensed by Hewlett-Packard Enterprise Development, LP, and is not **/ /** authorized to be used, duplicated OR disclosed to anyone without the **/ /** prior written permission of HPE. **/ /** © 2023 Copyright Hewlett-Packard Enterprise Development, LP **/ /** **/ /** VMS SOFTWARE, INC. CONFIDENTIAL. This software is confidential **/ /** proprietary software licensed by VMS Software, Inc., and is not **/ /** authorized to be used, duplicated or disclosed to anyone without **/ /** the prior written permission of VMS Software, Inc. **/ /** © 2023 Copyright VMS Software, Inc. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 9-Nov-2023 12:06:41 by OpenVMS SDL V3.7 */ /* Source: 09-JUN-1993 15:42:57 $1$DGA8345:[LIB_H.SRC]RMSFILSTR.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $IRCDEF ***/ #ifndef __IRCDEF_LOADED #define __IRCDEF_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 /* */ /* index record definition */ /* */ /* this is the definition of RMS-11/RMS-32 index file record formats */ /* */ #define IRC$M_PTRSZ 0x3 #define IRC$M_RECORDCB 0xFC #define IRC$M_DELETED 0x4 #define IRC$M_NOPTRSZ 0x10 #define IRC$M_FIRST_KEY 0x80 #define IRC$M_RRV 0x8 #define IRC$M_NODUPCNT 0x10 #define IRC$M_RU_DELETE 0x20 #define IRC$M_RU_UPDATE 0x40 #define IRC$C_IDXPTRBAS 2 /* used to determine size of pointer in index */ #define IRC$C_IDXOVHDSZ 1 /* includes record control byte */ /* */ #define IRC$S_IRCDEF 1 /* Old size name - synonym */ typedef struct _irc { __union { unsigned char irc$b_control; /* record control byte */ __struct { unsigned irc$v_ptrsz : 2; /* size of pointer */ unsigned irc$v_recordcb : 6; /* record control bits */ } irc$r_control_bits0; /* */ /* record control bits used only in primary data record and SIDR array element */ /* control bytes */ /* */ __struct { unsigned irc$$_fill_1 : 2; /* skip size of pointer field */ unsigned irc$v_deleted : 1; /* record is deleted */ unsigned irc$$_fill_2 : 1; unsigned irc$v_noptrsz : 1; /* no RRV */ unsigned irc$$_fill_3 : 2; /* skip 2 bits */ unsigned irc$v_first_key : 1; } irc$r_control_bits1; /* */ /* record control bits used only in primary data record control bytes */ /* */ __struct { unsigned irc$$_fill_3 : 3; /* skip over first 3 bits */ unsigned irc$v_rrv : 1; /* rrv record */ unsigned irc$v_fill_5_ : 4; } irc$r_control_bits2; /* */ /* record control bits used only in prologue 2 SIDR record control bytes */ /* */ __struct { unsigned irc$$_fill_5 : 4; /* skip 4 bits */ unsigned irc$v_nodupcnt : 1; /* DUP_CNT field absent */ unsigned irc$v_fill_6_ : 3; } irc$r_control_bits3; /* */ /* record control bits used only in prologue 3 RRV, UDR and SIDR record control */ /* bytes of RU journalled files. (RU_UPDATE is set only in UDR record control */ /* bytes) */ /* */ __struct { unsigned irc$$_fill_6 : 5; /* skip 5 bits */ unsigned irc$v_ru_delete : 1; /* record is RU deleted */ unsigned irc$v_ru_update : 1; /* record is RU updated */ unsigned irc$v_fill_7_ : 1; } irc$r_control_bits4; /* */ /* record control bits reserved for RMS-11 use only (these may not be re-defined */ /* except for prologue 3 records) */ /* */ /* Bit number 5 */ /* Bit number 6 */ /* */ /* */ /* index bucket record */ /* */ __struct { char irc$$_fill_7; #if defined(__VAXC) char irc$t_bucketptr[]; #else /* Warning: empty char[] member for irc$t_bucketptr at end of structure not created */ #endif /* #if defined(__VAXC) */ /* just present for consistency) */ /* data bucket record */ /* */ } irc$r_control_fields4; } irc$r_record_control; } IRC; #if !defined(__VAXC) #define irc$b_control irc$r_record_control.irc$b_control #define irc$r_control_bits0 irc$r_record_control.irc$r_control_bits0 #define irc$v_ptrsz irc$r_control_bits0.irc$v_ptrsz #define irc$v_recordcb irc$r_control_bits0.irc$v_recordcb #define irc$r_control_bits1 irc$r_record_control.irc$r_control_bits1 #define irc$v_deleted irc$r_control_bits1.irc$v_deleted #define irc$v_noptrsz irc$r_control_bits1.irc$v_noptrsz #define irc$v_first_key irc$r_control_bits1.irc$v_first_key #define irc$r_control_bits2 irc$r_record_control.irc$r_control_bits2 #define irc$v_rrv irc$r_control_bits2.irc$v_rrv #define irc$r_control_bits3 irc$r_record_control.irc$r_control_bits3 #define irc$v_nodupcnt irc$r_control_bits3.irc$v_nodupcnt #define irc$r_control_bits4 irc$r_record_control.irc$r_control_bits4 #define irc$v_ru_delete irc$r_control_bits4.irc$v_ru_delete #define irc$v_ru_update irc$r_control_bits4.irc$v_ru_update #define irc$r_control_fields4 irc$r_record_control.irc$r_control_fields4 #define irc$t_bucketptr irc$r_control_fields4.irc$t_bucketptr #endif /* #if !defined(__VAXC) */ #define IRC$S_IRCDEF1 3 /* Old size name - synonym */ typedef struct _irc1 { IRC irc$r_irc; unsigned char irc$b_id; /* record id */ unsigned char irc$b_rrv_id; /* rrv's id -- always in the same place */ /* */ /* prologue 3 data bucket record */ /* */ } IRC1; #define IRC$C_DATSZFLD 2 /* size of size field in variable length records */ #define IRC$C_DATPTRBAS 3 /* used to determine size of RRV in data buckets */ #define IRC$C_DCNTSZFLD 4 /* size of duplicate count field in Plg 2 SIDRs */ #define IRC$C_DATOVHDSZ 2 /* includes the record control byte, and the id */ #define IRC$C_FIXOVHDSZ 7 /* the record overhead for fixed record */ #define IRC$C_VAROVHDSZ 9 /* record overhead for variable records */ #define IRC$C_RRVOVHDSZ 7 /* size of RRV */ /* */ #define IRC$C_DATPTRBS3 4 /* used to determine size of RRV in data buckets */ #define IRC$C_DATOVHSZ3 3 /* record control byte, and id */ #define IRC$C_FIXOVHSZ3 9 /* record overhead for fixed length records */ #define IRC$C_VAROVHSZ3 11 /* record overhead for variable length records */ #define IRC$C_RRVOVHSZ3 9 /* size of RRV */ #define IRC$C_SDROVHSZ3 2 /* record overhead for SIDRs */ #define IRC$C_KEYCMPOVH 2 /* key compression overhead */ #define IRC$C_DATCMPOVH 3 /* data compression overhead */ #define IRC$S_IRCDEF2 5 /* Old size name - synonym */ typedef struct _irc2 { IRC irc$r_irc; unsigned short int irc$w_id; /* record id */ unsigned short int irc$w_rrv_id; /* rrv's id -- always in the same place */ /* */ /* constants */ /* */ /* prologue 3 constants */ /* */ } IRC2; #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 /* __IRCDEF_LOADED */