--******************************************************************************************************************** -- Created: 30-Mar-2010 17:01:50 by OpenVMS SDL EV3-3 -- Source: 22-FEB-2002 11:03:20 $1$DGA7274:[STARLET_ADA.LIS]IOSBDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package IOSBDEF is -- module $IOSBDEF --+ -- Define I/O Status Block --- type IOSB_BCNT_32_TYPE is -- 32-bit byte count variant record BCNT : UNSIGNED_LONGWORD; -- 32-bit byte count (unaligned) DEV_DEPEND_HIGH : UNSIGNED_WORD; -- 16-bit device dependent info end record; for IOSB_BCNT_32_TYPE use record BCNT at 0 range 0 .. 31; DEV_DEPEND_HIGH at 4 range 0 .. 15; end record; for IOSB_BCNT_32_TYPE'SIZE use 48; IOSB_BCNT_32_TYPE_INIT : constant IOSB_BCNT_32_TYPE := (BCNT => 0, DEV_DEPEND_HIGH => 0); type IOSB_DEVDEPEND_TYPE is record BCNT : UNSIGNED_WORD; -- 16-bit byte count DEV_DEPEND : UNSIGNED_LONGWORD; -- 32-bit device dependent info ----Component(s) below are defined as comments since they ----overlap other fields ---- ----PID : UNSIGNED_LONGWORD; -- 32-bit pid ----Component(s) below are defined as comments since they ----overlap other fields ---- ----BCNT_32 : IOSB_BCNT_32_TYPE; -- 32-bit byte count variant end record; for IOSB_DEVDEPEND_TYPE use record BCNT at 0 range 0 .. 15; DEV_DEPEND at 4 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----PID at 4 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----BCNT_32 at 0 range 0 .. 47; end record; for IOSB_DEVDEPEND_TYPE'SIZE use 48; IOSB_DEVDEPEND_TYPE_INIT : constant IOSB_DEVDEPEND_TYPE := (BCNT => 0, DEV_DEPEND => 0 ); type IOSB_L_STATUS_TYPE is record GETXXI_STATUS : UNSIGNED_LONGWORD; -- Final GETxxI status ----Component(s) below are defined as comments since they ----overlap other fields ---- ----REG_STATUS : UNSIGNED_LONGWORD; -- Final $Registry status end record; for IOSB_L_STATUS_TYPE use record GETXXI_STATUS at 0 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----REG_STATUS at 0 range 0 .. 31; end record; for IOSB_L_STATUS_TYPE'SIZE use 32; IOSB_L_STATUS_TYPE_INIT : constant IOSB_L_STATUS_TYPE := (GETXXI_STATUS => 0); type IOSB_GET_64_TYPE is record L_STATUS : IOSB_L_STATUS_TYPE; FILLER_1 : UNSIGNED_LONGWORD; -- Reserved field end record; for IOSB_GET_64_TYPE use record L_STATUS at 0 range 0 .. 31; FILLER_1 at 4 range 0 .. 31; end record; for IOSB_GET_64_TYPE'SIZE use 64; IOSB_GET_64_TYPE_INIT : constant IOSB_GET_64_TYPE := ( L_STATUS => IOSB_L_STATUS_TYPE_INIT, FILLER_1 => 0); type IOSB_IO_GET_TYPE is record STATUS : UNSIGNED_WORD; -- Final I/O status DEVDEPEND : IOSB_DEVDEPEND_TYPE; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----GET_64 : IOSB_GET_64_TYPE; end record; for IOSB_IO_GET_TYPE use record STATUS at 0 range 0 .. 15; DEVDEPEND at 2 range 0 .. 47; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----GET_64 at 0 range 0 .. 63; end record; for IOSB_IO_GET_TYPE'SIZE use 64; IOSB_IO_GET_TYPE_INIT : constant IOSB_IO_GET_TYPE := (STATUS => 0, DEVDEPEND => IOSB_DEVDEPEND_TYPE_INIT ); type IOSB_TYPE is record IO_GET : IOSB_IO_GET_TYPE; end record; for IOSB_TYPE use record IO_GET at 0 range 0 .. 63; end record; for IOSB_TYPE'SIZE use 64; IOSB_TYPE_INIT : constant IOSB_TYPE := ( IO_GET => IOSB_IO_GET_TYPE_INIT ); IOSB_K_LENGTH : constant := 8; -- Length of IOSB IOSB_C_LENGTH : constant := 8; -- Length of IOSB end IOSBDEF;