--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:29 by OpenVMS SDL EV3-3 -- Source: 07-MAR-1994 22:37:28 $1$DGA8085:[LIB_ADA.LIS]MMECBDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package MMECBDEF is -- module MMECBDEF IDENT X-4 MMECB_M_UNLOAD : constant := 16#00000001#; MMECB_M_ALLOC : constant := 16#00000002#; MMECB_M_BACKUP_FILE : constant := 16#00000004#; MMECB_M_CLOSE_READ : constant := 16#00000008#; MMECB_M_CLOSE_WRITE : constant := 16#00000010#; MMECB_M_CONTINUATION_VOLUME : constant := 16#00000020#; MMECB_M_DEALLOCATE : constant := 16#00000040#; MMECB_M_DEVICE_AVAIL : constant := 16#00000080#; MMECB_M_DEVICE_UNAVAIL : constant := 16#00000100#; MMECB_M_DISMOUNT : constant := 16#00000200#; MMECB_M_DISPLAY_MESSAGE : constant := 16#00000400#; MMECB_M_EOV_READ : constant := 16#00000800#; MMECB_M_EOV_WRITE : constant := 16#00001000#; MMECB_M_INITIALIZE : constant := 16#00002000#; MMECB_M_MOUNT : constant := 16#00004000#; MMECB_M_MOUNT_REQUEST : constant := 16#00008000#; MMECB_M_NEWVOL_REQUEST : constant := 16#00010000#; MMECB_M_NOTIFY_DEVICE : constant := 16#00020000#; MMECB_M_OPCOM_ACP : constant := 16#00040000#; MMECB_M_OPCOM_MOUNT : constant := 16#00080000#; MMECB_M_OPEN_READ : constant := 16#00100000#; MMECB_M_OPEN_WRITE : constant := 16#00200000#; MMECB_M_VOLUME_ONLINE : constant := 16#00400000#; MMECB_M_BACKUP_END : constant := 16#00800000#; MMECB_M_BACKUP_START : constant := 16#01000000#; MMECB_M_WRITE_REQUEST : constant := 16#02000000#; MMECB_M_MOUNT_END : constant := 16#04000000#; MMECB_M_INIT_END : constant := 16#08000000#; MMECB_M_NEWVOL_END : constant := 16#10000000#; MMECB_M_DMTPRCDEL : constant := 16#20000000#; type MMECB_ROUTINE_MASK_TYPE is record UNLOAD : BOOLEAN; ALLOC : BOOLEAN; BACKUP_FILE : BOOLEAN; CLOSE_READ : BOOLEAN; CLOSE_WRITE : BOOLEAN; CONTINUATION_VOLUME : BOOLEAN; DEALLOCATE : BOOLEAN; DEVICE_AVAIL : BOOLEAN; DEVICE_UNAVAIL : BOOLEAN; DISMOUNT : BOOLEAN; DISPLAY_MESSAGE : BOOLEAN; EOV_READ : BOOLEAN; EOV_WRITE : BOOLEAN; INITIALIZE : BOOLEAN; MOUNT : BOOLEAN; MOUNT_REQUEST : BOOLEAN; NEWVOL_REQUEST : BOOLEAN; NOTIFY_DEVICE : BOOLEAN; OPCOM_ACP : BOOLEAN; OPCOM_MOUNT : BOOLEAN; OPEN_READ : BOOLEAN; OPEN_WRITE : BOOLEAN; VOLUME_ONLINE : BOOLEAN; BACKUP_END : BOOLEAN; BACKUP_START : BOOLEAN; WRITE_REQUEST : BOOLEAN; MOUNT_END : BOOLEAN; INIT_END : BOOLEAN; NEWVOL_END : BOOLEAN; DMTPRCDEL : BOOLEAN; FILLER_1 : BIT_ARRAY (0 .. 33); end record; for MMECB_ROUTINE_MASK_TYPE use record UNLOAD at 0 range 0 .. 0; ALLOC at 0 range 1 .. 1; BACKUP_FILE at 0 range 2 .. 2; CLOSE_READ at 0 range 3 .. 3; CLOSE_WRITE at 0 range 4 .. 4; CONTINUATION_VOLUME at 0 range 5 .. 5; DEALLOCATE at 0 range 6 .. 6; DEVICE_AVAIL at 0 range 7 .. 7; DEVICE_UNAVAIL at 1 range 0 .. 0; DISMOUNT at 1 range 1 .. 1; DISPLAY_MESSAGE at 1 range 2 .. 2; EOV_READ at 1 range 3 .. 3; EOV_WRITE at 1 range 4 .. 4; INITIALIZE at 1 range 5 .. 5; MOUNT at 1 range 6 .. 6; MOUNT_REQUEST at 1 range 7 .. 7; NEWVOL_REQUEST at 2 range 0 .. 0; NOTIFY_DEVICE at 2 range 1 .. 1; OPCOM_ACP at 2 range 2 .. 2; OPCOM_MOUNT at 2 range 3 .. 3; OPEN_READ at 2 range 4 .. 4; OPEN_WRITE at 2 range 5 .. 5; VOLUME_ONLINE at 2 range 6 .. 6; BACKUP_END at 2 range 7 .. 7; BACKUP_START at 3 range 0 .. 0; WRITE_REQUEST at 3 range 1 .. 1; MOUNT_END at 3 range 2 .. 2; INIT_END at 3 range 3 .. 3; NEWVOL_END at 3 range 4 .. 4; DMTPRCDEL at 3 range 5 .. 5; FILLER_1 at 3 range 6 .. 39; end record; for MMECB_ROUTINE_MASK_TYPE'SIZE use 64; MMECB_ROUTINE_MASK_TYPE_INIT : constant MMECB_ROUTINE_MASK_TYPE := (UNLOAD => FALSE, ALLOC => FALSE, BACKUP_FILE => FALSE, CLOSE_READ => FALSE, CLOSE_WRITE => FALSE, CONTINUATION_VOLUME => FALSE, DEALLOCATE => FALSE, DEVICE_AVAIL => FALSE, DEVICE_UNAVAIL => FALSE, DISMOUNT => FALSE, DISPLAY_MESSAGE => FALSE, EOV_READ => FALSE, EOV_WRITE => FALSE, INITIALIZE => FALSE, MOUNT => FALSE, MOUNT_REQUEST => FALSE, NEWVOL_REQUEST => FALSE, NOTIFY_DEVICE => FALSE, OPCOM_ACP => FALSE, OPCOM_MOUNT => FALSE, OPEN_READ => FALSE, OPEN_WRITE => FALSE, VOLUME_ONLINE => FALSE, BACKUP_END => FALSE, BACKUP_START => FALSE, WRITE_REQUEST => FALSE, MOUNT_END => FALSE, INIT_END => FALSE, NEWVOL_END => FALSE, DMTPRCDEL => FALSE, FILLER_1 => (others => FALSE)); type MMECB_TYPE is record FACILITY : UNSIGNED_WORD; -- TMS facility code MBUNIT : UNSIGNED_WORD; -- Mailbox unit number PID : UNSIGNED_LONGWORD; -- Pid of TMS process SIZE : UNSIGNED_WORD; -- Control block size TYP : UNSIGNED_BYTE; -- BLOCK TYPE CODE SUBTYP : UNSIGNED_BYTE; -- BLOCK SUBTYPE CODE MBXUCB : ADDRESS; -- Mailbox UCB address ROUTINE_MASK : MMECB_ROUTINE_MASK_TYPE; MCL_FLINK : ADDRESS; -- Mount context list forward link MCL_BLINK : ADDRESS; -- Mount context list backward link end record; for MMECB_TYPE use record FACILITY at 0 range 0 .. 15; MBUNIT at 2 range 0 .. 15; PID at 4 range 0 .. 31; SIZE at 8 range 0 .. 15; TYP at 10 range 0 .. 7; SUBTYP at 11 range 0 .. 7; MBXUCB at 12 range 0 .. 31; ROUTINE_MASK at 16 range 0 .. 63; MCL_FLINK at 24 range 0 .. 31; MCL_BLINK at 28 range 0 .. 31; end record; for MMECB_TYPE'SIZE use 256; MMECB_TYPE_INIT : constant MMECB_TYPE := (FACILITY => 0, MBUNIT => 0, PID => 0, SIZE => 0, TYP => 0, SUBTYP => 0, MBXUCB => ADDRESS_ZERO, ROUTINE_MASK => MMECB_ROUTINE_MASK_TYPE_INIT, MCL_FLINK => ADDRESS_ZERO, MCL_BLINK => ADDRESS_ZERO); MMECB_S_MMECBDEF : constant := 32; -- Old size name, synonym for MMECB$S_MMECB MME_M_WAS_RUNNING : constant := 16#00000001#; type MME_FLAGS_MASK_TYPE is record WAS_RUNNING : BOOLEAN; FILLER_1 : UNSIGNED_7; end record; for MME_FLAGS_MASK_TYPE use record WAS_RUNNING at 0 range 0 .. 0; FILLER_1 at 0 range 1 .. 7; end record; for MME_FLAGS_MASK_TYPE'SIZE use 8; MME_FLAGS_MASK_TYPE_INIT : constant MME_FLAGS_MASK_TYPE := (WAS_RUNNING => FALSE, FILLER_1 => 0); type MMEFLAGS_TYPE is record FLAGS_MASK : MME_FLAGS_MASK_TYPE; end record; for MMEFLAGS_TYPE use record FLAGS_MASK at 0 range 0 .. 7; end record; for MMEFLAGS_TYPE'SIZE use 8; MMEFLAGS_TYPE_INIT : constant MMEFLAGS_TYPE := ( FLAGS_MASK => MME_FLAGS_MASK_TYPE_INIT ); end MMECBDEF;