/**/ /***************************************************************************/ /** **/ /** © 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:11 by OpenVMS SDL EV3-3 */ /* Source: 26-JUL-2005 10:45:35 $1$DGA7274:[LIB_H.SRC]RSBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $RSBDEF ***/ #ifndef __RSBDEF_LOADED #define __RSBDEF_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 /*+ */ /* */ /* RSB - Resource Block */ /* */ /* Resource blocks represent resources for which there are locks outstanding. */ /* Each resource block may have one or more lock blocks (LKBs) queued to it. */ /* */ /*- */ #define RSB$M_DIRENTRY 0x1 #define RSB$M_VALINVLD 0x2 #define RSB$M_DIR_RQD 0x4 #define RSB$M_RM_PEND 0x8 #define RSB$M_RM_IP 0x10 #define RSB$M_RM_ACCEPT 0x20 #define RSB$M_RM_RBLD 0x40 #define RSB$M_RM_WAIT 0x80 #define RSB$M_RM_DEFLECT 0x100 #define RSB$M_DIR_IP 0x200 #define RSB$M_RBLD_IP 0x400 #define RSB$M_RBLD_RQD 0x800 #define RSB$M_RBLD_ACT 0x1000 #define RSB$M_CHK_BTR 0x2000 #define RSB$M_WTFULRNG 0x4000 #define RSB$M_WTSUBRNG 0x8000 #define RSB$M_BRL 0x10000 #define RSB$M_2PC_IP 0x80000 #define RSB$M_CVTFULRNG 0x100000 #define RSB$M_CVTSUBRNG 0x200000 #define RSB$M_VALCUR 0x400000 #define RSB$M_INVPEND 0x800000 #define RSB$M_DPC 0x1000000 #define RSB$M_GGMODE_VALID 0x2000000 #define RSB$M_XVAL_VALID 0x4000000 #define RSB$M_RM_FREEZE 0x8000000 #define RSB$M_RM_FORCE 0x10000000 #define RSB$M_RM_NO_INTEREST 0x20000000 #define RSB$K_MAXLEN 31 /* Maximum length of Resource Name */ #define RSB$K_LENGTH 320 /* Length of fixed part of RSB */ #define RSB$C_LENGTH 320 /* Length of fixed part of RSB */ #define RSB$S_RSBDEF 320 /* Old size name - synonym */ #ifdef __cplusplus /* Define structure prototypes */ struct _clurcb; #endif /* #ifdef __cplusplus */ typedef struct _rsb { #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __octaword #else #pragma __nomember_alignment #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rsb$q_hshchn; /* Hash Chain Pointer */ #else unsigned __int64 rsb$q_hshchn; #endif #pragma __nomember_alignment unsigned short int rsb$w_size; /* Size of RSB structure */ unsigned char rsb$b_type; /* Structure type */ unsigned char rsb$b_fgmode; /* Full-Range Grant Mode */ unsigned char rsb$b_ggmode; /* Group Grant Mode */ unsigned char rsb$b_cgmode; /* Conversion Grant Mode */ unsigned short int rsb$w_blkastcnt; /* Blocking AST count */ __union { unsigned int rsb$l_status; /* Status longword */ __struct { unsigned rsb$v_direntry : 1; /* Directory Entry (director system for resource) */ unsigned rsb$v_valinvld : 1; /* Value Block Invalid */ unsigned rsb$v_dir_rqd : 1; /* Directory Entry required */ unsigned rsb$v_rm_pend : 1; /* Resource Remaster Operation Pending */ unsigned rsb$v_rm_ip : 1; /* Resource being Remastered */ unsigned rsb$v_rm_accept : 1; /* New Master accepts */ unsigned rsb$v_rm_rbld : 1; /* Always rebuild tree */ unsigned rsb$v_rm_wait : 1; /* Block local activity */ unsigned rsb$v_rm_deflect : 1; /* Deflect remote interest */ unsigned rsb$v_dir_ip : 1; /* Directory Entry being created */ unsigned rsb$v_rbld_ip : 1; /* Rebuild in progress */ unsigned rsb$v_rbld_rqd : 1; /* Rebuild required for this tree */ unsigned rsb$v_rbld_act : 1; /* Lock Rebuild active for tree */ unsigned rsb$v_chk_btr : 1; /* Check for better master (not used as of V8.3) */ unsigned rsb$v_wtfulrng : 1; /* Full-Range REQs in wait queue */ unsigned rsb$v_wtsubrng : 1; /* Sub-Range REQs in wait queue */ unsigned rsb$v_brl : 1; /* Indicates byte range resource */ unsigned rsb$v_fill_21 : 1; unsigned rsb$v_fill_22 : 1; unsigned rsb$v_2pc_ip : 1; /* Two Phase Convert in progress */ unsigned rsb$v_cvtfulrng : 1; /* Full-Range REQs in convert queue */ unsigned rsb$v_cvtsubrng : 1; /* Sub-Range REQs in convert queue */ unsigned rsb$v_valcur : 1; /* Value Block is current */ unsigned rsb$v_invpend : 1; /* Do Value Block invalidation check */ unsigned rsb$v_dpc : 1; /* Delete pending cache */ unsigned rsb$v_ggmode_valid : 1; /* Group Grant Mode valid */ unsigned rsb$v_xval_valid : 1; /* Last VALBLK was not short */ unsigned rsb$v_rm_freeze : 1; /* Freeze resource tree on this node */ unsigned rsb$v_rm_force : 1; /* Forced tree move */ unsigned rsb$v_rm_no_interest : 1; /* Remaster due to master having no interest */ unsigned rsb$v_fill_0_ : 2; } rsb$r_status_bits; } rsb$r_status_overlay; unsigned int rsb$l_refcnt; /* Sub RSB reference count */ unsigned int rsb$l_csid; /* System ID of master system */ unsigned int rsb$l_rm_csid; /* Pending Remaster CSID */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rsb$q_hshchnbk; /* Hash Chain back pointer */ #else unsigned __int64 rsb$q_hshchnbk; #endif __union { #pragma __nomember_alignment unsigned short int rsb$w_rqseqnm; /* Request sequence number */ unsigned __int64 rsb$q_rqseqnm; /* Request sequence number */ } rsb$r_rqseqnm_overlay; #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif struct _clurcb *rsb$l_clurcb; /* Remaster Control Block */ unsigned short int rsb$w_activity; /* Resource activity counter */ unsigned short int rsb$w_lckcnt; /* Count of locks on resource */ unsigned short int rsb$w_nact; /* New activity */ unsigned short int rsb$w_oact; /* Old (historical) activity */ unsigned short int rsb$w_nmact; /* New master's activity */ unsigned char rsb$b_lstcsid_idx; /* Last CSID index */ unsigned char rsb$b_same_cnt; /* Same node counter */ __union { /* Short and long value */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __octaword #else #pragma __nomember_alignment #endif unsigned int rsb$q_valblk [4]; /* Short Value Block */ char rsb$t_xvalblk [64]; /* Long Value Block */ } rsb$r_valblk_overlay; #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rsb$q_grqfl; /* Granted queue forward link */ #else unsigned __int64 rsb$q_grqfl; #endif #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rsb$q_grqbl; /* Granted queue backward link */ #else unsigned __int64 rsb$q_grqbl; #endif #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __octaword #else #pragma __nomember_alignment #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rsb$q_cvtqfl; /* Conversion queue forward link */ #else unsigned __int64 rsb$q_cvtqfl; #endif #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rsb$q_cvtqbl; /* Conversion queue backward link */ #else unsigned __int64 rsb$q_cvtqbl; #endif #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __octaword #else #pragma __nomember_alignment #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rsb$q_wtqfl; /* Wait queue forward link */ #else unsigned __int64 rsb$q_wtqfl; #endif #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rsb$q_wtqbl; /* Wait queue backward link */ #else unsigned __int64 rsb$q_wtqbl; #endif #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __octaword #else #pragma __nomember_alignment #endif unsigned __int64 rsb$q_2pcqfl; /* Two Phase Converts forward link */ #pragma __nomember_alignment unsigned __int64 rsb$q_2pcqbl; /* Two Phase Converts backward link */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __octaword #else #pragma __nomember_alignment #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rsb$q_rrsfl; /* Root list forward link */ #else unsigned __int64 rsb$q_rrsfl; #endif #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rsb$q_rrsbl; /* Root list backward link */ #else unsigned __int64 rsb$q_rrsbl; #endif #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __octaword #else #pragma __nomember_alignment #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rsb$q_srsfl; /* Tree list forward link */ #else unsigned __int64 rsb$q_srsfl; #endif #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *rsb$q_srsbl; /* Tree list backward link */ #else unsigned __int64 rsb$q_srsbl; #endif #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ struct _rsb *rsb$q_rtrsb; /* Pointer to Root RSB */ #else unsigned __int64 rsb$q_rtrsb; #endif #pragma __nomember_alignment unsigned int rsb$l_depth; /* Depth in tree */ unsigned int rsb$l_valseqnum; /* Value Block sequence number */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __octaword #else #pragma __nomember_alignment #endif unsigned int rsb$q_lock [4]; /* RSB Synchronization Lock */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ struct _rsb *rsb$q_parent; /* Address of Parent RSB */ #else unsigned __int64 rsb$q_parent; #endif #pragma __nomember_alignment __union { unsigned int rsb$l_hashval; /* Hash Value (P26 32-bit value) */ __struct { short int rsb$w_fill_103; unsigned short int rsb$w_dirhash; /* Directory Hash (Pre-P26 16-bit Hash Value) */ } rsb$r_dirhash_overlay; } rsb$r_hashval_overlay; unsigned short int rsb$w_group; /* Group number */ unsigned char rsb$b_rmod; /* Access mode of resource */ unsigned char rsb$b_rsnlen; /* Resource Name length */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif char rsb$t_resnam [32]; /* Start of Resource Name */ #pragma __nomember_alignment unsigned __int64 rsb$q_tot_lckcnt; /* total locks on this tree */ unsigned __int64 rsb$q_loc_lckcnt; /* total local locks on this tree */ } RSB; #if !defined(__VAXC) #define rsb$l_status rsb$r_status_overlay.rsb$l_status #define rsb$v_direntry rsb$r_status_overlay.rsb$r_status_bits.rsb$v_direntry #define rsb$v_valinvld rsb$r_status_overlay.rsb$r_status_bits.rsb$v_valinvld #define rsb$v_dir_rqd rsb$r_status_overlay.rsb$r_status_bits.rsb$v_dir_rqd #define rsb$v_rm_pend rsb$r_status_overlay.rsb$r_status_bits.rsb$v_rm_pend #define rsb$v_rm_ip rsb$r_status_overlay.rsb$r_status_bits.rsb$v_rm_ip #define rsb$v_rm_accept rsb$r_status_overlay.rsb$r_status_bits.rsb$v_rm_accept #define rsb$v_rm_rbld rsb$r_status_overlay.rsb$r_status_bits.rsb$v_rm_rbld #define rsb$v_rm_wait rsb$r_status_overlay.rsb$r_status_bits.rsb$v_rm_wait #define rsb$v_rm_deflect rsb$r_status_overlay.rsb$r_status_bits.rsb$v_rm_deflect #define rsb$v_dir_ip rsb$r_status_overlay.rsb$r_status_bits.rsb$v_dir_ip #define rsb$v_rbld_ip rsb$r_status_overlay.rsb$r_status_bits.rsb$v_rbld_ip #define rsb$v_rbld_rqd rsb$r_status_overlay.rsb$r_status_bits.rsb$v_rbld_rqd #define rsb$v_rbld_act rsb$r_status_overlay.rsb$r_status_bits.rsb$v_rbld_act #define rsb$v_chk_btr rsb$r_status_overlay.rsb$r_status_bits.rsb$v_chk_btr #define rsb$v_wtfulrng rsb$r_status_overlay.rsb$r_status_bits.rsb$v_wtfulrng #define rsb$v_wtsubrng rsb$r_status_overlay.rsb$r_status_bits.rsb$v_wtsubrng #define rsb$v_brl rsb$r_status_overlay.rsb$r_status_bits.rsb$v_brl #define rsb$v_2pc_ip rsb$r_status_overlay.rsb$r_status_bits.rsb$v_2pc_ip #define rsb$v_cvtfulrng rsb$r_status_overlay.rsb$r_status_bits.rsb$v_cvtfulrng #define rsb$v_cvtsubrng rsb$r_status_overlay.rsb$r_status_bits.rsb$v_cvtsubrng #define rsb$v_valcur rsb$r_status_overlay.rsb$r_status_bits.rsb$v_valcur #define rsb$v_invpend rsb$r_status_overlay.rsb$r_status_bits.rsb$v_invpend #define rsb$v_dpc rsb$r_status_overlay.rsb$r_status_bits.rsb$v_dpc #define rsb$v_ggmode_valid rsb$r_status_overlay.rsb$r_status_bits.rsb$v_ggmode_valid #define rsb$v_xval_valid rsb$r_status_overlay.rsb$r_status_bits.rsb$v_xval_valid #define rsb$v_rm_freeze rsb$r_status_overlay.rsb$r_status_bits.rsb$v_rm_freeze #define rsb$v_rm_force rsb$r_status_overlay.rsb$r_status_bits.rsb$v_rm_force #define rsb$v_rm_no_interest rsb$r_status_overlay.rsb$r_status_bits.rsb$v_rm_no_interest #define rsb$w_rqseqnm rsb$r_rqseqnm_overlay.rsb$w_rqseqnm #define rsb$q_rqseqnm rsb$r_rqseqnm_overlay.rsb$q_rqseqnm #define rsb$q_valblk rsb$r_valblk_overlay.rsb$q_valblk #define rsb$t_xvalblk rsb$r_valblk_overlay.rsb$t_xvalblk #define rsb$l_hashval rsb$r_hashval_overlay.rsb$l_hashval #define rsb$w_dirhash rsb$r_hashval_overlay.rsb$r_dirhash_overlay.rsb$w_dirhash #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 /* __RSBDEF_LOADED */