--******************************************************************************************************************** -- Created: 30-Mar-2010 17:01:49 by OpenVMS SDL EV3-3 -- Source: 03-JUN-1998 14:49:54 $1$DGA7274:[STARLET_ADA.LIS]ICCDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package ICCDEF is -- module $ICCDEF IDENT X-4 -- -- ICC IOSB data structure for data transfer routines -- -- Past the 1st longword, the IOC_ICC fields vary depending on the type of -- request/operation. The diagram attempts to picture those relationships -- below. Longwords 2-5 are done in columns, each column representing the -- value of that longword for that type of request/operation. -- -- +4 +2 +0 -- +---------------------------------------------------------+ -- L1: | Undefined | Return status code | -- |---------------------------------------------------------| -- |---------------------------------------------------------| -- | | | | | -- | RECEIVE | REPLY | TRANSCEIVE | CONNECT | -- | | | | | -- L2: | rcv_len | replyto_handle| txrcv_len | RemStat | -- |---------------|---------------|---------------|---------| -- L3: | req_handle | Unused | | Unused | -- |---------------|---------------| reply_buffer | | -- L4: | reply_len | Unused | | | -- |---------------|---------------|---------------| | -- L5: | Unused | Unused | txreply_len | | -- |---------------+---------------+---------------+---------| -- type IOS_ICC_RECEIVE_TYPE is record RCV_LEN : UNSIGNED_LONGWORD; -- return len (returned) REQ_HANDLE : UNSIGNED_LONGWORD; -- request handle (returned) REPLY_LEN : UNSIGNED_LONGWORD; -- reply len (returned) FILLER_1 : UNSIGNED_LONGWORD; end record; for IOS_ICC_RECEIVE_TYPE use record RCV_LEN at 0 range 0 .. 31; REQ_HANDLE at 4 range 0 .. 31; REPLY_LEN at 8 range 0 .. 31; FILLER_1 at 12 range 0 .. 31; end record; for IOS_ICC_RECEIVE_TYPE'SIZE use 128; IOS_ICC_RECEIVE_TYPE_INIT : constant IOS_ICC_RECEIVE_TYPE := (RCV_LEN => 0, REQ_HANDLE => 0, REPLY_LEN => 0, FILLER_1 => 0); type IOS_ICC_REPLY_TYPE is record REPLYTO_HANDLE : UNSIGNED_LONGWORD; -- request_handle (input) FILLER_1 : UNSIGNED_LONGWORD_ARRAY (1 .. 3); end record; for IOS_ICC_REPLY_TYPE use record REPLYTO_HANDLE at 0 range 0 .. 31; FILLER_1 at 4 range 0 .. 95; end record; for IOS_ICC_REPLY_TYPE'SIZE use 128; IOS_ICC_REPLY_TYPE_INIT : constant IOS_ICC_REPLY_TYPE := (REPLYTO_HANDLE => 0, FILLER_1 => (others => 0)); type IOS_ICC_TRANSCEIVE_TYPE is record TXRCV_LEN : UNSIGNED_LONGWORD; -- return length (returned) REPLY_BUFFER : ADDRESS; -- 64-bit bfr addr (Alpha) TXREPLY_LEN : UNSIGNED_LONGWORD; -- reply len (input) end record; for IOS_ICC_TRANSCEIVE_TYPE use record TXRCV_LEN at 0 range 0 .. 31; REPLY_BUFFER at 4 range 0 .. 31; TXREPLY_LEN at 8 range 0 .. 31; end record; for IOS_ICC_TRANSCEIVE_TYPE'SIZE use 96; IOS_ICC_TRANSCEIVE_TYPE_INIT : constant IOS_ICC_TRANSCEIVE_TYPE := (TXRCV_LEN => 0, REPLY_BUFFER => ADDRESS_ZERO, TXREPLY_LEN => 0); type IOS_ICC_PARAMETERS_TYPE is record REMSTAT : UNSIGNED_LONGWORD; -- remote status (returned) FILLER_1 : UNSIGNED_LONGWORD_ARRAY (1 .. 3); ----Component(s) below are defined as comments since they ----overlap other fields ---- ----RECEIVE : IOS_ICC_RECEIVE_TYPE; ----REPLY : IOS_ICC_REPLY_TYPE; ----TRANSCEIVE : IOS_ICC_TRANSCEIVE_TYPE; end record; for IOS_ICC_PARAMETERS_TYPE use record REMSTAT at 0 range 0 .. 31; FILLER_1 at 4 range 0 .. 95; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----RECEIVE at 0 range 0 .. 127; ----REPLY at 0 range 0 .. 127; ----TRANSCEIVE at 0 range 0 .. 95; end record; for IOS_ICC_PARAMETERS_TYPE'SIZE use 128; IOS_ICC_PARAMETERS_TYPE_INIT : constant IOS_ICC_PARAMETERS_TYPE := (REMSTAT => 0, FILLER_1 => (others => 0)); type IOS_ICC_TYPE is record STATUS : UNSIGNED_WORD; -- return status RESERVED : UNSIGNED_WORD; -- reserved PARAMETERS : IOS_ICC_PARAMETERS_TYPE; end record; for IOS_ICC_TYPE use record STATUS at 0 range 0 .. 15; RESERVED at 2 range 0 .. 15; PARAMETERS at 4 range 0 .. 127; end record; for IOS_ICC_TYPE'SIZE use 160; IOS_ICC_TYPE_INIT : constant IOS_ICC_TYPE := (STATUS => 0, RESERVED => 0, PARAMETERS => IOS_ICC_PARAMETERS_TYPE_INIT ); ICC_C_RECEIVE_LEN : constant := 16; ICC_C_REPLY_LEN : constant := 8; ICC_C_TRANSCEIVE_LEN : constant := 16; -- -- Length constants -- ICC_C_MAX_ASSOC_LEN : constant := 31; ICC_C_MAX_CONN_DATA_LEN : constant := 1000; -- -- Connection flag bit definitions (for connect/accept services) -- ICC_M_SYNCH_MODE : constant := 16#00000001#; type ICC_CONNECTION_FLAGS_TYPE is record SYNCH_MODE : BOOLEAN; -- Set (1) if data transfer routines -- are allowed to return SS$_SYNCH -- to the user. FILLER_1 : UNSIGNED_7; end record; for ICC_CONNECTION_FLAGS_TYPE use record SYNCH_MODE at 0 range 0 .. 0; FILLER_1 at 0 range 1 .. 7; end record; for ICC_CONNECTION_FLAGS_TYPE'SIZE use 8; ICC_CONNECTION_FLAGS_TYPE_INIT : constant ICC_CONNECTION_FLAGS_TYPE := (SYNCH_MODE => FALSE, FILLER_1 => 0); -- -- ICC event codes (first parameter) for the connect/disconnect routines -- ICC_C_EV_CONNECT : constant := 0; ICC_C_EV_DISCONNECT : constant := 1; ICC_C_MIN_EVENT : constant := 0; ICC_C_MAX_EVENT : constant := 1; -- -- Default ICC association handle -- ICC_C_DFLT_ASSOC_HANDLE : constant := 1; -- -- Default flow control value -- ICC_C_DEFAULT_MAXFLOWBUFCNT : constant := 5; -- Pending inbound msgs end ICCDEF;