/**/ /***************************************************************************/ /** **/ /** © 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:58 by OpenVMS SDL EV3-3 */ /* Source: 28-APR-1993 14:08:54 $1$DGA7274:[LIB_H.SRC]CLUDCBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $CLUDCBDEF ***/ #ifndef __CLUDCBDEF_LOADED #define __CLUDCBDEF_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 /*+ */ /* CLUDCB - Cluster Quorum Disk Control Block */ /*- */ #define CLUDCB$M_QS_REM_INA 0x1 #define CLUDCB$M_QS_REM_ACT 0x2 #define CLUDCB$M_QS_NOT_READY 0x4 #define CLUDCB$M_QS_READY 0x8 #define CLUDCB$M_QS_ACTIVE 0x10 #define CLUDCB$M_QS_CLUSTER 0x20 #define CLUDCB$M_QS_VOTE 0x40 #define CLUDCB$M_QF_INQTMO 0x1 #define CLUDCB$M_QF_INQIP 0x2 #define CLUDCB$M_QF_TIM 0x4 #define CLUDCB$M_QF_RIP 0x8 #define CLUDCB$M_QF_WIP 0x10 #define CLUDCB$M_QF_ERROR 0x20 #define CLUDCB$M_QF_FIRST_ERR 0x40 #define CLUDCB$M_QF_WRL_ERR 0x80 #define CLUDCB$M_QF_NOACCESS 0x100 #define CLUDCB$M_CSP_ACK 0x1 #define CLUDCB$M_CSP_LBN_VALID 0x2 #define CLUDCB$M_CSP_MVHELP 0x4 #define CLUDCB$K_F_LENGTH 64 /* Length of fixed portion of CLUDCB */ #define CLUDCB$C_F_LENGTH 64 /* Length of fixed portion of CLUDCB */ #define CLUDCB$K_LENGTH 580 /* Length of CLUDCB */ #define CLUDCB$C_LENGTH 580 /* Length of CLUDCB */ /* The quorum disk is specified with 4 sysgen parameters. DISK_QUORUM1 */ #define CLUDCB$S_DISK_QUORUM 16 #ifdef __cplusplus /* Define structure prototypes */ struct _ucb; struct _irp; struct _tqe; #endif /* #ifdef __cplusplus */ typedef struct _cludcb { struct _cludcb *cludcb$l_cludcbfl; /* Forward Link (not used) */ struct _cludcb *cludcb$l_cludcbbl; /* Backward Link (not used) */ unsigned short int cludcb$w_size; /* Size of CLUDCB (bytes) */ unsigned char cludcb$b_type; /* Structure type */ unsigned char cludcb$b_subtype; /* Structure subtype */ struct _ucb *cludcb$l_ucb; /* Address of quorum disk UCB */ struct _irp *cludcb$l_irp; /* Address of IRP */ struct _tqe *cludcb$l_tqe; /* Address of timer queue entry */ unsigned int cludcb$l_watcher_csid; /* CSID of quorum file watcher */ unsigned int cludcb$l_act_count; /* Saved activity counter */ unsigned int cludcb$l_qflbn; /* Quorum file logical block number */ char cludcb$t_align2 [4]; /* QUADWORD ALIGN BEFORE */ __union { unsigned short int cludcb$w_state; /* Quorum disk state bits */ __struct { unsigned cludcb$v_qs_rem_ina : 1; /* Remote inactive */ unsigned cludcb$v_qs_rem_act : 1; /* Remote active */ unsigned cludcb$v_qs_not_ready : 1; /* Not ready */ unsigned cludcb$v_qs_ready : 1; /* Ready */ unsigned cludcb$v_qs_active : 1; /* Active */ unsigned cludcb$v_qs_cluster : 1; /* Active and this node is a cluster member */ unsigned cludcb$v_qs_vote : 1; /* Potential vote */ unsigned cludcb$v_fill_6_ : 1; } cludcb$r_fill_1_; } cludcb$r_fill_0_; short int cludcb$w_fill_1; /* Fill to next longword */ __union { unsigned short int cludcb$w_flags; /* CLUDCB status bits */ __struct { unsigned cludcb$v_qf_inqtmo : 1; /* Status inquiry timed out */ unsigned cludcb$v_qf_inqip : 1; /* Remote inquiry in progress */ unsigned cludcb$v_qf_tim : 1; /* Read or write timed out */ unsigned cludcb$v_qf_rip : 1; /* Read in progress */ unsigned cludcb$v_qf_wip : 1; /* Write in progress */ unsigned cludcb$v_qf_error : 1; /* Quorum disk error has been reported */ unsigned cludcb$v_qf_first_err : 1; /* First error has already been seen */ unsigned cludcb$v_qf_wrl_err : 1; /* Quorum disk is write-locked */ unsigned cludcb$v_qf_noaccess : 1; /* Never access the quorum disk directly */ unsigned cludcb$v_fill_7_ : 7; } cludcb$r_fill_3_; } cludcb$r_fill_2_; short int cludcb$w_fill_2; /* Fill to next longword */ /* The interlocked flags field is in its own quadword for granulary reasons */ __union { unsigned short int cludcb$w_csp_flags; /* Flags for interlocked communication with CSP */ __struct { unsigned cludcb$v_csp_ack : 1; /* CSP request has been acknowledged */ unsigned cludcb$v_csp_lbn_valid : 1; /* CSP has found a quorum file */ unsigned cludcb$v_csp_mvhelp : 1; /* Restart mount verification */ unsigned cludcb$v_fill_8_ : 5; } cludcb$r_fill_5_; } cludcb$r_fill_4_; char cludcb$t_align4 [6]; /* QUADWORD ALIGN AFTER */ unsigned char cludcb$b_counter; /* Iteration counter */ char cludcb$b_fill_3 [3]; /* Fill to next longword */ char cludcb$t_align5 [4]; /* QUADWORD ALIGN */ char cludcb$t_buffer [516]; /* Quorum file buffer */ /* to DISK_QUORUM4. Each parameter can specify 4 bytes. */ } CLUDCB; #if !defined(__VAXC) #define cludcb$w_state cludcb$r_fill_0_.cludcb$w_state #define cludcb$v_qs_rem_ina cludcb$r_fill_0_.cludcb$r_fill_1_.cludcb$v_qs_rem_ina #define cludcb$v_qs_rem_act cludcb$r_fill_0_.cludcb$r_fill_1_.cludcb$v_qs_rem_act #define cludcb$v_qs_not_ready cludcb$r_fill_0_.cludcb$r_fill_1_.cludcb$v_qs_not_ready #define cludcb$v_qs_ready cludcb$r_fill_0_.cludcb$r_fill_1_.cludcb$v_qs_ready #define cludcb$v_qs_active cludcb$r_fill_0_.cludcb$r_fill_1_.cludcb$v_qs_active #define cludcb$v_qs_cluster cludcb$r_fill_0_.cludcb$r_fill_1_.cludcb$v_qs_cluster #define cludcb$v_qs_vote cludcb$r_fill_0_.cludcb$r_fill_1_.cludcb$v_qs_vote #define cludcb$w_flags cludcb$r_fill_2_.cludcb$w_flags #define cludcb$v_qf_inqtmo cludcb$r_fill_2_.cludcb$r_fill_3_.cludcb$v_qf_inqtmo #define cludcb$v_qf_inqip cludcb$r_fill_2_.cludcb$r_fill_3_.cludcb$v_qf_inqip #define cludcb$v_qf_tim cludcb$r_fill_2_.cludcb$r_fill_3_.cludcb$v_qf_tim #define cludcb$v_qf_rip cludcb$r_fill_2_.cludcb$r_fill_3_.cludcb$v_qf_rip #define cludcb$v_qf_wip cludcb$r_fill_2_.cludcb$r_fill_3_.cludcb$v_qf_wip #define cludcb$v_qf_error cludcb$r_fill_2_.cludcb$r_fill_3_.cludcb$v_qf_error #define cludcb$v_qf_first_err cludcb$r_fill_2_.cludcb$r_fill_3_.cludcb$v_qf_first_err #define cludcb$v_qf_wrl_err cludcb$r_fill_2_.cludcb$r_fill_3_.cludcb$v_qf_wrl_err #define cludcb$v_qf_noaccess cludcb$r_fill_2_.cludcb$r_fill_3_.cludcb$v_qf_noaccess #define cludcb$w_csp_flags cludcb$r_fill_4_.cludcb$w_csp_flags #define cludcb$v_csp_ack cludcb$r_fill_4_.cludcb$r_fill_5_.cludcb$v_csp_ack #define cludcb$v_csp_lbn_valid cludcb$r_fill_4_.cludcb$r_fill_5_.cludcb$v_csp_lbn_valid #define cludcb$v_csp_mvhelp cludcb$r_fill_4_.cludcb$r_fill_5_.cludcb$v_csp_mvhelp #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 /* __CLUDCBDEF_LOADED */