/**/ /***************************************************************************/ /** **/ /** © 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:37 by OpenVMS SDL EV3-3 */ /* Source: 23-JUL-2003 15:22:43 $1$DGA7274:[LIB_H.SRC]PBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $PBDEF ***/ #ifndef __PBDEF_LOADED #define __PBDEF_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 /*+ */ /* PB - SCS PATH BLOCK */ /* */ /* THE PB HAS INFORMATION ABOUT THE PHYSICAL PATH TO ANOTHER */ /* SYSTEM IN A CLUSTER. PATH BLOCKS TO THE SAME SYSTEM ARE */ /* LINKED TOGETHER TO THE SYSTEM BLOCK (SB). */ /*- */ #define PB$C_CLOSED 0 /* NEWLY CREATED PATHBLOCK */ #define PB$C_ST_SENT 1 /* START SENT */ #define PB$C_ST_REC 2 /* START RECEIVED */ #define PB$C_OPEN 3 /* OPEN PORT-PORT VIRTUAL CIRCUIT */ /* CI port virtual circuit failure states */ #define PB$C_STALL_SETCKT 4 /* SETCKT stalled by pool problem */ #define PB$C_CLOSE_CKT 5 /* SETCKT in progress */ #define PB$C_NOTIFY_VCFAIL 6 /* SYSAP notification for failed VC in progress */ #define PB$C_STALL_CACHE 7 /* Cache Clear stalled by pool problem */ #define PB$C_CACHE_CLEAR 8 /* Cache Clear in progress */ #define PB$C_NOTIFY_PWFAIL 9 /* SYSAP notification for failed port in progress */ /* */ #define PB$C_VC_FAIL 32768 /* VC FAILURE IN PROGRESS STATE (No longer used for CI) */ #define PB$C_PWR_FAIL 16384 /* PWR FAIL RECOVERY IN PROGRESS STATE (No longer used for CI) */ #define PB$M_DUALPATH 0x80000000 #define PB$C_CI780 2 /* CI780 PORT */ #define PB$C_CI750 2 /* CI750 PORT (=CI780) */ #define PB$C_HSC 4 /* HSC PORT */ #define PB$C_KL10 6 /* KLIPA PORT */ #define PB$C_CINT 7 /* CI NODE TESTER */ #define PB$C_NI 8 /* NI-SCA (LAVC) PORT */ #define PB$C_PS 9 /* PASSTHRU PORT */ #define PB$C_BCA 11 /* BI-CI PORT */ #define PB$C_BVPSSP 12 /* BVP STORAGE PORT */ #define PB$C_BVPNI 13 /* BVP NI PORT */ #define PB$C_CIXCD 14 /* XMI-CI PORT CIXCD */ #define PB$C_CIXCDAC 16 /* XMI-CI N_PORT ALPHA CIXCD */ #define PB$C_CITCA 17 #define PB$C_CIPCA 18 #define PB$C_MC 19 #define PB$C_SMCI 20 #define PB$C_SII 32 #define PB$C_KFQSA 33 #define PB$C_SHAC 34 #define PB$C_XON 35 #define PB$C_SWIFT 36 #define PB$C_KFMSA 37 #define PB$C_N710 38 #define PB$C_KFMSB 39 #define PB$C_RF70 48 #define PB$C_RF71 48 #define PB$C_RF30 49 #define PB$C_RF31 50 #define PB$C_RF72 51 #define PB$C_RF32 52 #define PB$C_RF73 53 #define PB$C_RF31F 54 #define PB$C_RF35 55 #define PB$C_RF36 58 #define PB$C_RF37 59 #define PB$C_RF74 60 #define PB$C_RF75 61 #define PB$C_TF70 64 #define PB$C_TF30 65 #define PB$C_TF85 65 #define PB$C_TF86 66 #define PB$C_HSJ 80 #define PB$C_HSD 81 #define PB$C_HSF 82 #define PB$C_HSJ80 83 #define PB$C_EF51 96 #define PB$C_EF52 97 #define PB$C_EF53 98 #define PB$C_EF54 99 #define PB$C_EF58 100 #define PB$M_SRSNTDATWM 0x80 #define PB$M_MAINT 0x1 #define PB$C_UNINIT 0 /* UNINITIALIZED, */ #define PB$C_DISAB 1 /* DISABLED */ #define PB$C_ENAB 2 /* ENABLED */ /* */ #define PB$M_CUR_CBL 0x1 #define PB$M_CUR_PS 0x1 #define PB$M_TIM 0x1 #define PB$M_VCCHK_ENB 0x2 #define PB$M_SCS_EXP 0x4 #define PB$M_NEW_MSG 0x8 #define PB$M_UNUSED 0x10 #define PB$M_CREDIT 0x20 #define PB$M_DISC 0x40 #define PB$M_STORAGE 0x80 #define PB$M_CLONE 0x100 #define PB$C_SMCI_LOAD_CLASS 2147483647 /* SMCI Load Class */ #define PB$C_MC_LOAD_CLASS 800 /* Memory Channel Load Class */ #define PB$C_CI_LOAD_CLASS 140 /* CI Load Class */ #define PB$C_DSSI_LOAD_CLASS 48 /* DSSI Load Class */ #define PB$C_NI_LOAD_CLASS 10 /* NI Default Load Class */ #define PB$K_LENGTH 172 /*LENGTH OF A PATH BLOCK */ #define PB$C_LENGTH 172 /*LENGTH OF A PATH BLOCK */ #define PB$S_PBDEF 172 /*Old size name - synonym */ #ifdef __cplusplus /* Define structure prototypes */ struct _sb; struct _cdt; #endif /* #ifdef __cplusplus */ typedef struct _pb { struct _pb *pb$l_flink; /*FWD LINK TO NEXT PB */ struct _pb *pb$l_blink; /*BACK LINK TO PREVIOUS PB */ unsigned short int pb$w_size; /*STRUCTURE SIZE IN BYTES */ unsigned char pb$b_type; /*SCS STRUCTURE TYPE */ unsigned char pb$b_subtyp; /*SCS STRUCT SUBTYPE FOR PB */ unsigned char pb$b_rstation [6]; /*REMOTE STATION ADDRESS */ unsigned short int pb$w_state; /*PATH STATE */ /*STATE DEFINITIONS: */ /* 0 ORIGIN, INCREMENTS OF 1 */ __union { unsigned int pb$l_rport_typ; /*HARDWARE PORT TYPE CODE */ __struct { unsigned pb$v_port_typ : 31; /* HARDWARE PORT TYPE, */ unsigned pb$v_dualpath : 1; /* 0/1 FOR SINGLE PATH/DUAL PATH PORT */ } pb$r_rport_typ_bits; } pb$r_rport_typ_overlay; __union { unsigned int pb$l_rport_rev; /*REMOTE PORT HW REV LEVEL */ __struct { unsigned pb$v_rport_rev_spare : 30; /* Spare */ unsigned pb$v_rport_spc_rev : 1; /* 0 = -A / 1 = -B */ unsigned pb$v_rport_rev_resv1 : 1; /* Reserved */ } pb$r_rport_rev_bits; } pb$r_rport_rev_overlay; __union { unsigned int pb$l_rport_fcn; /*REMOTE PORT FUNCTION MASK */ __struct { unsigned pb$v_mbz : 7; /* reserved MBZ */ unsigned pb$v_srsntdatwm : 1; /*Send/Rec SNTDATWM (*not* in CI Port Arch) */ } pb$r_rport_fcn_bits; } pb$r_rport_fcn_overlay; unsigned char pb$b_rst_port; /*OWNING PORT WHICH RESET REMOTE PORT */ __union { unsigned char pb$b_rstate; /*REMOTE PORT STATUS: */ __struct { unsigned pb$v_maint : 1; /* 0/1 FOR MAINTENANCE MODE NO/YES */ unsigned pb$v_state : 2; /* REMOTE PORT STATE: */ unsigned pb$v_fill_0_ : 5; } pb$r_rstate_bits; /* DEFINE REMOTE STATES, 0 ORIGIN */ } pb$r_rstate_overlay; unsigned short int pb$w_retry; /*START HANDSHAKE RETRY COUNT */ char pb$t_lport_name [4]; /*LOCAL PORT DEVICE NAME */ __union { unsigned char pb$b_cbl_sts; /*CABLE STATUS TO THE REMOTE */ __struct { unsigned pb$v_cur_cbl : 1; /* 1/0 FOR CURRENT STATUS OK/BAD */ unsigned pb$v_fill_1_ : 7; } pb$r_cbl_sts_bits; } pb$r_cbl_sts_overlay; unsigned char pb$b_p0_sts; /*PATH 0 STATUS */ __union { unsigned char pb$b_p1_sts; /*PATH 1 STATUS */ __struct { unsigned pb$v_cur_ps : 1; /* 1/0 FOR CURRENT STATUS OK/BROKEN */ unsigned pb$v_fill_2_ : 7; } pb$r_p1_sts_bits; } pb$r_p1_sts_overlay; char pb$$_fill_1; /*RESERVED BYTE */ void *pb$l_pdt; /*ADDR OF PORT DESCRIPTOR TABLE FOR */ /* LOCAL PORT */ struct _sb *pb$l_sblink; /*LINK TO SYSTEM BLOCK */ struct _cdt *pb$l_cdtlst; /*LINK TO FIRST CDT OVER THIS PATH */ /* (0 IF NO CDT'S) */ void *pb$l_waitqfl; /* SCS SEND MSG WAIT QUEUE FLINK */ __union { void *pb$l_waitqbl; /*SCS SEND MSG WAIT QUEUE BLINK */ unsigned int pb$l_duetime; /*START HANDSHAKE TIMER */ } pb$r_waitqbl_overlay; void *pb$l_scsmsg; /*ADDR OF SCS MESSAGE BUFFER */ __union { unsigned short int pb$w_sts; /*PATH BLOCK STATUS */ __struct { unsigned pb$v_tim : 1; /* HANDSHAKE TIMEOUT IN PROGRESS */ unsigned pb$v_vcchk_enb : 1; /* VC timeout checking enabled */ unsigned pb$v_scs_exp : 1; /* SCS message expected during timeout period */ unsigned pb$v_new_msg : 1; /* New message arrived during timeout period */ unsigned pb$v_unused : 1; /* Unused bit */ unsigned pb$v_credit : 1; /* SCS receive credit on free queue */ unsigned pb$v_disc : 1; /* SCS disconnect request is in progress */ unsigned pb$v_storage : 1; /* Storage only port (A DSSA port) */ unsigned pb$v_clone : 1; /* Clone (duplicate) node detected */ unsigned pb$v_fill_3_ : 7; } pb$r_sts_bits; } pb$r_sts_overlay; unsigned short int pb$w_vcfail_rsn; /*VC FAILURE REASON (VMS */ /*STATUS CODE */ unsigned char pb$b_protocol; /*PPD PROTOCOL LEVEL */ char pb$$_fill_2 [3]; /*RESERVED BYTES */ unsigned int pb$l_rport_mult; /*LARGEST PACKET MULTIPLE OF THE REMOTE PORT (CI ONLY) */ /* SHIFTED TO BIT POSITION <30:28> */ unsigned int pb$l_time_stamp; /* (TYC 9-Mar-89) PB INSERTION TO CONFIG. DB TIME STAMP */ struct _pb *pb$l_share_flink; /* (TYC 15-Feb-89) FWD LINK TO NEXT PB IN LOAD SHARE QUEUE */ struct _pb *pb$l_share_blink; /* (TYC 15-Feb-89) BACK LINK TO PREVIOUS PB IN LOAD SHARE QUEUE */ __union { /* Temporary overlay until VC_COST can be removed */ int pb$l_load_class; /* VC's Load class - set by port to indicate */ /* max performance of underlying hardware. */ /* Interconnect load class values (Raw HW BW in Mb/S): */ __struct { /* Also temporary */ unsigned int pb$l_vc_cost; /* Load Sharing Cost for this Virtual Circuit (to be removed) */ } pb$r_cost_load_tmp2; } pb$r_cost_load_tmp; int pb$l_priority; /* VC's current priority for connection selection, */ /* Includes both PB$ & PDT$ management priorities */ int pb$l_mgt_priority; /* Management priority value assigned to this VC. */ unsigned int pb$l_vc_addr; /* Address of Interconnect specific VC state block */ /* (eg: a PEdriver VC$ structure). SBZ if port doesn't have any. */ int pb$$_fill_3 [2]; /*RESERVED LONGWDS */ char pb$t_lport_name_alias [16]; /* copy of LOCAL PORT DEVICE NAME */ /* */ /* Tracing cells */ /* */ unsigned int pb$l_cont_id; /* Current continuation ID mask */ /* Trace buffer address. */ /* 0 - tracing deselected for this pb */ /* 1 - trace buffer to be allocated */ /* other - allocated and selected */ void *pb$a_trace_buffer; /* Trace buffer adddress */ /* Debug fields */ unsigned int pb$l_dbg0; unsigned int pb$l_dbg1; unsigned int pb$l_dbg2; unsigned int pb$l_dbg3; unsigned int pb$l_dbg4; unsigned int pb$l_dbg5; unsigned int pb$l_dbg6; unsigned int pb$l_dbg7; } PB; #if !defined(__VAXC) #define pb$l_rport_typ pb$r_rport_typ_overlay.pb$l_rport_typ #define pb$v_port_typ pb$r_rport_typ_overlay.pb$r_rport_typ_bits.pb$v_port_typ #define pb$v_dualpath pb$r_rport_typ_overlay.pb$r_rport_typ_bits.pb$v_dualpath #define pb$l_rport_rev pb$r_rport_rev_overlay.pb$l_rport_rev #define pb$v_rport_rev_spare pb$r_rport_rev_overlay.pb$r_rport_rev_bits.pb$v_rport_rev_spare #define pb$v_rport_spc_rev pb$r_rport_rev_overlay.pb$r_rport_rev_bits.pb$v_rport_spc_rev #define pb$v_rport_rev_resv1 pb$r_rport_rev_overlay.pb$r_rport_rev_bits.pb$v_rport_rev_resv1 #define pb$l_rport_fcn pb$r_rport_fcn_overlay.pb$l_rport_fcn #define pb$v_mbz pb$r_rport_fcn_overlay.pb$r_rport_fcn_bits.pb$v_mbz #define pb$v_srsntdatwm pb$r_rport_fcn_overlay.pb$r_rport_fcn_bits.pb$v_srsntdatwm #define pb$b_rstate pb$r_rstate_overlay.pb$b_rstate #define pb$v_maint pb$r_rstate_overlay.pb$r_rstate_bits.pb$v_maint #define pb$v_state pb$r_rstate_overlay.pb$r_rstate_bits.pb$v_state #define pb$b_cbl_sts pb$r_cbl_sts_overlay.pb$b_cbl_sts #define pb$v_cur_cbl pb$r_cbl_sts_overlay.pb$r_cbl_sts_bits.pb$v_cur_cbl #define pb$b_p1_sts pb$r_p1_sts_overlay.pb$b_p1_sts #define pb$v_cur_ps pb$r_p1_sts_overlay.pb$r_p1_sts_bits.pb$v_cur_ps #define pb$l_waitqbl pb$r_waitqbl_overlay.pb$l_waitqbl #define pb$l_duetime pb$r_waitqbl_overlay.pb$l_duetime #define pb$w_sts pb$r_sts_overlay.pb$w_sts #define pb$v_tim pb$r_sts_overlay.pb$r_sts_bits.pb$v_tim #define pb$v_vcchk_enb pb$r_sts_overlay.pb$r_sts_bits.pb$v_vcchk_enb #define pb$v_scs_exp pb$r_sts_overlay.pb$r_sts_bits.pb$v_scs_exp #define pb$v_new_msg pb$r_sts_overlay.pb$r_sts_bits.pb$v_new_msg #define pb$v_unused pb$r_sts_overlay.pb$r_sts_bits.pb$v_unused #define pb$v_credit pb$r_sts_overlay.pb$r_sts_bits.pb$v_credit #define pb$v_disc pb$r_sts_overlay.pb$r_sts_bits.pb$v_disc #define pb$v_storage pb$r_sts_overlay.pb$r_sts_bits.pb$v_storage #define pb$v_clone pb$r_sts_overlay.pb$r_sts_bits.pb$v_clone #define pb$l_load_class pb$r_cost_load_tmp.pb$l_load_class #define pb$l_vc_cost pb$r_cost_load_tmp.pb$r_cost_load_tmp2.pb$l_vc_cost #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 /* __PBDEF_LOADED */