--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:33 by OpenVMS SDL EV3-3 -- Source: 16-JUN-1993 10:44:58 $1$DGA8085:[LIB_ADA.LIS]PIBDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package PIBDEF is -- module $PIBDEF --+ -- PERFORMANCE I/O INFORMATION BLOCK --- PIB_S_PIBDEF : constant := 1; -- Old size name - synonym type PIB_TYPE is record TYP : UNSIGNED_BYTE; -- TYPE OF ENTRY -- -- START OF I/O REQUEST TRANSACTION MESSAGE BLOCK -- end record; for PIB_TYPE use record TYP at 0 range 0 .. 7; end record; for PIB_TYPE'SIZE use 8; PIB_TYPE_INIT : constant PIB_TYPE := (TYP => 0); PIB_K_SRQ_SIZE : constant := 32; -- LENGTH OF START I/O MESSAGE PIB_C_SRQ_SIZE : constant := 32; -- LENGTH OF START I/O MESSAGE -- PIB_S_PIBDEF1 : constant := 32; -- Old size name - synonym type PIB1_TYPE is record FILLER_1 : UNSIGNED_BYTE; SRQ_PRI : UNSIGNED_BYTE; -- BASE PRIORITY OF PROCESS SRQ_ACON : UNSIGNED_WORD; -- Access control info from WCB or 0 SRQ_TIME : UNSIGNED_QUADWORD; -- TIME OF I/O TRANSACTION SRQ_SEQN : UNSIGNED_LONGWORD; -- SEQUENCE NUMBER OF I/O TRANSACTION SRQ_PID : UNSIGNED_LONGWORD; -- REQUESTER PID SRQ_UCB : ADDRESS; -- ADDRESS OF DEVICE UCB SRQ_FUNC : UNSIGNED_WORD; -- I/O FUNCTION CODE SRQ_STS : UNSIGNED_WORD; -- I/O PACKET STATUS SRQ_ACCESS : UNSIGNED_BYTE; -- Access control info from WCB or 0 FILLER_2 : UNSIGNED_BYTE_ARRAY (1 .. 3); -- SPARE UNUSED BYTES -- START OF I/O TRANSACTION MESSAGE BLOCK -- end record; for PIB1_TYPE use record FILLER_1 at 0 range 0 .. 7; SRQ_PRI at 1 range 0 .. 7; SRQ_ACON at 2 range 0 .. 15; SRQ_TIME at 4 range 0 .. 63; SRQ_SEQN at 12 range 0 .. 31; SRQ_PID at 16 range 0 .. 31; SRQ_UCB at 20 range 0 .. 31; SRQ_FUNC at 24 range 0 .. 15; SRQ_STS at 26 range 0 .. 15; SRQ_ACCESS at 28 range 0 .. 7; FILLER_2 at 29 range 0 .. 23; end record; for PIB1_TYPE'SIZE use 256; PIB1_TYPE_INIT : constant PIB1_TYPE := (FILLER_1 => 0, SRQ_PRI => 0, SRQ_ACON => 0, SRQ_TIME => (0, 0), SRQ_SEQN => 0, SRQ_PID => 0, SRQ_UCB => ADDRESS_ZERO, SRQ_FUNC => 0, SRQ_STS => 0, SRQ_ACCESS => 0, FILLER_2 => (others => 0)); PIB_K_SIO_SIZE : constant := 24; -- LENGTH OF I/O TRANSACTION MESSAGE PIB_C_SIO_SIZE : constant := 24; -- LENGTH OF I/O TRANSACTION MESSAGE -- PIB_S_PIBDEF2 : constant := 24; -- Old size name - synonym type PIB2_TYPE is record FILLER_1 : UNSIGNED_BYTE; FILLER_2 : UNSIGNED_BYTE; -- SPARE UNUSED BYTE FILLER_3 : UNSIGNED_WORD; -- SPARE UNUSED WORD SIO_TIME : UNSIGNED_QUADWORD; -- TIME OF TRANSACTION SIO_SEQN : UNSIGNED_LONGWORD; -- SEQUENCE NUMBER OF TRANSACTION SIO_MEDIA : ADDRESS; -- TRANSFER MEDIA ADDRESS SIO_BCNT : UNSIGNED_LONGWORD; -- TRANSFER BYTE COUNT -- END OF I/O TRANSACTION MESSAGE BLOCK -- end record; for PIB2_TYPE use record FILLER_1 at 0 range 0 .. 7; FILLER_2 at 1 range 0 .. 7; FILLER_3 at 2 range 0 .. 15; SIO_TIME at 4 range 0 .. 63; SIO_SEQN at 12 range 0 .. 31; SIO_MEDIA at 16 range 0 .. 31; SIO_BCNT at 20 range 0 .. 31; end record; for PIB2_TYPE'SIZE use 192; PIB2_TYPE_INIT : constant PIB2_TYPE := (FILLER_1 => 0, FILLER_2 => 0, FILLER_3 => 0, SIO_TIME => (0, 0), SIO_SEQN => 0, SIO_MEDIA => ADDRESS_ZERO, SIO_BCNT => 0); PIB_K_EIO_SIZE : constant := 24; -- LENGTH OF END OF I/O TRANSACTION PIB_C_EIO_SIZE : constant := 24; -- LENGTH OF END OF I/O TRANSACTION -- PIB_S_PIBDEF3 : constant := 24; -- Old size name - synonym type PIB3_TYPE is record FILLER_1 : UNSIGNED_BYTE; FILLER_2 : UNSIGNED_BYTE_ARRAY (1 .. 3); -- SPARE UNUSED BYTES EIO_TIME : UNSIGNED_QUADWORD; -- TIME OF TRANSACTION EIO_SEQN : UNSIGNED_LONGWORD; -- SEQUENCE NUMBER OF TRANSACTION EIO_IOSB : UNSIGNED_QUADWORD; -- FINAL I/O STATUS -- END OF I/O REQUEST MESSAGE BLOCK -- end record; for PIB3_TYPE use record FILLER_1 at 0 range 0 .. 7; FILLER_2 at 1 range 0 .. 23; EIO_TIME at 4 range 0 .. 63; EIO_SEQN at 12 range 0 .. 31; EIO_IOSB at 16 range 0 .. 63; end record; for PIB3_TYPE'SIZE use 192; PIB3_TYPE_INIT : constant PIB3_TYPE := (FILLER_1 => 0, FILLER_2 => (others => 0), EIO_TIME => (0, 0), EIO_SEQN => 0, EIO_IOSB => (0, 0)); PIB_K_ERQ_SIZE : constant := 16; -- LENGTH OF END OF I/O REQUEST TRANSACTION PIB_C_ERQ_SIZE : constant := 16; -- LENGTH OF END OF I/O REQUEST TRANSACTION -- PIB_K_SRQ : constant := 0; -- START OF I/O REQUEST PIB_K_SIO : constant := 1; -- START OF I/O TRANSACTION PIB_K_EIO : constant := 2; -- END OF I/O TRANSACTION PIB_K_ERQ : constant := 3; -- END OF I/O REQUEST PIB_K_ARQ : constant := 4; -- ABORTED I/O REQUEST PIB_S_PIBDEF4 : constant := 16; -- Old size name - synonym type PIB4_TYPE is record FILLER_1 : UNSIGNED_BYTE; FILLER_2 : UNSIGNED_BYTE_ARRAY (1 .. 3); -- SPARE UNUSED BYTES ERQ_TIME : UNSIGNED_QUADWORD; -- TIME OF TRANSACTION ERQ_SEQN : UNSIGNED_LONGWORD; -- SEQUENCE NUMBER OF TRANSACTION -- I/O MESSAGE BLOCK ENTRY TYPE CODES -- end record; for PIB4_TYPE use record FILLER_1 at 0 range 0 .. 7; FILLER_2 at 1 range 0 .. 23; ERQ_TIME at 4 range 0 .. 63; ERQ_SEQN at 12 range 0 .. 31; end record; for PIB4_TYPE'SIZE use 128; PIB4_TYPE_INIT : constant PIB4_TYPE := (FILLER_1 => 0, FILLER_2 => (others => 0), ERQ_TIME => (0, 0), ERQ_SEQN => 0); PIB_K_ARQ_SIZE : constant := 16; -- LENGTH OF ABORTED I/O TRANSACTION PIB_C_ARQ_SIZE : constant := 16; -- LENGTH OF ABORTED I/O TRANSACTION -- PIB_S_PIBDEF5 : constant := 16; -- Old size name - synonym type PIB5_TYPE is record FILLER_1 : UNSIGNED_BYTE; FILLER_2 : UNSIGNED_BYTE_ARRAY (1 .. 3); -- SPARE UNUSED BYTES ARQ_TIME : UNSIGNED_QUADWORD; -- TIME OF TRANSACTION ARQ_SEQN : UNSIGNED_LONGWORD; -- SEQUENCE NUMBER OF TRANSACTION -- ABORTED I/O REQUEST MESSAGE BLOCK -- end record; for PIB5_TYPE use record FILLER_1 at 0 range 0 .. 7; FILLER_2 at 1 range 0 .. 23; ARQ_TIME at 4 range 0 .. 63; ARQ_SEQN at 12 range 0 .. 31; end record; for PIB5_TYPE'SIZE use 128; PIB5_TYPE_INIT : constant PIB5_TYPE := (FILLER_1 => 0, FILLER_2 => (others => 0), ARQ_TIME => (0, 0), ARQ_SEQN => 0); end PIBDEF;