--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:36 by OpenVMS SDL EV3-3 -- Source: 17-JAN-2000 13:10:54 $1$DGA8085:[LIB_ADA.LIS]VCIBDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package VCIBDEF is -- module $VCIBDEF --+ -- VCIB - VAX Communication Interface Block -- -- The VCIB is the data structure used to define an instance of a VCI port -- between two VCMs. A single VCIB is used between only two layers. Those -- two layers may have many VCIBs between them; each one representing a -- different VCI port. Only the common fields within the VCIB are defined -- here. All layer-specific fields are defined elsewhere. Some constants -- used within the VCIB are defined here also. And the VCM IDs are also -- defined here. --- -- VCI Registry function codes. VCIB_K_FC_REGISTER : constant := 0; -- Register a VCM VCIB_K_FC_UNREGISTER : constant := 1; -- Unregister a VCM VCIB_K_FC_CREATE_PORT : constant := 2; -- Create a port to a lower VCM VCIB_K_FC_DELETE_PORT : constant := 3; -- Delete a port to a lower VCM -- Registered users of the VCI. VCI_K_ID_MODEM : constant := 257; -- Modem Connect VCI_K_ID_NWM : constant := 2048; -- Network Management VCI_K_ID_CONF : constant := 2049; -- Conformance Test Tool VCI_K_ID_SCL : constant := 1280; -- Session Control VCI_K_ID_SCLSRV : constant := 1281; -- Session Control Session Services VCI_K_ID_SCLMIN : constant := 1282; -- Session Control Minimum Services VCI_K_ID_NSPTP : constant := 1024; -- Transport - NSP VCI_K_ID_OSITP : constant := 1025; -- Transport - OSI VCI_K_ID_LCLTP : constant := 1026; -- Transport - Local VCI_K_ID_SCATP : constant := 1027; -- Transport - SCA VCI_K_ID_LAT : constant := 1028; -- Transport - LAT VCI_K_ID_LAST : constant := 1029; -- Transport - LAST VCI_K_ID_LAVC : constant := 1030; -- Transport - LAVC VCI_K_ID_MOP : constant := 1031; -- Maintenance Operations VCI_K_ID_TCPIP : constant := 1032; -- Transport - TCPIP VCI_K_ID_IP : constant := 1032; -- Transport - IP VCI_K_ID_AMDS : constant := 1033; -- Transport - AMDS VCI_K_ID_CUSTP : constant := 1177; -- Transport - Customer VCI_K_ID_NRL : constant := 768; -- Network Routing VCI_K_ID_ALIAS : constant := 769; -- Alias (Routing portion) VCI_K_ID_CUSRL : constant := 921; -- Routing - Customer VCI_K_ID_LAN : constant := 513; -- Data Link - CSMACD & FDDI VCI_K_ID_DDCMP : constant := 514; -- Data Link - DDCMP Synchronous VCI_K_ID_HDLC : constant := 515; -- Data Link - HDLC Synchronous VCI_K_ID_ASY : constant := 516; -- Data Link - Asynchronous VCI_K_ID_X25 : constant := 517; -- Data Link - X.25 VCI_K_ID_ADM : constant := 518; -- Data Link - ALTSTART DDCMP VCI_K_ID_ACM : constant := 519; -- Data Link - ALTSTART CSMACD VCI_K_ID_LAPB : constant := 520; -- Data Link - LAPB VCI_K_ID_LLC2 : constant := 521; -- Data Link - LLC2 VCI_K_ID_NETBEUI : constant := 528; -- Data Link - NETBEUI VCI_K_ID_IPX : constant := 529; -- Data Link - IPX VCI_K_ID_DSP : constant := 530; -- Data Link - Digital stream protocol VCI_K_ID_PP : constant := 531; -- Data Link - PP VCI_K_ID_ASYN : constant := 532; -- Data Link - ASYN VCI_K_ID_CUSDL : constant := 665; -- Data Link - Customer VCI_K_ID_TST1 : constant := 2304; -- Test VCM - 1st VCI_K_ID_TST2 : constant := 2305; -- Test VCM - 2nd VCI_K_ID_TST3 : constant := 2306; -- Test VCM - 3rd VCI_K_ID_TST4 : constant := 2307; -- Test VCM - 4th VCI_K_ID_TST5 : constant := 2308; -- Test VCM - 5th VCI_K_ID_TST6 : constant := 2309; -- Test VCM - 6th VCI_K_ID_TST7 : constant := 2310; -- Test VCM - 7th VCI_K_ID_TST8 : constant := 2311; -- Test VCM - 8th VCI_K_ID_LANMON : constant := 2312; -- Test VCM - Lan monitor VCI_K_ID_LANTEST : constant := 2313; -- Test VCM - Lan test VCI_K_ID_DECNET_1 : constant := 2560; -- DECnet reserved VCM 0..FF VCI_K_ID_DECNET_FF : constant := 2815; -- DECnet reserved VCM 0..FF VCI_K_NUM_ID : constant := 41; -- Number of valid VCMs -- VCIB data structure -- -- The common fields within the VCIB are defined now. VCIB_K_FIXED_LENGTH : constant := 60; -- Length of fixed portion of VCIB type VCIB_TYPE is record FLINK : ADDRESS; -- Forward Queue link BLINK : ADDRESS; -- Backward Queue link SIZE : UNSIGNED_WORD; -- Size of structure TYP : UNSIGNED_BYTE; -- Type of structure - DYN$C_NET SUB_TYPE : UNSIGNED_BYTE; -- Subtype of structure - DYN$C_VCIB VCI_ID : UNSIGNED_LONGWORD; -- Field containing the VCI ID of the -- VCM (used by the lower VCM for -- validation of user) VERSION_UPPER : UNSIGNED_WORD; -- VCI Version of Upper VCM VERSION_LOWER : UNSIGNED_WORD; -- VCI Version of Lower VCM PORTMGMT_SYNCH : ADDRESS; -- Address of Lower VCM's Port -- Management Synchronous service PORTMGMT_INITIATE : ADDRESS; -- Address of Lower VCM's Port -- Management Initiate service PORTMGMT_COMPLETE : ADDRESS; -- Address of Upper VCM's Port -- Management Complete service CONTROL_SYNCH : ADDRESS; -- Address of Lower VCM's Control -- Synchronous service CONTROL_INITIATE : ADDRESS; -- Address of Lower VCM's Control -- Initiate service CONTROL_COMPLETE : ADDRESS; -- Address of Upper VCM's Control -- Complete service TRANSMIT_INITIATE : ADDRESS; -- Address of Lower VCM's Transmit -- Initiate service TRANSMIT_COMPLETE : ADDRESS; -- Address of Upper VCM's Transmit -- Complete service RECEIVE_COMPLETE : ADDRESS; -- Address of Upper VCM's Receive -- Complete service REPORT_EVENT : ADDRESS; -- Address of Upper VCM's Report -- Event service end record; for VCIB_TYPE use record FLINK at 0 range 0 .. 31; BLINK at 4 range 0 .. 31; SIZE at 8 range 0 .. 15; TYP at 10 range 0 .. 7; SUB_TYPE at 11 range 0 .. 7; VCI_ID at 12 range 0 .. 31; VERSION_UPPER at 16 range 0 .. 15; VERSION_LOWER at 18 range 0 .. 15; PORTMGMT_SYNCH at 20 range 0 .. 31; PORTMGMT_INITIATE at 24 range 0 .. 31; PORTMGMT_COMPLETE at 28 range 0 .. 31; CONTROL_SYNCH at 32 range 0 .. 31; CONTROL_INITIATE at 36 range 0 .. 31; CONTROL_COMPLETE at 40 range 0 .. 31; TRANSMIT_INITIATE at 44 range 0 .. 31; TRANSMIT_COMPLETE at 48 range 0 .. 31; RECEIVE_COMPLETE at 52 range 0 .. 31; REPORT_EVENT at 56 range 0 .. 31; end record; for VCIB_TYPE'SIZE use 480; VCIB_TYPE_INIT : constant VCIB_TYPE := (FLINK => ADDRESS_ZERO, BLINK => ADDRESS_ZERO, SIZE => 0, TYP => 0, SUB_TYPE => 0, VCI_ID => 0, VERSION_UPPER => 0, VERSION_LOWER => 0, PORTMGMT_SYNCH => ADDRESS_ZERO, PORTMGMT_INITIATE => ADDRESS_ZERO, PORTMGMT_COMPLETE => ADDRESS_ZERO, CONTROL_SYNCH => ADDRESS_ZERO, CONTROL_INITIATE => ADDRESS_ZERO, CONTROL_COMPLETE => ADDRESS_ZERO, TRANSMIT_INITIATE => ADDRESS_ZERO, TRANSMIT_COMPLETE => ADDRESS_ZERO, RECEIVE_COMPLETE => ADDRESS_ZERO, REPORT_EVENT => ADDRESS_ZERO); end VCIBDEF;