/**/ /***************************************************************************/ /** **/ /** © 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 $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 */