--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:36 by OpenVMS SDL EV3-3 -- Source: 16-JUL-1993 13:15:55 $1$DGA8085:[LIB_ADA.LIS]TLVDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package TLVDEF is -- module $TLVDEF -- Define the layout of a general purpose type-length-value structure which is -- used to pass a variety of data structures around the cluster. TLV_K_MAX_ORB_LENGTH : constant := 13312; TLV_K_MAX_ARB_LENGTH : constant := 8448; -- 8360 rounded up to %x2100 TLV_K_MAX_IDENTIFIERS : constant := 1024; -- maximum number of rights IDs TLV_S_CHECKSUM : constant := 8; -- header minus checksum TLV_K_MSG_HDR_LENGTH : constant := 24; -- message header length TLV_K_VERSION_1 : constant := 1; -- version number 1 TLV_K_VERSION_2 : constant := 2; -- version number 2 (Blade) TLV_K_CURRENT_VERSION : constant := 2; -- current protocol TLV_K_GRANULARITY : constant := 7; -- allocation granularity type TLV_HEADER_TYPE is record CHECKSUM : UNSIGNED_LONGWORD; -- checksum (includes header) UNUSED_L1 : UNSIGNED_LONGWORD; -- start of checksum MSG_SIZE : UNSIGNED_LONGWORD; -- message size MSG_COUNT : UNSIGNED_WORD; -- # of packets in message VERSION : UNSIGNED_BYTE; -- TLV protocol version number FILLER_1 : UNSIGNED_BYTE; -- reserved for future use SECURITY_DOMAIN : UNSIGNED_QUADWORD; -- security domain ($KGBDEF) end record; for TLV_HEADER_TYPE use record CHECKSUM at 0 range 0 .. 31; UNUSED_L1 at 4 range 0 .. 31; MSG_SIZE at 8 range 0 .. 31; MSG_COUNT at 12 range 0 .. 15; VERSION at 14 range 0 .. 7; FILLER_1 at 15 range 0 .. 7; SECURITY_DOMAIN at 16 range 0 .. 63; end record; for TLV_HEADER_TYPE'SIZE use 192; TLV_HEADER_TYPE_INIT : constant TLV_HEADER_TYPE := (CHECKSUM => 0, UNUSED_L1 => 0, MSG_SIZE => 0, MSG_COUNT => 0, VERSION => 0, FILLER_1 => 0, SECURITY_DOMAIN => (0, 0)); TLV_K_PKT_HDR_LENGTH : constant := 4; -- packet header length type TLV_PACKET_TYPE is record TYP : UNSIGNED_WORD; -- packet type LENGTH : UNSIGNED_WORD; -- packet length (including packet header) VALUE : UNSIGNED_LONGWORD; -- offset to start of data end record; for TLV_PACKET_TYPE use record TYP at 0 range 0 .. 15; LENGTH at 2 range 0 .. 15; VALUE at 4 range 0 .. 31; end record; for TLV_PACKET_TYPE'SIZE use 64; TLV_PACKET_TYPE_INIT : constant TLV_PACKET_TYPE := (TYP => 0, LENGTH => 0, VALUE => 0); end TLVDEF;