--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:18 by OpenVMS SDL EV3-3 -- Source: 09-JUN-1993 15:26:35 $1$DGA8085:[LIB_ADA.LIS]CINDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package CINDEF is -- module $CINDEF --+ -- -- Connect to interrupt definitions for QIO parameters -- --- CIN_M_EFN : constant := 16#00000001#; CIN_M_USECAL : constant := 16#00000002#; CIN_M_REPEAT : constant := 16#00000004#; CIN_M_AST : constant := 16#00000008#; CIN_M_INIDEV : constant := 16#00000010#; CIN_M_START : constant := 16#00000020#; CIN_M_ISR : constant := 16#00000040#; CIN_M_CANCEL : constant := 16#00000080#; CIN_M_EFNUM : constant := 16#FFFF0000#; CIN_S_CINDEF : constant := 4; type CINDEF_BITS_TYPE is record EFN : BOOLEAN; -- Set event flag on interrupt. USECAL : BOOLEAN; -- Use CALL interface. REPEAT : BOOLEAN; -- Do repeated interrupt service. AST : BOOLEAN; -- Queue AST on interrupt. INIDEV : BOOLEAN; -- Device initialization to do. START : BOOLEAN; -- Start I/O routine. ISR : BOOLEAN; -- ISR to execute. CANCEL : BOOLEAN; -- Cancel I/O routine. FILLER_1 : UNSIGNED_8; -- Spare bits. EFNUM : UNSIGNED_16; -- Event flag number. end record; for CINDEF_BITS_TYPE use record EFN at 0 range 0 .. 0; USECAL at 0 range 1 .. 1; REPEAT at 0 range 2 .. 2; AST at 0 range 3 .. 3; INIDEV at 0 range 4 .. 4; START at 0 range 5 .. 5; ISR at 0 range 6 .. 6; CANCEL at 0 range 7 .. 7; FILLER_1 at 1 range 0 .. 7; EFNUM at 2 range 0 .. 15; end record; for CINDEF_BITS_TYPE'SIZE use 32; CINDEF_BITS_TYPE_INIT : constant CINDEF_BITS_TYPE := (EFN => FALSE, USECAL => FALSE, REPEAT => FALSE, AST => FALSE, INIDEV => FALSE, START => FALSE, ISR => FALSE, CANCEL => FALSE, FILLER_1 => 0, EFNUM => 0); type CIN_TYPE is record CINDEF_BITS : CINDEF_BITS_TYPE; end record; for CIN_TYPE use record CINDEF_BITS at 0 range 0 .. 31; end record; for CIN_TYPE'SIZE use 32; CIN_TYPE_INIT : constant CIN_TYPE := ( CINDEF_BITS => CINDEF_BITS_TYPE_INIT); CIN_S_CINDEF1 : constant := 16; type CIN1_TYPE is record INIDEV : UNSIGNED_LONGWORD; -- Offset to device init routine. START : UNSIGNED_LONGWORD; -- Offset to start device routine. ISR : UNSIGNED_LONGWORD; -- Offset to interrupt service routine. CANCEL : UNSIGNED_LONGWORD; -- Offset to cancel I/O routine. end record; for CIN1_TYPE use record INIDEV at 0 range 0 .. 31; START at 4 range 0 .. 31; ISR at 8 range 0 .. 31; CANCEL at 12 range 0 .. 31; end record; for CIN1_TYPE'SIZE use 128; CIN1_TYPE_INIT : constant CIN1_TYPE := (INIDEV => 0, START => 0, ISR => 0, CANCEL => 0); CIN_S_CINDEF2 : constant := 8; type CIN2_TYPE is record SPTCOUNT : UNSIGNED_LONGWORD; -- Number of SPTs allocated. STARTVPN : UNSIGNED_LONGWORD; -- Starting VPN allocated. ----Component(s) below are defined as comments since they ----overlap other fields ---- ----STARTBIT : UNSIGNED_LONGWORD; -- Starting bit in bitmap. end record; for CIN2_TYPE use record SPTCOUNT at 0 range 0 .. 31; STARTVPN at 4 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----STARTBIT at 4 range 0 .. 31; end record; for CIN2_TYPE'SIZE use 64; CIN2_TYPE_INIT : constant CIN2_TYPE := (SPTCOUNT => 0, STARTVPN => 0 ); end CINDEF;