/**/ /***************************************************************************/ /** **/ /** © 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:24:52 by OpenVMS SDL EV3-3 */ /* Source: 14-NOV-2008 16:48:53 $1$DGA7274:[LIB_H.SRC]F11DEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $FH2DEF ***/ #ifndef __FH2DEF_LOADED #define __FH2DEF_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 /*+ */ /* */ /* File header definitions for Files-11 Structure Level 2 */ /* */ /*- */ #define FH2$C_LEVEL1 257 /* 401 octal = structure level 1 */ #define FH2$C_LEVEL2 512 /* 1000 octal = structure level 2 */ #define FH2$C_LEVEL5 1280 /* 2400 octal = structure level 5 */ #define FH2$M_VCC_STATE 0x700 #define FH2$M_ALM_STATE 0xC0000 #define FH2$M_WASCONTIG 0x1 #define FH2$M_NOBACKUP 0x2 #define FH2$M_WRITEBACK 0x4 #define FH2$M_READCHECK 0x8 #define FH2$M_WRITCHECK 0x10 #define FH2$M_CONTIGB 0x20 #define FH2$M_LOCKED 0x40 #define FH2$M_CONTIG 0x80 #define FH2$M_BADACL 0x800 #define FH2$M_SPOOL 0x1000 #define FH2$M_DIRECTORY 0x2000 #define FH2$M_BADBLOCK 0x4000 #define FH2$M_MARKDEL 0x8000 #define FH2$M_NOCHARGE 0x10000 #define FH2$M_ERASE 0x20000 #define FH2$M_ALM_AIP 0x40000 #define FH2$M_SHELVED 0x80000 #define FH2$M_SCRATCH 0x100000 #define FH2$M_NOMOVE 0x200000 #define FH2$M_NOSHELVABLE 0x400000 #define FH2$M_PRESHELVED 0x800000 #define FH2$M_ALM_ARCHIVED 0x80000 #define FH2$M_SHELVING_RESERVED 0x800000 #define FH2$M_ONLY_RU 0x1 #define FH2$M_RUJNL 0x2 #define FH2$M_BIJNL 0x4 #define FH2$M_AIJNL 0x8 #define FH2$M_ATJNL 0x10 #define FH2$M_NEVER_RU 0x20 #define FH2$M_JOURNAL_FILE 0x40 #define FH2$C_RU_FACILITY_RMS 1 /* RMS */ #define FH2$C_RU_FACILITY_DBMS 2 /* DBMS */ #define FH2$C_RU_FACILITY_RDB 3 /* Rdb/VMS */ #define FH2$C_RU_FACILITY_CHKPNT 4 /* Checkpoint/Restart */ #define FH2$C_MAX_LINKS 32760 /* maximum link count */ #define FH2$K_LENGTH 80 /* length of header area */ #define FH2$C_LENGTH 80 /* length of header area */ #define FH2$K_SUBSET0_LENGTH 88 /* length of header area */ #define FH2$C_SUBSET0_LENGTH 88 /* length of header area */ #define FH2$K_FULL_LENGTH 108 /* length of full header */ #define FH2$C_FULL_LENGTH 108 /* length of full header */ #define FH2$S_FH2DEF 512 /* Old size name - synonym */ typedef struct _fh2 { unsigned char fh2$b_idoffset; /* ident area offset in words */ unsigned char fh2$b_mpoffset; /* map area offset in words */ unsigned char fh2$b_acoffset; /* access control list offset in words */ unsigned char fh2$b_rsoffset; /* reserved area offset in words */ unsigned short int fh2$w_seg_num; /* file segment number */ __union { unsigned short int fh2$w_struclev; /* file structure level */ __struct { unsigned char fh2$b_strucver; /* file structure version */ unsigned char fh2$b_struclev; /* principal file structure level */ } fh2$r_struclev_fields; } fh2$r_struclev_overlay; __union { unsigned short int fh2$w_fid [3]; /* file ID */ __struct { unsigned short int fh2$w_fid_num; /* file number */ unsigned short int fh2$w_fid_seq; /* file sequence number */ __union { unsigned short int fh2$w_fid_rvn; /* relative volume number */ __struct { unsigned char fh2$b_fid_rvn; /* alternate format RVN */ unsigned char fh2$b_fid_nmx; /* alternate format file number extension */ } fh2$r_fid_rvn_fields; } fh2$r_fid_rvn_overlay; } fh2$r_fid_fields; } fh2$r_fid_overlay; __union { unsigned short int fh2$w_ext_fid [3]; /* extension file ID */ __struct { unsigned short int fh2$w_ex_fidnum; /* extension file number */ unsigned short int fh2$w_ex_fidseq; /* extension file sequence number */ __union { unsigned short int fh2$w_ex_fidrvn; /* extension relative volume number */ __struct { unsigned char fh2$b_ex_fidrvn; /* alternate format extension RVN */ unsigned char fh2$b_ex_fidnmx; /* alternate format extension file number extension */ } fh2$r_ex_fidrvn_fields; } fh2$r_ex_fidrvn_overlay; } fh2$r_ext_fid_fields; } fh2$r_ext_fid_overlay; unsigned short int fh2$w_recattr [16]; /* file record attributes */ __union { unsigned int fh2$l_filechar; /* file characteristics */ __struct { unsigned fh2$$_fill_21 : 8; /* reserved */ unsigned fh2$v_vcc_state : 3; /* VCC state bits */ unsigned fh2$$_fill_22 : 7; /* reserved */ /***********The following line is different from FH2 */ unsigned fh2$v_alm_state : 2; /* ALM state bits */ unsigned fh2$v_fill_0_ : 4; } fh2$r_filechar_chunks; __struct { unsigned fh2$v_wascontig : 1; /* file was (and should be) contiguous */ unsigned fh2$v_nobackup : 1; /* file is not to be backed up */ unsigned fh2$v_writeback : 1; /* file may be write-back cached */ unsigned fh2$v_readcheck : 1; /* verify all read operations */ unsigned fh2$v_writcheck : 1; /* verify all write operations */ unsigned fh2$v_contigb : 1; /* keep file as contiguous as possible */ unsigned fh2$v_locked : 1; /* file is deaccess locked */ unsigned fh2$v_contig : 1; /* file is contiguous */ unsigned fh2$$_fill_23 : 3; /* reserved */ unsigned fh2$v_badacl : 1; /* ACL is invalid */ unsigned fh2$v_spool : 1; /* intermediate spool file */ unsigned fh2$v_directory : 1; /* file is a directory */ unsigned fh2$v_badblock : 1; /* file contains bad blocks */ unsigned fh2$v_markdel : 1; /* file is marked for delete */ unsigned fh2$v_nocharge : 1; /* file space is not to be charged */ unsigned fh2$v_erase : 1; /* erase file contents before deletion */ /***********The following two lines are different from FCH */ unsigned fh2$v_alm_aip : 1; /* Archive in progress - ALM proj cancelled */ unsigned fh2$v_shelved : 1; /* File is shelved */ unsigned fh2$v_scratch : 1; /* Scratch Header used by movefile */ unsigned fh2$v_nomove : 1; /* Disable movefile on this file */ unsigned fh2$v_noshelvable : 1; /* File is not allowed to be shelved */ unsigned fh2$v_preshelved : 1; /* File is shelved but also kept online */ /* Note: The high 8 bits of this longword */ /* are reserved for user and CSS use. */ } fh2$r_filechar_bits; __struct { /* Overlay SHELVED bit */ unsigned fh2$$_fill_1 : 19; /* Padding */ unsigned fh2$v_alm_archived : 1; /* File archived - ALM proj cancelled */ unsigned fh2$$_fill_2 : 3; /* Padding */ unsigned fh2$v_shelving_reserved : 1; /* Original placeholder name for PRESHELVED */ } fh2$r_filechar_archived; } fh2$r_filechar_overlay; unsigned short int fh2$w_recprot; /* record protection */ unsigned char fh2$b_map_inuse; /* number of map area words in use */ unsigned char fh2$b_acc_mode; /* least privileged access mode */ __union { unsigned int fh2$l_fileowner; /* file owner UIC */ __struct { unsigned short int fh2$w_uicmember; /* UIC member number */ unsigned short int fh2$w_uicgroup; /* UIC group number */ } fh2$r_fileowner_fields; } fh2$r_fileowner_overlay; unsigned short int fh2$w_fileprot; /* file protection */ __union { unsigned short int fh2$w_backlink [3]; /* back link pointer */ __struct { unsigned short int fh2$w_bk_fidnum; /* back link file number */ unsigned short int fh2$w_bk_fidseq; /* back link file sequence number */ __union { unsigned short int fh2$w_bk_fidrvn; /* back link relative volume number */ __struct { unsigned char fh2$b_bk_fidrvn; /* alternate format back link RVN */ unsigned char fh2$b_bk_fidnmx; /* alternate format back link file number extension */ } fh2$r_bk_fidrvn_fields; } fh2$r_bk_fidrvn_overlay; } fh2$r_backlink_fields; } fh2$r_backlink_overlay; __union { unsigned char fh2$b_journal; /* journal control flags */ __struct { unsigned fh2$v_only_ru : 1; /* file is accessible only in recovery unit */ unsigned fh2$v_rujnl : 1; /* enable recovery unit journal */ unsigned fh2$v_bijnl : 1; /* enable before image journal */ unsigned fh2$v_aijnl : 1; /* enable after image journal */ unsigned fh2$v_atjnl : 1; /* enable audit trail journal */ unsigned fh2$v_never_ru : 1; /* file is never accessible in recovery unit */ unsigned fh2$v_journal_file : 1; /* this is a journal file */ unsigned fh2$v_fill_1_ : 1; } fh2$r_journal_bits; } fh2$r_journal_overlay; unsigned char fh2$b_ru_active; /* If non-zero, file has active recovery units */ /* (value is recoverable facility id number) */ /* 1-99 reserved to DEC, 100-127 reserved for */ /* CSS, 128-255 reserved for customers. */ short int fh2$w_linkcount; /* (count of links) */ unsigned int fh2$l_highwater; /* high-water mark in file */ int fh2$l_fill_6 [2]; /* reserved */ __struct { /* security classification mask */ char fh2$b_fill_5 [20]; /* see structure in $CLSDEF */ } fh2$r_class_prot; char fh2$$_fill_4 [402]; /* rest of file header */ unsigned short int fh2$w_checksum; /* file header checksum */ } FH2; #if !defined(__VAXC) #define fh2$w_struclev fh2$r_struclev_overlay.fh2$w_struclev #define fh2$b_strucver fh2$r_struclev_overlay.fh2$r_struclev_fields.fh2$b_strucver #define fh2$b_struclev fh2$r_struclev_overlay.fh2$r_struclev_fields.fh2$b_struclev #define fh2$w_fid fh2$r_fid_overlay.fh2$w_fid #define fh2$w_fid_num fh2$r_fid_overlay.fh2$r_fid_fields.fh2$w_fid_num #define fh2$w_fid_seq fh2$r_fid_overlay.fh2$r_fid_fields.fh2$w_fid_seq #define fh2$w_fid_rvn fh2$r_fid_overlay.fh2$r_fid_fields.fh2$r_fid_rvn_overlay.fh2$w_fid_rvn #define fh2$b_fid_rvn fh2$r_fid_overlay.fh2$r_fid_fields.fh2$r_fid_rvn_overlay.fh2$r_fid_rvn_fields.fh2$b_fid_rvn #define fh2$b_fid_nmx fh2$r_fid_overlay.fh2$r_fid_fields.fh2$r_fid_rvn_overlay.fh2$r_fid_rvn_fields.fh2$b_fid_nmx #define fh2$w_ext_fid fh2$r_ext_fid_overlay.fh2$w_ext_fid #define fh2$w_ex_fidnum fh2$r_ext_fid_overlay.fh2$r_ext_fid_fields.fh2$w_ex_fidnum #define fh2$w_ex_fidseq fh2$r_ext_fid_overlay.fh2$r_ext_fid_fields.fh2$w_ex_fidseq #define fh2$w_ex_fidrvn fh2$r_ext_fid_overlay.fh2$r_ext_fid_fields.fh2$r_ex_fidrvn_overlay.fh2$w_ex_fidrvn #define fh2$b_ex_fidrvn fh2$r_ext_fid_overlay.fh2$r_ext_fid_fields.fh2$r_ex_fidrvn_overlay.fh2$r_ex_fidrvn_fields.fh2$b_ex_fidrvn #define fh2$b_ex_fidnmx fh2$r_ext_fid_overlay.fh2$r_ext_fid_fields.fh2$r_ex_fidrvn_overlay.fh2$r_ex_fidrvn_fields.fh2$b_ex_fidnmx #define fh2$l_filechar fh2$r_filechar_overlay.fh2$l_filechar #define fh2$v_vcc_state fh2$r_filechar_overlay.fh2$r_filechar_chunks.fh2$v_vcc_state #define fh2$v_alm_state fh2$r_filechar_overlay.fh2$r_filechar_chunks.fh2$v_alm_state #define fh2$v_wascontig fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_wascontig #define fh2$v_nobackup fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_nobackup #define fh2$v_writeback fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_writeback #define fh2$v_readcheck fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_readcheck #define fh2$v_writcheck fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_writcheck #define fh2$v_contigb fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_contigb #define fh2$v_locked fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_locked #define fh2$v_contig fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_contig #define fh2$v_badacl fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_badacl #define fh2$v_spool fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_spool #define fh2$v_directory fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_directory #define fh2$v_badblock fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_badblock #define fh2$v_markdel fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_markdel #define fh2$v_nocharge fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_nocharge #define fh2$v_erase fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_erase #define fh2$v_alm_aip fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_alm_aip #define fh2$v_shelved fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_shelved #define fh2$v_scratch fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_scratch #define fh2$v_nomove fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_nomove #define fh2$v_noshelvable fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_noshelvable #define fh2$v_preshelved fh2$r_filechar_overlay.fh2$r_filechar_bits.fh2$v_preshelved #define fh2$v_alm_archived fh2$r_filechar_overlay.fh2$r_filechar_archived.fh2$v_alm_archived #define fh2$v_shelving_reserved fh2$r_filechar_overlay.fh2$r_filechar_archived.fh2$v_shelving_reserved #define fh2$l_fileowner fh2$r_fileowner_overlay.fh2$l_fileowner #define fh2$w_uicmember fh2$r_fileowner_overlay.fh2$r_fileowner_fields.fh2$w_uicmember #define fh2$w_uicgroup fh2$r_fileowner_overlay.fh2$r_fileowner_fields.fh2$w_uicgroup #define fh2$w_backlink fh2$r_backlink_overlay.fh2$w_backlink #define fh2$w_bk_fidnum fh2$r_backlink_overlay.fh2$r_backlink_fields.fh2$w_bk_fidnum #define fh2$w_bk_fidseq fh2$r_backlink_overlay.fh2$r_backlink_fields.fh2$w_bk_fidseq #define fh2$w_bk_fidrvn fh2$r_backlink_overlay.fh2$r_backlink_fields.fh2$r_bk_fidrvn_overlay.fh2$w_bk_fidrvn #define fh2$b_bk_fidrvn fh2$r_backlink_overlay.fh2$r_backlink_fields.fh2$r_bk_fidrvn_overlay.fh2$r_bk_fidrvn_fields.fh2$b_bk_fidrvn #define fh2$b_bk_fidnmx fh2$r_backlink_overlay.fh2$r_backlink_fields.fh2$r_bk_fidrvn_overlay.fh2$r_bk_fidrvn_fields.fh2$b_bk_fidnmx #define fh2$b_journal fh2$r_journal_overlay.fh2$b_journal #define fh2$v_only_ru fh2$r_journal_overlay.fh2$r_journal_bits.fh2$v_only_ru #define fh2$v_rujnl fh2$r_journal_overlay.fh2$r_journal_bits.fh2$v_rujnl #define fh2$v_bijnl fh2$r_journal_overlay.fh2$r_journal_bits.fh2$v_bijnl #define fh2$v_aijnl fh2$r_journal_overlay.fh2$r_journal_bits.fh2$v_aijnl #define fh2$v_atjnl fh2$r_journal_overlay.fh2$r_journal_bits.fh2$v_atjnl #define fh2$v_never_ru fh2$r_journal_overlay.fh2$r_journal_bits.fh2$v_never_ru #define fh2$v_journal_file fh2$r_journal_overlay.fh2$r_journal_bits.fh2$v_journal_file #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 /* __FH2DEF_LOADED */