--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:27 by OpenVMS SDL EV3-3 -- Source: 22-DEC-1993 12:41:27 $1$DGA8085:[LIB_ADA.LIS]IOHANDLEDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package IOHANDLEDEF is -- module $IOHANDLEDEF --+ -- This data structure contains mapping information for I/O devices. --- type IOHANDLE_BASE_VA_TYPE is record BASE_VA : INTEGER_32; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----BASE_VA_L : INTEGER_32; BASE_VA_H : INTEGER_32; end record; for IOHANDLE_BASE_VA_TYPE use record BASE_VA at 16 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----BASE_VA_L at 16 range 0 .. 31; BASE_VA_H at 4 range 0 .. 31; end record; for IOHANDLE_BASE_VA_TYPE'SIZE use 64; IOHANDLE_BASE_VA_TYPE_INIT : constant IOHANDLE_BASE_VA_TYPE := ( BASE_VA => 0, BASE_VA_H => 0); type IOHANDLE_TYPE is record FLINK : ADDRESS; BLINK : ADDRESS; SIZE : UNSIGNED_WORD; TYP : UNSIGNED_BYTE; SUBTYP : UNSIGNED_BYTE; BOFF : UNSIGNED_LONGWORD; BASE_VA : IOHANDLE_BASE_VA_TYPE; PLATFORM_PA : UNSIGNED_QUADWORD; BUS_PA : UNSIGNED_QUADWORD; BUS_REGION_SIZE : UNSIGNED_LONGWORD; MAPPED_REGION_SIZE : UNSIGNED_LONGWORD; ATTRIBUTES : UNSIGNED_LONGWORD; FILLER_1 : UNSIGNED_LONGWORD_ARRAY (1 .. 1); FILLER_2 : UNSIGNED_LONGWORD_ARRAY (1 .. 2); end record; for IOHANDLE_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; SUBTYP at 11 range 0 .. 7; BOFF at 12 range 0 .. 31; BASE_VA at 16 range 0 .. 63; PLATFORM_PA at 24 range 0 .. 63; BUS_PA at 32 range 0 .. 63; BUS_REGION_SIZE at 40 range 0 .. 31; MAPPED_REGION_SIZE at 44 range 0 .. 31; ATTRIBUTES at 48 range 0 .. 31; FILLER_1 at 52 range 0 .. 31; FILLER_2 at 56 range 0 .. 63; end record; for IOHANDLE_TYPE'SIZE use 512; IOHANDLE_TYPE_INIT : constant IOHANDLE_TYPE := (FLINK => ADDRESS_ZERO, BLINK => ADDRESS_ZERO, SIZE => 0, TYP => 0, SUBTYP => 0, BOFF => 0, BASE_VA => IOHANDLE_BASE_VA_TYPE_INIT, PLATFORM_PA => (0, 0), BUS_PA => (0, 0), BUS_REGION_SIZE => 0, MAPPED_REGION_SIZE => 0, ATTRIBUTES => 0, FILLER_1 => (others => 0), FILLER_2 => (others => 0)); IOHANDLE_K_IOHANDLELEN : constant := 64; end IOHANDLEDEF;