/**/ /***************************************************************************/ /** **/ /** © 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:40 by OpenVMS SDL EV3-3 */ /* Source: 30-MAY-2002 15:59:58 $1$DGA7274:[LIB_H.SRC]CDDBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $CDDBDEF ***/ #ifndef __CDDBDEF_LOADED #define __CDDBDEF_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 /*+ */ /* CDDB - Class Driver Data Block */ /* */ /* Auxiliary data block pointed at by the CRB$L_AUXSTRUC of an MSCP speaking */ /* intelligent disk or tape controller. There is one CDDB per such intelligent */ /* controller. */ /* */ /*- */ #define CDDB$M_SNGLSTRM 0x1 #define CDDB$M_IMPEND 0x2 #define CDDB$M_INITING 0x4 #define CDDB$M_RECONNECT 0x8 #define CDDB$M_RESYNCH 0x10 #define CDDB$M_POLLING 0x20 #define CDDB$M_ALCLS_SET 0x40 #define CDDB$M_NOCONN 0x80 #define CDDB$M_RSTRTWAIT 0x100 #define CDDB$M_QUORLOST 0x200 #define CDDB$M_DAPBSY 0x400 #define CDDB$M_2PBSY 0x800 #define CDDB$M_BSHADOW 0x1000 #define CDDB$M_DISABLED 0x2000 #define CDDB$M_PATHMOVE 0x4000 #define CDDB$M_PRMBSY 0x8000 #define CDDB$M_DISC_PEND 0x10000 #define CDDB$M_CRNSET 0x20000 #define CDDB$M_FIRM_WREV 0x40000 #define CDDB$M_PRMBSY_CLEANUP_PERMITTED 0x80000 #define CDDB$K_LENGTH 168 /*Standard length of CDDB */ #define CDDB$C_LENGTH 168 /*Standard length of CDDB */ #ifdef __cplusplus /* Define structure prototypes */ struct _cdrp; struct _pdt; struct _crb; struct _ddb; struct _ucb; #endif /* #ifdef __cplusplus */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _cddb { #pragma __nomember_alignment struct _cdrp *cddb$l_cdrpqfl; /*Active CDRP Q FLINK */ struct _cdrp *cddb$l_cdrpqbl; /*Active CDRP Q BLINK */ unsigned short int cddb$w_size; /*Size of CDDB in bytes */ unsigned char cddb$b_type; /*Major structure type for Class Driver */ unsigned char cddb$b_subtype; /* CDDB structure subtype field */ unsigned char cddb$b_systemid [8]; /*48 bit system ID. */ __union { unsigned int cddb$l_status; /*Status */ __struct { unsigned cddb$v_snglstrm : 1; /* Single stream mode after VC crash */ unsigned cddb$v_impend : 1; /* IMmediate command PENDing */ unsigned cddb$v_initing : 1; /* Currently initializing CONNECTION */ unsigned cddb$v_reconnect : 1; /* Currently re-CONNECTING to MSCP server */ unsigned cddb$v_resynch : 1; /* re_CONNECT initiated by Class Driver */ unsigned cddb$v_polling : 1; /* Polling for units */ unsigned cddb$v_alcls_set : 1; /* Allocation class has been set */ unsigned cddb$v_noconn : 1; /* CDDB currently has no connection */ unsigned cddb$v_rstrtwait : 1; /* Waiting to RESTART_NEXT_CDRP */ unsigned cddb$v_quorlost : 1; /* CNXMAN quorum lost processing */ unsigned cddb$v_dapbsy : 1; /* DAP CDRP is busy */ unsigned cddb$v_2pbsy : 1; /* Failover fork block is busy */ unsigned cddb$v_bshadow : 1; /* Controller uses "bundled" shadowing */ unsigned cddb$v_disabled : 1; /* Controller not in use by class driver action */ unsigned cddb$v_pathmove : 1; /* Closing connection for port load balance */ unsigned cddb$v_prmbsy : 1; /* Permanent CDRP in use */ unsigned cddb$v_disc_pend : 1; /* Connection disconnect pending */ unsigned cddb$v_crnset : 1; /* ctrl ref not being seen */ unsigned cddb$v_firm_wrev : 1; /* firmware problem */ unsigned cddb$v_prmbsy_cleanup_permitted : 1; /* Permanent CDRP is busy but connection cleanup has permission to cleanu\ p */ /* the PRMCDRP without arbitrating for it. */ unsigned cddb$v_fill_0_ : 4; } cddb$r_status_bits; } cddb$r_status_overlay; struct _pdt *cddb$l_pdt; /*Port Descriptor Table address */ struct _crb *cddb$l_crb; /*CRB address */ struct _ddb *cddb$l_ddb; /*DDB address */ __union { unsigned __int64 cddb$q_cntrlid; /*Controller ID returned by MSCP END PACKET */ __struct { char cddbdef$$_fill_2 [6]; unsigned char cddb$b_cntrlmdl; /* Controller model ! (byte 6 of controller id) */ unsigned char cddb$b_cntrlcls; /* Controller class (byte 7 of controller id) */ } cddb$r_cntrlid_fields; } cddb$r_cntrlid_overlay; unsigned short int cddb$w_cntrlflgs; /*Controller flags also returned by END PACKET */ unsigned short int cddb$w_cntrltmo; /*Controller timeout also returned by END PACKET */ unsigned int cddb$l_oldrspid; /*RSPID of oldest outstanding MSCP command */ unsigned int cddb$l_oldcmdsts; /*Latest MSCP command status for this command */ struct _cdrp *cddb$l_rstrtcdrp; /*Addr of only active CDRP after VC re-establish */ unsigned int cddb$l_retrycnt; /*# retries remaining for CDRP after VC reset */ unsigned int cddb$l_dapcount; /*# DU$TMR loops until DAP_THREAD */ unsigned int cddb$l_rstrtcnt; /*# of resynch or connection error since boot */ struct _cdrp *cddb$l_rstrtqfl; /*Queue wherein we accumulate, sort and select */ struct _cdrp *cddb$l_rstrtqbl; /* for re-submission following VC re-establish */ void (*cddb$l_saved_pc)(); /*Saved PC on internal subroutine calls */ void (*cddb$l_saved_pc1)(); /*Saved PC on internal subroutine calls */ struct _ucb *cddb$l_ucbchain; /*Chain of UCBs on connection */ struct _ucb *cddb$l_origucb; /*Ptr to Orig. UCB if unchained */ unsigned int cddb$l_allocls; /*Device Allocation Class */ struct _cdrp *cddb$l_dapcdrp; /*Ptr to Deter.Acc.Path CDRP */ struct _cddb *cddb$l_cddblink; /*Link in CDDB chain */ unsigned int cddb$l_fover_ctr; /* counter of reconnect intervals per failover try */ unsigned int cddb$l_wtucbctr; /* counter of UCBs waiting for mount ver. to finish */ unsigned int cddb$l_maxbcnt; /* Max byte count for this connection */ unsigned int cddb$l_ctrltr_mask; /* Mask of controller letters (ddCu:) used by this controller */ unsigned int cddb$l_cpyseqnum; /* Base value IO$_COPYSHAD sequence number */ unsigned int cddb$l_dap_limit; /* Credit stall counter */ unsigned char cddb$b_csvrsn; /* Controller microcode version */ unsigned char cddb$b_chvrsn; /* Controller hardware version */ unsigned short int cddb$w_load_avail; /* Load available from MSCP server */ unsigned int cddb$l_counter; /* General purpose counter (currently used by wrong-CDT check) */ unsigned int cddb$l_conid; /* Connection ID */ unsigned int cddb$l_cdt; /* Ptr to Conn. Desc. Table */ struct _cdrp *cddb$l_prmcdrp; /* Ptr to Perm. CDRP */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned int cddb$l_rsvd1; #pragma __nomember_alignment unsigned int cddb$l_rsvd2; unsigned int cddb$l_rsvd3; unsigned int cddb$l_rsvd4; } CDDB; #if !defined(__VAXC) #define cddb$l_status cddb$r_status_overlay.cddb$l_status #define cddb$v_snglstrm cddb$r_status_overlay.cddb$r_status_bits.cddb$v_snglstrm #define cddb$v_impend cddb$r_status_overlay.cddb$r_status_bits.cddb$v_impend #define cddb$v_initing cddb$r_status_overlay.cddb$r_status_bits.cddb$v_initing #define cddb$v_reconnect cddb$r_status_overlay.cddb$r_status_bits.cddb$v_reconnect #define cddb$v_resynch cddb$r_status_overlay.cddb$r_status_bits.cddb$v_resynch #define cddb$v_polling cddb$r_status_overlay.cddb$r_status_bits.cddb$v_polling #define cddb$v_alcls_set cddb$r_status_overlay.cddb$r_status_bits.cddb$v_alcls_set #define cddb$v_noconn cddb$r_status_overlay.cddb$r_status_bits.cddb$v_noconn #define cddb$v_rstrtwait cddb$r_status_overlay.cddb$r_status_bits.cddb$v_rstrtwait #define cddb$v_quorlost cddb$r_status_overlay.cddb$r_status_bits.cddb$v_quorlost #define cddb$v_dapbsy cddb$r_status_overlay.cddb$r_status_bits.cddb$v_dapbsy #define cddb$v_2pbsy cddb$r_status_overlay.cddb$r_status_bits.cddb$v_2pbsy #define cddb$v_bshadow cddb$r_status_overlay.cddb$r_status_bits.cddb$v_bshadow #define cddb$v_disabled cddb$r_status_overlay.cddb$r_status_bits.cddb$v_disabled #define cddb$v_pathmove cddb$r_status_overlay.cddb$r_status_bits.cddb$v_pathmove #define cddb$v_prmbsy cddb$r_status_overlay.cddb$r_status_bits.cddb$v_prmbsy #define cddb$v_disc_pend cddb$r_status_overlay.cddb$r_status_bits.cddb$v_disc_pend #define cddb$v_crnset cddb$r_status_overlay.cddb$r_status_bits.cddb$v_crnset #define cddb$v_firm_wrev cddb$r_status_overlay.cddb$r_status_bits.cddb$v_firm_wrev #define cddb$v_prmbsy_cleanup_permitted cddb$r_status_overlay.cddb$r_status_bits.cddb$v_prmbsy_cleanup_permitted #define cddb$q_cntrlid cddb$r_cntrlid_overlay.cddb$q_cntrlid #define cddb$b_cntrlmdl cddb$r_cntrlid_overlay.cddb$r_cntrlid_fields.cddb$b_cntrlmdl #define cddb$b_cntrlcls cddb$r_cntrlid_overlay.cddb$r_cntrlid_fields.cddb$b_cntrlcls #endif /* #if !defined(__VAXC) */ #define CDDB$S_CDDBDEF 168 /*Old size name, synonym for CDDB$S_CDDB */ #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 /* __CDDBDEF_LOADED */