/**/ /***************************************************************************/ /** **/ /** © 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:25:02 by OpenVMS SDL EV3-3 */ /* Source: 14-NOV-2008 16:48:53 $1$DGA7274:[LIB_H.SRC]F11DEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $SCBDEF ***/ #ifndef __SCBDEF_LOADED #define __SCBDEF_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 /*+ */ /* */ /* Format of storage control block, Files-11 Structure Level 2 */ /* */ /*- */ #define SCB$C_LEVEL2 512 /* 1000 octal = structure level 2 */ #define SCB$C_LEVEL5 1280 /* 2400 octal = structure level 5 */ #define SCB$C_LEVEL6 1536 /* 3000 octal = structure level 6 */ #define SCB$M_MAPDIRTY 0x1 #define SCB$M_MAPALLOC 0x2 #define SCB$M_FILALLOC 0x4 #define SCB$M_QUODIRTY 0x8 #define SCB$M_HDRWRITE 0x10 #define SCB$M_CORRUPT 0x20 #define SCB$M_MAPDIRTY2 0x1 #define SCB$M_MAPALLOC2 0x2 #define SCB$M_FILALLOC2 0x4 #define SCB$M_QUODIRTY2 0x8 #define SCB$M_HDRWRITE2 0x10 #define SCB$M_CORRUPT2 0x20 #define SCB$M_NORMAL 0x1 #define SCB$M_NEW 0x2 #define SCB$M_COPYING 0x20 #define SCB$M_MERGING 0x40 #define SCB$M_MINIMRG 0x80 #define SCB$M_COPY_RESET 0x100 #define SCB$M_BOOTING 0x200 #define SCB$M_SCB_WLG 0x400 #define SCB$M_MUST_MRG 0x4000 #define SCB$M_FAILED 0x8000 #define SCB$M_CPY_RESET 0x100 #define SCB$M_WLG 0x400 #define SCB$M_MBR_FCPY 0x1 #define SCB$M_MBR_MERGE 0x2 #define SCB$M_MBR_CIP 0x4 #define SCB$M_MBR_SRC 0x20 #define SCB$M_MBR_MFCPY 0x40 #define SCB$M_MBR_VALID 0x80 #define SCB$M_INIT_NO_ERASE 0x1 #define SCB$M_DVE_ENABLED 0x2 #define SCB$M_HBVS_MEMBERS_MAY_DIFFER 0x4 #define SCB$K_LENGTH 512 /*Length of Structure */ #define SCB$C_LENGTH 512 /*Length of Structure */ typedef struct _scbdef { __union { unsigned short int scb$w_struclev; /* file structure level */ __struct { unsigned char scb$b_strucver; /* file structure version */ unsigned char scb$b_struclev; /* principal file structure level */ } scb$r_struclev_fields; } scb$r_struclev_overlay; unsigned short int scb$w_cluster; /* storage map cluster factor */ unsigned int scb$l_volsize; /* volume size in logical blocks */ unsigned int scb$l_blksize; /* number of physical blocks per logical block */ unsigned int scb$l_sectors; /* number of sectors per track */ unsigned int scb$l_tracks; /* number of tracks per cylinder */ unsigned int scb$l_cylinder; /* number of cylinders */ __union { unsigned int scb$l_status; /* volume status flags */ __struct { unsigned scb$v_mapdirty : 1; /* storage map is dirty (partially updated) */ unsigned scb$v_mapalloc : 1; /* storage map is preallocated (lost blocks) */ unsigned scb$v_filalloc : 1; /* file numbers are preallocated (lost header slots) */ unsigned scb$v_quodirty : 1; /* quota file is dirty (partially updated) */ unsigned scb$v_hdrwrite : 1; /* file headers are write back cached */ unsigned scb$v_corrupt : 1; /* file structure is corrupt */ unsigned scb$v_fill_9_ : 2; } scb$r_status_bits; } scb$r_status_overlay; __union { unsigned int scb$l_status2; /* backup status - bits must match those above */ __struct { unsigned scb$v_mapdirty2 : 1; /* storage map is dirty (partially updated) */ unsigned scb$v_mapalloc2 : 1; /* storage map is preallocated (lost blocks) */ unsigned scb$v_filalloc2 : 1; /* file numbers are preallocated (lost header slots) */ unsigned scb$v_quodirty2 : 1; /* quota file is dirty (partially updated) */ unsigned scb$v_hdrwrite2 : 1; /* file headers are write back cached */ unsigned scb$v_corrupt2 : 1; /* file structure is corrupt */ unsigned scb$v_fill_10_ : 2; } scb$r_status2_bits; } scb$r_status2_overlay; unsigned short int scb$w_writecnt; /* count of write access mounters. */ char scb$t_volockname [12]; /* name used for file system serialization on volume. */ unsigned __int64 scb$q_mounttime; /* time of last initial mount. */ unsigned short int scb$w_backrev; /* BACKUP revision number. */ unsigned __int64 scb$q_genernum; /* shadow set revision number. */ unsigned __int64 scb$q_unit_id; /* Virtual Unit specifier */ __union { unsigned short int scb$w_shadow_status; /* Volume status: */ unsigned short int scb$w_status; /* Duplicate pointer to status */ __struct { unsigned scb$v_normal : 1; /* Shadow set populated and online */ unsigned scb$v_new : 1; /* Newly created, no members yet */ unsigned scb$v_filler_sts_1 : 3; /* */ unsigned scb$v_copying : 1; /* Copy State */ unsigned scb$v_merging : 1; /* Merge State */ unsigned scb$v_minimrg : 1; /* Mini Merge in progress */ unsigned scb$v_copy_reset : 1; /* Reset Shadow Server Copy mode */ unsigned scb$v_booting : 1; /* System Disk shadow set in booting state */ unsigned scb$v_scb_wlg : 1; /* Write Logging Phase 1 enabled */ unsigned scb$v_filler_sts_2 : 3; /* Reserved */ unsigned scb$v_must_mrg : 1; /* This set requires a full merge */ unsigned scb$v_failed : 1; /* Shadow set not populated */ } scb$r_shadow_status_bits; __struct { unsigned scb$v_filler_rfb1 : 8; unsigned scb$v_cpy_reset : 1; /* Copy mode is reset */ unsigned scb$v_filler_rfb2 : 1; unsigned scb$v_wlg : 1; /* Write logging */ unsigned scb$v_filler_rfb3 : 5; } scb$r_status_bits_ing; } scb$r_shadow_status_overlay; __union { unsigned char scb$b_member_status; /* Member status bytes */ __struct { unsigned scb$v_mbr_fcpy : 1; /* Member involved in copy */ unsigned scb$v_mbr_merge : 1; /* Member requires a merge */ unsigned scb$v_mbr_cip : 1; /* Copy (or merge) in progress on this SSM */ unsigned scb$v_spare_mbr_status3 : 1; /* Reserved */ unsigned scb$v_spare_mbr_status4 : 1; /* Reserved */ unsigned scb$v_mbr_src : 1; /* Member can be used as a source member */ unsigned scb$v_mbr_mfcpy : 1; /* Minimum copy target member */ unsigned scb$v_mbr_valid : 1; /* SSM status information is valid */ } scb$r_member_status_bits; } scb$r_member_status_overlay [3]; char scb$b_filler_jja [1]; /* Reserved for alignment */ unsigned short int scb$w_scb_mbz; /* Historically cleared by UPDATE_DISKS */ unsigned __int64 scb$q_member_ids [3]; /* Unit ID for member */ unsigned int scb$l_scb_lbn; /* Unit Control Block for VU */ unsigned char scb$b_devices; /* Number of devices in SS */ unsigned char scb$b_members; /* Number of source members */ unsigned char scb$b_mast_indx; /* Array index to Master SSM */ unsigned char scb$b_mrg_targets; /* Active Merge Targets */ unsigned char scb$b_fc_targets; /* Active Copy Targets */ unsigned char scb$b_decram_mbrs; /* Number of DECram devices */ char scb$b_filler_jja1 [10]; /* Reserved for alignment */ unsigned __int64 scb$q_mbz_v731_placeholder; /* WHL_FILE_START quadword unsigned; was the old name */ /* N.B. The low longword of this cell MUST remain */ /* defined to prevent latent (HSG80MM) support */ /* that shipped in MOUNT96 for V73-1 from making */ /* the wrong decision */ unsigned __int64 scb$q_hbvs_write_count; /* Count of systems that have set enabled for write */ unsigned int scb$l_valblk_offset; /* Offset for MOS VALBLK */ unsigned __int64 scb$q_consistency_timestamp; /* HBVS - SYSTIME value when a multiple member virtual unit */ /* is considered to be in that state */ unsigned __int64 scb$q_hbmc_original_gn; /* Mini Copy initial Generation Number */ __union { unsigned char scb$b_xmember_status; /* XMBRS Project */ } scb$r_xmember_status_overlay [16]; unsigned __int64 scb$q_xmember_ids [16]; char scb$b_reserved [204]; /* reserved */ __union { unsigned short int scb$w_shadowing_status; /* Volume status: */ __struct { unsigned scb$v_init_no_erase : 1; /* Shadow set created without INIT /ERASE */ unsigned scb$v_dve_enabled : 1; /* Volume is DVE capable */ unsigned scb$v_hbvs_members_may_differ : 1; /* HBVS virtual unit VOLSIZE has been increased */ unsigned scb$v_filler_shadowing : 13; /* Reserved */ } scb$r_shadowing_status_bits; } scb$r_shadowing_status_overlay; unsigned short int scb$w_checksum; /* block checksum */ } SCBDEF; #if !defined(__VAXC) #define scb$w_struclev scb$r_struclev_overlay.scb$w_struclev #define scb$b_strucver scb$r_struclev_overlay.scb$r_struclev_fields.scb$b_strucver #define scb$b_struclev scb$r_struclev_overlay.scb$r_struclev_fields.scb$b_struclev #define scb$l_status scb$r_status_overlay.scb$l_status #define scb$v_mapdirty scb$r_status_overlay.scb$r_status_bits.scb$v_mapdirty #define scb$v_mapalloc scb$r_status_overlay.scb$r_status_bits.scb$v_mapalloc #define scb$v_filalloc scb$r_status_overlay.scb$r_status_bits.scb$v_filalloc #define scb$v_quodirty scb$r_status_overlay.scb$r_status_bits.scb$v_quodirty #define scb$v_hdrwrite scb$r_status_overlay.scb$r_status_bits.scb$v_hdrwrite #define scb$v_corrupt scb$r_status_overlay.scb$r_status_bits.scb$v_corrupt #define scb$l_status2 scb$r_status2_overlay.scb$l_status2 #define scb$v_mapdirty2 scb$r_status2_overlay.scb$r_status2_bits.scb$v_mapdirty2 #define scb$v_mapalloc2 scb$r_status2_overlay.scb$r_status2_bits.scb$v_mapalloc2 #define scb$v_filalloc2 scb$r_status2_overlay.scb$r_status2_bits.scb$v_filalloc2 #define scb$v_quodirty2 scb$r_status2_overlay.scb$r_status2_bits.scb$v_quodirty2 #define scb$v_hdrwrite2 scb$r_status2_overlay.scb$r_status2_bits.scb$v_hdrwrite2 #define scb$v_corrupt2 scb$r_status2_overlay.scb$r_status2_bits.scb$v_corrupt2 #define scb$w_shadow_status scb$r_shadow_status_overlay.scb$w_shadow_status #define scb$w_status scb$r_shadow_status_overlay.scb$w_status #define scb$v_normal scb$r_shadow_status_overlay.scb$r_shadow_status_bits.scb$v_normal #define scb$v_new scb$r_shadow_status_overlay.scb$r_shadow_status_bits.scb$v_new #define scb$v_copying scb$r_shadow_status_overlay.scb$r_shadow_status_bits.scb$v_copying #define scb$v_merging scb$r_shadow_status_overlay.scb$r_shadow_status_bits.scb$v_merging #define scb$v_minimrg scb$r_shadow_status_overlay.scb$r_shadow_status_bits.scb$v_minimrg #define scb$v_copy_reset scb$r_shadow_status_overlay.scb$r_shadow_status_bits.scb$v_copy_reset #define scb$v_booting scb$r_shadow_status_overlay.scb$r_shadow_status_bits.scb$v_booting #define scb$v_scb_wlg scb$r_shadow_status_overlay.scb$r_shadow_status_bits.scb$v_scb_wlg #define scb$v_must_mrg scb$r_shadow_status_overlay.scb$r_shadow_status_bits.scb$v_must_mrg #define scb$v_failed scb$r_shadow_status_overlay.scb$r_shadow_status_bits.scb$v_failed #define scb$v_cpy_reset scb$r_shadow_status_overlay.scb$r_status_bits_ing.scb$v_cpy_reset #define scb$v_wlg scb$r_shadow_status_overlay.scb$r_status_bits_ing.scb$v_wlg #define scb$b_member_status scb$b_member_status #define scb$v_mbr_fcpy scb$r_member_status_bits.scb$v_mbr_fcpy #define scb$v_mbr_merge scb$r_member_status_bits.scb$v_mbr_merge #define scb$v_mbr_cip scb$r_member_status_bits.scb$v_mbr_cip #define scb$v_mbr_src scb$r_member_status_bits.scb$v_mbr_src #define scb$v_mbr_mfcpy scb$r_member_status_bits.scb$v_mbr_mfcpy #define scb$v_mbr_valid scb$r_member_status_bits.scb$v_mbr_valid #define scb$b_xmember_status scb$b_xmember_status #define scb$w_shadowing_status scb$r_shadowing_status_overlay.scb$w_shadowing_status #define scb$v_init_no_erase scb$r_shadowing_status_overlay.scb$r_shadowing_status_bits.scb$v_init_no_erase #define scb$v_dve_enabled scb$r_shadowing_status_overlay.scb$r_shadowing_status_bits.scb$v_dve_enabled #define scb$v_hbvs_members_may_differ scb$r_shadowing_status_overlay.scb$r_shadowing_status_bits.scb$v_hbvs_members_may_differ #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 /* __SCBDEF_LOADED */