--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:19 by OpenVMS SDL EV3-3 -- Source: 30-OCT-2008 13:05:23 $1$DGA8085:[LIB_ADA.LIS]CSBDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; with FKBDEF;use FKBDEF; package CSBDEF is -- module $CSBDEF --+ -- CSB - Cluster System Block -- -- There is one CSB for each system in the cluster. -- It is used by the connection manager to synchronize -- cluster communications and configuration. Access -- to the CSB is synchronized with the SCS spinlock. --- CSB_M_CAP_VCC : constant := 16#00000002#; CSB_M_CAP_EXT_STATUS : constant := 16#00000008#; CSB_M_CAP_CWCREPRC : constant := 16#00000010#; CSB_M_CAP_THREADS : constant := 16#00000020#; CSB_M_CAP_CWLOGICALS : constant := 16#00000040#; CSB_M_CAP_IPC_DEMULT_CONN : constant := 16#00000080#; CSB_M_CAP_RMBXFR : constant := 16#00000100#; CSB_M_CAP_WBM_SHADOW : constant := 16#00000200#; CSB_M_CAP_WBM_ALL : constant := 16#00000400#; CSB_M_CAP_SCHED_CLASS : constant := 16#00000800#; CSB_M_CAP_WBM_AMCVP : constant := 16#00001000#; CSB_M_CAP_WBM_TYPE : constant := 16#00002000#; CSB_M_LONG_BREAK : constant := 16#00000001#; CSB_M_MEMBER : constant := 16#00000002#; CSB_M_REMOVED : constant := 16#00000004#; CSB_M_QF_SAME : constant := 16#00000008#; CSB_M_QF_WATCHER : constant := 16#00000010#; CSB_M_QF_NOACCESS : constant := 16#00000020#; CSB_M_CLUSTER : constant := 16#00000100#; CSB_M_QF_ACTIVE : constant := 16#00000200#; CSB_M_SHUTDOWN : constant := 16#00000400#; CSB_M_GONE : constant := 16#00000800#; CSB_M_RESYNCH_FKB_BSY : constant := 16#00001000#; CSB_M_RESEND_FKB_BSY : constant := 16#00002000#; CSB_M_RCVMSG_FRK_IP : constant := 16#00004000#; CSB_M_RCVMSG_FKB_BSY : constant := 16#00008000#; CSB_M_LOCKED : constant := 16#00010000#; CSB_M_SELECTED : constant := 16#00020000#; CSB_M_RESERVED1 : constant := 16#00040000#; CSB_M_SEND_EXT_STATUS : constant := 16#00080000#; CSB_M_FORCED_STALL : constant := 16#00100000#; CSB_M_LOCAL : constant := 16#01000000#; CSB_M_STATUS_RCVD : constant := 16#02000000#; CSB_M_SEND_STATUS : constant := 16#04000000#; CSB_M_QF_RFRSH_RQD : constant := 16#08000000#; CSB_M_QF_RFRSH_IP : constant := 16#10000000#; CSB_M_QF_IOSYNCH : constant := 16#20000000#; CSB_M_ACT_LSHARE : constant := 16#40000000#; CSB_M_PASS_LSHARE : constant := 16#80000000#; CSB_K_OPEN : constant := 1; -- Open (normal) CSB_K_STATUS : constant := 2; -- Sending/waiting for status CSB_K_RECONNECT : constant := 3; -- Attempting to reconnect CSB_K_NEW : constant := 4; -- Brand new block CSB_K_CONNECT : constant := 5; -- Attempting initial connection CSB_K_ACCEPT : constant := 6; -- Accepting initial connection CSB_K_DISCONNECT : constant := 7; -- Disconnect in progress CSB_K_REACCEPT : constant := 8; -- Accepting reconnect request CSB_K_WAIT : constant := 9; -- Time-out in progress CSB_K_DEAD : constant := 10; -- No connection possible CSB_K_LOCAL : constant := 11; -- Local system CSB CSB_C_LENGTH : constant := 520; -- Length of fixed portion of CSB CSB_K_LENGTH : constant := 520; -- Length of fixed portion of CSB CSB_S_CSBDEF : constant := 520; -- Old size name - synonym for fixed portion of CSB type CSB_FILL_1_TYPE is record CLUVER : UNSIGNED_BYTE; -- Cluster version number end record; for CSB_FILL_1_TYPE use record CLUVER at 0 range 0 .. 7; end record; for CSB_FILL_1_TYPE'SIZE use 8; CSB_FILL_1_TYPE_INIT : constant CSB_FILL_1_TYPE := (CLUVER => 0); type CSB_FILL_3_TYPE is record ECOLVL : UNSIGNED_BYTE; -- Protocol ECO level VERNUM : UNSIGNED_BYTE; -- Protocol Version number end record; for CSB_FILL_3_TYPE use record ECOLVL at 0 range 0 .. 7; VERNUM at 1 range 0 .. 7; end record; for CSB_FILL_3_TYPE'SIZE use 16; CSB_FILL_3_TYPE_INIT : constant CSB_FILL_3_TYPE := (ECOLVL => 0, VERNUM => 0); type CSB_FILL_5_TYPE is record VOTES : UNSIGNED_WORD; -- Votes held by node end record; for CSB_FILL_5_TYPE use record VOTES at 0 range 0 .. 15; end record; for CSB_FILL_5_TYPE'SIZE use 16; CSB_FILL_5_TYPE_INIT : constant CSB_FILL_5_TYPE := (VOTES => 0); type CSB_FILL_7_TYPE is record EVOTES : UNSIGNED_WORD; -- Remote node's Expected Votes end record; for CSB_FILL_7_TYPE use record EVOTES at 0 range 0 .. 15; end record; for CSB_FILL_7_TYPE'SIZE use 16; CSB_FILL_7_TYPE_INIT : constant CSB_FILL_7_TYPE := (EVOTES => 0); type CSB_FILL_9_TYPE is record QDVOTES : UNSIGNED_WORD; -- Votes assigned to quorum disk end record; for CSB_FILL_9_TYPE use record QDVOTES at 0 range 0 .. 15; end record; for CSB_FILL_9_TYPE'SIZE use 16; CSB_FILL_9_TYPE_INIT : constant CSB_FILL_9_TYPE := (QDVOTES => 0); type CSB_FILL_11_TYPE is record QUORUM : UNSIGNED_WORD; -- Quorum set in node end record; for CSB_FILL_11_TYPE use record QUORUM at 0 range 0 .. 15; end record; for CSB_FILL_11_TYPE'SIZE use 16; CSB_FILL_11_TYPE_INIT : constant CSB_FILL_11_TYPE := (QUORUM => 0); type CSB_FILL_13_TYPE is record NODES : UNSIGNED_WORD; -- Number of nodes in remote cluster end record; for CSB_FILL_13_TYPE use record NODES at 0 range 0 .. 15; end record; for CSB_FILL_13_TYPE'SIZE use 16; CSB_FILL_13_TYPE_INIT : constant CSB_FILL_13_TYPE := (NODES => 0); type CSB_FILL_15_TYPE is record CNX_STS_R0 : UNSIGNED_WORD; -- Connection request R0 status end record; for CSB_FILL_15_TYPE use record CNX_STS_R0 at 0 range 0 .. 15; end record; for CSB_FILL_15_TYPE'SIZE use 16; CSB_FILL_15_TYPE_INIT : constant CSB_FILL_15_TYPE := (CNX_STS_R0 => 0); type CSB_FILL_17_TYPE is record CNX_STS_R1 : UNSIGNED_WORD; -- Connection request R1 status end record; for CSB_FILL_17_TYPE use record CNX_STS_R1 at 0 range 0 .. 15; end record; for CSB_FILL_17_TYPE'SIZE use 16; CSB_FILL_17_TYPE_INIT : constant CSB_FILL_17_TYPE := (CNX_STS_R1 => 0); type CSB_CSID_TYPE is -- Cluster System ID: record CSID_IDX : UNSIGNED_WORD; -- Slot index CSID_SEQ : UNSIGNED_WORD; -- Sequence number end record; for CSB_CSID_TYPE use record CSID_IDX at 0 range 0 .. 15; CSID_SEQ at 2 range 0 .. 15; end record; for CSB_CSID_TYPE'SIZE use 32; CSB_CSID_TYPE_INIT : constant CSB_CSID_TYPE := (CSID_IDX => 0, CSID_SEQ => 0); type CSB_FILL_21_TYPE is record CNID : UNSIGNED_WORD; -- Cluster Node ID end record; for CSB_FILL_21_TYPE use record CNID at 0 range 0 .. 15; end record; for CSB_FILL_21_TYPE'SIZE use 16; CSB_FILL_21_TYPE_INIT : constant CSB_FILL_21_TYPE := (CNID => 0); type CSB_PARTNERQ_TYPE is record PARTNERQFL : ADDRESS; -- Block XFER PARTNER BTX Queue Forward Link PARTNERQBL : ADDRESS; -- Block XFER PARTNER BTX Queue Backward Link end record; for CSB_PARTNERQ_TYPE use record PARTNERQFL at 0 range 0 .. 31; PARTNERQBL at 4 range 0 .. 31; end record; for CSB_PARTNERQ_TYPE'SIZE use 64; CSB_PARTNERQ_TYPE_INIT : constant CSB_PARTNERQ_TYPE := (PARTNERQFL => ADDRESS_ZERO, PARTNERQBL => ADDRESS_ZERO); type CSB_WARMCDRPQ_TYPE is record WARMCDRPQFL : ADDRESS; -- Warm CDRP Queue Forward Link WARMCDRPQBL : ADDRESS; -- Warm CDRP Queue Backward Link end record; for CSB_WARMCDRPQ_TYPE use record WARMCDRPQFL at 0 range 0 .. 31; WARMCDRPQBL at 4 range 0 .. 31; end record; for CSB_WARMCDRPQ_TYPE'SIZE use 64; CSB_WARMCDRPQ_TYPE_INIT : constant CSB_WARMCDRPQ_TYPE := (WARMCDRPQFL => ADDRESS_ZERO, WARMCDRPQBL => ADDRESS_ZERO); type CSB_RM_CTXQ_TYPE is -- Remaster Context Block Queue: record RM_CTXQFL : UNSIGNED_LONGWORD; -- CTXQ Forward Link RM_CTXQBL : UNSIGNED_LONGWORD; -- CTXQ Backward Link end record; for CSB_RM_CTXQ_TYPE use record RM_CTXQFL at 0 range 0 .. 31; RM_CTXQBL at 4 range 0 .. 31; end record; for CSB_RM_CTXQ_TYPE'SIZE use 64; CSB_RM_CTXQ_TYPE_INIT : constant CSB_RM_CTXQ_TYPE := (RM_CTXQFL => 0, RM_CTXQBL => 0); type CSB_CAPABILITY_TYPE is -- Node capabilities record FILLER_1 : BOOLEAN; -- obsoleted CAP_RM8SEC CAP_VCC : BOOLEAN; -- VCC Enabled FILLER_2 : BOOLEAN; -- obsoleted CAP_DTS CAP_EXT_STATUS : BOOLEAN; -- Extended status message CAP_CWCREPRC : BOOLEAN; -- Clusterwide $CREPRC support CAP_THREADS : BOOLEAN; -- Kernel threads support CAP_CWLOGICALS : BOOLEAN; -- Clusterwide Logicals support CAP_IPC_DEMULT_CONN : BOOLEAN; -- IPC supports de-multiplexed connections CAP_RMBXFR : BOOLEAN; -- Can send/receive block remasters CAP_WBM_SHADOW : BOOLEAN; -- Supports Write BitMap for shadow member copy operations CAP_WBM_ALL : BOOLEAN; -- Supports Write BitMap for all disks CAP_SCHED_CLASS : BOOLEAN; -- Supports class scheduling via class scheduler database file CAP_WBM_AMCVP : BOOLEAN; -- Supports AMCVP enhancements CAP_WBM_TYPE : BOOLEAN; -- Supports WBM bitmap TYPE enhancements FILLER_3 : UNSIGNED_18; end record; for CSB_CAPABILITY_TYPE use record FILLER_1 at 0 range 0 .. 0; CAP_VCC at 0 range 1 .. 1; FILLER_2 at 0 range 2 .. 2; CAP_EXT_STATUS at 0 range 3 .. 3; CAP_CWCREPRC at 0 range 4 .. 4; CAP_THREADS at 0 range 5 .. 5; CAP_CWLOGICALS at 0 range 6 .. 6; CAP_IPC_DEMULT_CONN at 0 range 7 .. 7; CAP_RMBXFR at 1 range 0 .. 0; CAP_WBM_SHADOW at 1 range 1 .. 1; CAP_WBM_ALL at 1 range 2 .. 2; CAP_SCHED_CLASS at 1 range 3 .. 3; CAP_WBM_AMCVP at 1 range 4 .. 4; CAP_WBM_TYPE at 1 range 5 .. 5; FILLER_3 at 1 range 6 .. 23; end record; for CSB_CAPABILITY_TYPE'SIZE use 32; CSB_CAPABILITY_TYPE_INIT : constant CSB_CAPABILITY_TYPE := (FILLER_1 => FALSE, CAP_VCC => FALSE, FILLER_2 => FALSE, CAP_EXT_STATUS => FALSE, CAP_CWCREPRC => FALSE, CAP_THREADS => FALSE, CAP_CWLOGICALS => FALSE, CAP_IPC_DEMULT_CONN => FALSE, CAP_RMBXFR => FALSE, CAP_WBM_SHADOW => FALSE, CAP_WBM_ALL => FALSE, CAP_SCHED_CLASS => FALSE, CAP_WBM_AMCVP => FALSE, CAP_WBM_TYPE => FALSE, FILLER_3 => 0); type CSB_STATUS_TYPE is -- Status of node in cluster record LONG_BREAK : BOOLEAN; -- Long break in connection MEMBER : BOOLEAN; -- Node is member of local cluster REMOVED : BOOLEAN; -- Node removed from cluster QF_SAME : BOOLEAN; -- Remote quorum disk matches local disk QF_WATCHER : BOOLEAN; -- Remote node is watching a quorum file QF_NOACCESS : BOOLEAN; -- Node will never access quorum disk FILLER_1 : UNSIGNED_2; -- Pad to next byte boundary CLUSTER : BOOLEAN; -- Remote node is cluster member QF_ACTIVE : BOOLEAN; -- Remote node's quorum file is readable SHUTDOWN : BOOLEAN; -- Remote node ready for cluster shutdown GONE : BOOLEAN; -- Known to have shutdown RESYNCH_FKB_BSY : BOOLEAN; -- MSGBLD Resynch Fork Block busy RESEND_FKB_BSY : BOOLEAN; -- Resend_Msgs Fork Block busy RCVMSG_FRK_IP : BOOLEAN; -- SCS2LCKMGR fork thread is active RCVMSG_FKB_BSY : BOOLEAN; -- SCS2LCKMGR fork block is queued, thread may or may not be active LOCKED : BOOLEAN; -- Node locked by coordinator SELECTED : BOOLEAN; -- Node selected by coordinator RESERVED1 : BOOLEAN; -- Bit was used for a VAX release SEND_EXT_STATUS : BOOLEAN; -- Need to send extended status FORCED_STALL : BOOLEAN; -- Waiting for remote acks to avoid remote overload FILLER_2 : UNSIGNED_3; -- Pad to next byte boundary LOCAL : BOOLEAN; -- This CSB is the local system STATUS_RCVD : BOOLEAN; -- Status received from remote system SEND_STATUS : BOOLEAN; -- Need to send status to remote system QF_RFRSH_RQD : BOOLEAN; -- Need Quorum File refresh QF_RFRSH_IP : BOOLEAN; -- Quorum File refresh in progress QF_IOSYNCH : BOOLEAN; -- Quorum File I/O synch done ACT_LSHARE : BOOLEAN; -- Active side to load sharing PASS_LSHARE : BOOLEAN; -- Passive side to load sharing end record; for CSB_STATUS_TYPE use record LONG_BREAK at 0 range 0 .. 0; MEMBER at 0 range 1 .. 1; REMOVED at 0 range 2 .. 2; QF_SAME at 0 range 3 .. 3; QF_WATCHER at 0 range 4 .. 4; QF_NOACCESS at 0 range 5 .. 5; FILLER_1 at 0 range 6 .. 7; CLUSTER at 1 range 0 .. 0; QF_ACTIVE at 1 range 1 .. 1; SHUTDOWN at 1 range 2 .. 2; GONE at 1 range 3 .. 3; RESYNCH_FKB_BSY at 1 range 4 .. 4; RESEND_FKB_BSY at 1 range 5 .. 5; RCVMSG_FRK_IP at 1 range 6 .. 6; RCVMSG_FKB_BSY at 1 range 7 .. 7; LOCKED at 2 range 0 .. 0; SELECTED at 2 range 1 .. 1; RESERVED1 at 2 range 2 .. 2; SEND_EXT_STATUS at 2 range 3 .. 3; FORCED_STALL at 2 range 4 .. 4; FILLER_2 at 2 range 5 .. 7; LOCAL at 3 range 0 .. 0; STATUS_RCVD at 3 range 1 .. 1; SEND_STATUS at 3 range 2 .. 2; QF_RFRSH_RQD at 3 range 3 .. 3; QF_RFRSH_IP at 3 range 4 .. 4; QF_IOSYNCH at 3 range 5 .. 5; ACT_LSHARE at 3 range 6 .. 6; PASS_LSHARE at 3 range 7 .. 7; end record; for CSB_STATUS_TYPE'SIZE use 32; CSB_STATUS_TYPE_INIT : constant CSB_STATUS_TYPE := (LONG_BREAK => FALSE, MEMBER => FALSE, REMOVED => FALSE, QF_SAME => FALSE, QF_WATCHER => FALSE, QF_NOACCESS => FALSE, FILLER_1 => 0, CLUSTER => FALSE, QF_ACTIVE => FALSE, SHUTDOWN => FALSE, GONE => FALSE, RESYNCH_FKB_BSY => FALSE, RESEND_FKB_BSY => FALSE, RCVMSG_FRK_IP => FALSE, RCVMSG_FKB_BSY => FALSE, LOCKED => FALSE, SELECTED => FALSE, RESERVED1 => FALSE, SEND_EXT_STATUS => FALSE, FORCED_STALL => FALSE, FILLER_2 => 0, LOCAL => FALSE, STATUS_RCVD => FALSE, SEND_STATUS => FALSE, QF_RFRSH_RQD => FALSE, QF_RFRSH_IP => FALSE, QF_IOSYNCH => FALSE, ACT_LSHARE => FALSE, PASS_LSHARE => FALSE); type CSB_FILL_33_TYPE is record SENDSEQNM : UNSIGNED_WORD; -- Next sequence number to send end record; for CSB_FILL_33_TYPE use record SENDSEQNM at 0 range 0 .. 15; end record; for CSB_FILL_33_TYPE'SIZE use 16; CSB_FILL_33_TYPE_INIT : constant CSB_FILL_33_TYPE := (SENDSEQNM => 0); type CSB_FILL_35_TYPE is record RCVDSEQNM : UNSIGNED_WORD; -- Last Sequence Number received end record; for CSB_FILL_35_TYPE use record RCVDSEQNM at 0 range 0 .. 15; end record; for CSB_FILL_35_TYPE'SIZE use 16; CSB_FILL_35_TYPE_INIT : constant CSB_FILL_35_TYPE := (RCVDSEQNM => 0); type CSB_FILL_37_TYPE is record ACKRSEQNM : UNSIGNED_WORD; -- Last ACK'd received Sequence Number end record; for CSB_FILL_37_TYPE use record ACKRSEQNM at 0 range 0 .. 15; end record; for CSB_FILL_37_TYPE'SIZE use 16; CSB_FILL_37_TYPE_INIT : constant CSB_FILL_37_TYPE := (ACKRSEQNM => 0); type CSB_FILL_39_TYPE is record LASTSENT : UNSIGNED_WORD; -- Sequence Number of message last sent end record; for CSB_FILL_39_TYPE use record LASTSENT at 0 range 0 .. 15; end record; for CSB_FILL_39_TYPE'SIZE use 16; CSB_FILL_39_TYPE_INIT : constant CSB_FILL_39_TYPE := (LASTSENT => 0); type CSB_FILL_41_TYPE is record PASS_CNTR : UNSIGNED_WORD; -- Total passive loadshare operations end record; for CSB_FILL_41_TYPE use record PASS_CNTR at 0 range 0 .. 15; end record; for CSB_FILL_41_TYPE'SIZE use 16; CSB_FILL_41_TYPE_INIT : constant CSB_FILL_41_TYPE := (PASS_CNTR => 0); type CSB_FILL_43_TYPE is record ACT_CNTR : UNSIGNED_WORD; -- Total active loadshare operations end record; for CSB_FILL_43_TYPE use record ACT_CNTR at 0 range 0 .. 15; end record; for CSB_FILL_43_TYPE'SIZE use 16; CSB_FILL_43_TYPE_INIT : constant CSB_FILL_43_TYPE := (ACT_CNTR => 0); type CSB_FILL_45_TYPE is record ERR_CNTR : UNSIGNED_WORD; -- Total errors on connection end record; for CSB_FILL_45_TYPE use record ERR_CNTR at 0 range 0 .. 15; end record; for CSB_FILL_45_TYPE'SIZE use 16; CSB_FILL_45_TYPE_INIT : constant CSB_FILL_45_TYPE := (ERR_CNTR => 0); type CSB_TYPE is record SYSQFL : ADDRESS; -- System Queue Forward Link SYSQBL : ADDRESS; -- System Queue Backward Link SIZE : UNSIGNED_WORD; -- Size of CSB in bytes TYP : UNSIGNED_BYTE; -- Structure Type (DYN$C_CLU) SUBTYP : UNSIGNED_BYTE; -- Structure Subtype (DYN$C_CLU_CSB) CLUVER : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_1 : CSB_FILL_1_TYPE; PROTOCOL : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_3 : CSB_FILL_3_TYPE; CACHE_PROTOCOL_VER : UNSIGNED_LONGWORD; -- Cache protocol version LCKDIRWT : UNSIGNED_WORD; -- Lock Manager distributed directory weight LCKRMWT : UNSIGNED_WORD; -- Lock Manager remaster weight VOTES : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_5 : CSB_FILL_5_TYPE; EVOTES : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_7 : CSB_FILL_7_TYPE; QDVOTES : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_9 : CSB_FILL_9_TYPE; QUORUM : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_11 : CSB_FILL_11_TYPE; NODES : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_13 : CSB_FILL_13_TYPE; CNCT : INTEGER_8_ARRAY (1 .. 16); -- SCS CONNECT/ACCEPT Data Area NODEMAP : INTEGER_8_ARRAY (1 .. 32); -- Bitmap of node connectivity HWNAME : INTEGER_8_ARRAY (1 .. 61); -- Hardware Model Name HWNAME_PAD : INTEGER_8_ARRAY (1 .. 3); -- Explicitly pad to next quadword SW_VERSION : STRING(1 .. 8); -- VMS Software Version SWINCARN : UNSIGNED_QUADWORD; -- Remote Software Incarnation Number REFTIME : UNSIGNED_QUADWORD; -- Creation/Addition/Removal time LNM_SEQNUM : UNSIGNED_QUADWORD; -- Clusterwide Logicals Sequence Number LCKRM_BXFRSEQ : UNSIGNED_QUADWORD; -- LCKMGR Remaster Block XFER Sequence Number CNX_STS_R0 : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_15 : CSB_FILL_15_TYPE; CNX_STS_R1 : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_17 : CSB_FILL_17_TYPE; RESYNCH_FKB : FKB_TYPE; -- Message Build Resynch Fork Block RESEND_MSGS_FKB : FKB_TYPE; -- Resend Messages Fork Block SCS2LCKMGR_FKB : FKB_TYPE; -- Received Messages Fork Block CDT : ADDRESS; -- Address of CDT PDT : ADDRESS; -- Address of PDT CLUB : ADDRESS; -- Address of CLUB SB : ADDRESS; -- Address of System Block for remote system TQE : ADDRESS; -- Address of Timer Queue Entry TIMEOUT : UNSIGNED_LONGWORD; -- Time to give up reCONNECTing RMAX_VCTMO : UNSIGNED_LONGWORD; -- Maximum Remote Virtual Circuit Timeout Interval ABSTIM_OFFSET : INTEGER_32; -- Offset to obtain remote node's ABSTIM CSID : CSB_CSID_TYPE; -- Cluster System ID: CNID : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_21 : CSB_FILL_21_TYPE; PARTNERQ : CSB_PARTNERQ_TYPE; WARMCDRPQ : CSB_WARMCDRPQ_TYPE; RM_CTXQ : CSB_RM_CTXQ_TYPE; -- Remaster Context Block Queue: SENTQFL : ADDRESS; -- SENT Messages List Forward Link (Head) SENTQBL : ADDRESS; -- SENT Messages List Backward Link (Tail) RESENDQFL : ADDRESS; -- RESEND Messages List Forward Link (Head) RESENDQBL : ADDRESS; -- RESEND Messages List Backward Link (Tail) CAPABILITY : CSB_CAPABILITY_TYPE; -- Node capabilities STATUS : CSB_STATUS_TYPE; -- Status of node in cluster STATE : UNSIGNED_LONGWORD; -- State of connection CURRCDRP : ADDRESS; -- Address of CDRP in critical section REFCNT : UNSIGNED_LONGWORD; -- Reference count UNACKEDMSGS : UNSIGNED_LONGWORD; -- Number of unacked messages REMACKLIM : UNSIGNED_LONGWORD; -- Remote side's ACK Limit WARMCDRPS : UNSIGNED_LONGWORD; -- Number of CDRPs on free queue SENDSEQNM : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_33 : CSB_FILL_33_TYPE; RCVDSEQNM : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_35 : CSB_FILL_35_TYPE; ACKRSEQNM : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_37 : CSB_FILL_37_TYPE; LASTSENT : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_39 : CSB_FILL_39_TYPE; PASS_CNTR : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_41 : CSB_FILL_41_TYPE; ACT_CNTR : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_43 : CSB_FILL_43_TYPE; ERR_CNTR : UNSIGNED_LONGWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FILL_45 : CSB_FILL_45_TYPE; SCS2LCKMGR_MAXIDX : UNSIGNED_LONGWORD; -- Max index for SCS2LCKMGR_MSGARRAY MAXMSGSIZ : UNSIGNED_LONGWORD; -- Max message size allowed to send to this node SPARE_LW1 : UNSIGNED_LONGWORD; SPARE_QW2 : UNSIGNED_QUADWORD; FILLER_1 : UNSIGNED_QUADWORD; -- Pad union to match quadword alignment for C ----Component(s) below are defined as comments since they ----overlap other fields ---- ----SCS2LCKMGR_MSGCNT : UNSIGNED_LONGWORD; -- Number of received msgbufs waiting for LCKMGR spinlock (at element ----SCS2LCKMGR_MSGARRAY : INTEGER_32; -- Array of msgbuf addresses waiting for LCKMGR spinlock (starting at elem -- N.B. -- Do not add any symbols beyond the lckmgr_fork_overlay -- it must be the last -- entry in the CSB as the SCS2LCKMGR_MSGARRAY is dynamically sized based on the -- CLUSTER_CREDITS SYSGEN parameter. end record; for CSB_TYPE use record SYSQFL at 0 range 0 .. 31; SYSQBL at 4 range 0 .. 31; SIZE at 8 range 0 .. 15; TYP at 10 range 0 .. 7; SUBTYP at 11 range 0 .. 7; CLUVER at 12 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_1 at 12 range 0 .. 7; PROTOCOL at 16 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_3 at 16 range 0 .. 15; CACHE_PROTOCOL_VER at 20 range 0 .. 31; LCKDIRWT at 24 range 0 .. 15; LCKRMWT at 26 range 0 .. 15; VOTES at 28 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_5 at 28 range 0 .. 15; EVOTES at 32 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_7 at 32 range 0 .. 15; QDVOTES at 36 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_9 at 36 range 0 .. 15; QUORUM at 40 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_11 at 40 range 0 .. 15; NODES at 44 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_13 at 44 range 0 .. 15; CNCT at 48 range 0 .. 127; NODEMAP at 64 range 0 .. 255; HWNAME at 96 range 0 .. 487; HWNAME_PAD at 157 range 0 .. 23; SW_VERSION at 160 range 0 .. 63; SWINCARN at 168 range 0 .. 63; REFTIME at 176 range 0 .. 63; LNM_SEQNUM at 184 range 0 .. 63; LCKRM_BXFRSEQ at 192 range 0 .. 63; CNX_STS_R0 at 200 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_15 at 200 range 0 .. 15; CNX_STS_R1 at 204 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_17 at 204 range 0 .. 15; RESYNCH_FKB at 208 range 0 .. 383; RESEND_MSGS_FKB at 256 range 0 .. 383; SCS2LCKMGR_FKB at 304 range 0 .. 383; CDT at 352 range 0 .. 31; PDT at 356 range 0 .. 31; CLUB at 360 range 0 .. 31; SB at 364 range 0 .. 31; TQE at 368 range 0 .. 31; TIMEOUT at 372 range 0 .. 31; RMAX_VCTMO at 376 range 0 .. 31; ABSTIM_OFFSET at 380 range 0 .. 31; CSID at 384 range 0 .. 31; CNID at 388 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_21 at 388 range 0 .. 15; PARTNERQ at 392 range 0 .. 63; WARMCDRPQ at 400 range 0 .. 63; RM_CTXQ at 408 range 0 .. 63; SENTQFL at 416 range 0 .. 31; SENTQBL at 420 range 0 .. 31; RESENDQFL at 424 range 0 .. 31; RESENDQBL at 428 range 0 .. 31; CAPABILITY at 432 range 0 .. 31; STATUS at 436 range 0 .. 31; STATE at 440 range 0 .. 31; CURRCDRP at 444 range 0 .. 31; REFCNT at 448 range 0 .. 31; UNACKEDMSGS at 452 range 0 .. 31; REMACKLIM at 456 range 0 .. 31; WARMCDRPS at 460 range 0 .. 31; SENDSEQNM at 464 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_33 at 464 range 0 .. 15; RCVDSEQNM at 468 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_35 at 468 range 0 .. 15; ACKRSEQNM at 472 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_37 at 472 range 0 .. 15; LASTSENT at 476 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_39 at 476 range 0 .. 15; PASS_CNTR at 480 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_41 at 480 range 0 .. 15; ACT_CNTR at 484 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_43 at 484 range 0 .. 15; ERR_CNTR at 488 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FILL_45 at 488 range 0 .. 15; SCS2LCKMGR_MAXIDX at 492 range 0 .. 31; MAXMSGSIZ at 496 range 0 .. 31; SPARE_LW1 at 500 range 0 .. 31; SPARE_QW2 at 504 range 0 .. 63; FILLER_1 at 512 range 0 .. 63; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----SCS2LCKMGR_MSGCNT at 512 range 0 .. 31; ----SCS2LCKMGR_MSGARRAY at 512 range 0 .. 31; end record; for CSB_TYPE'SIZE use 4160; CSB_TYPE_INIT : constant CSB_TYPE := (SYSQFL => ADDRESS_ZERO, SYSQBL => ADDRESS_ZERO, SIZE => 0, TYP => 0, SUBTYP => 0, CLUVER => 0, PROTOCOL => 0, CACHE_PROTOCOL_VER => 0, LCKDIRWT => 0, LCKRMWT => 0, VOTES => 0, EVOTES => 0, QDVOTES => 0, QUORUM => 0, NODES => 0, CNCT => (others => 0), NODEMAP => (others => 0), HWNAME => (others => 0), HWNAME_PAD => (others => 0), SW_VERSION => (others => ASCII.NUL), SWINCARN => (0, 0), REFTIME => (0, 0), LNM_SEQNUM => (0, 0), LCKRM_BXFRSEQ => (0, 0), CNX_STS_R0 => 0, CNX_STS_R1 => 0, RESYNCH_FKB => FKB_TYPE_INIT, RESEND_MSGS_FKB => FKB_TYPE_INIT, SCS2LCKMGR_FKB => FKB_TYPE_INIT, CDT => ADDRESS_ZERO, PDT => ADDRESS_ZERO, CLUB => ADDRESS_ZERO, SB => ADDRESS_ZERO, TQE => ADDRESS_ZERO, TIMEOUT => 0, RMAX_VCTMO => 0, ABSTIM_OFFSET => 0, CSID => CSB_CSID_TYPE_INIT, CNID => 0, PARTNERQ => CSB_PARTNERQ_TYPE_INIT, WARMCDRPQ => CSB_WARMCDRPQ_TYPE_INIT, RM_CTXQ => CSB_RM_CTXQ_TYPE_INIT SENTQFL => ADDRESS_ZERO, SENTQBL => ADDRESS_ZERO, RESENDQFL => ADDRESS_ZERO, RESENDQBL => ADDRESS_ZERO, CAPABILITY => CSB_CAPABILITY_TYPE_INIT, STATUS => CSB_STATUS_TYPE_INIT, STATE => 0, CURRCDRP => ADDRESS_ZERO, REFCNT => 0, UNACKEDMSGS => 0, REMACKLIM => 0, WARMCDRPS => 0, SENDSEQNM => 0, RCVDSEQNM => 0, ACKRSEQNM => 0, LASTSENT => 0, PASS_CNTR => 0, ACT_CNTR => 0, ERR_CNTR => 0, SCS2LCKMGR_MAXIDX => 0, MAXMSGSIZ => 0, SPARE_LW1 => 0, SPARE_QW2 => (0, 0), FILLER_1 => (0, 0) ); end CSBDEF;