--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:27 by OpenVMS SDL EV3-3 -- Source: 09-MAY-2001 10:58:38 $1$DGA8085:[LIB_ADA.LIS]IOCNTDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package IOCNTDEF is -- module $IOCNTDEF IOCNT_K_LENGTH : constant := 308; -- LENGTH OF IOCNT IOCNT_C_LENGTH : constant := 308; -- LENGTH OF IOCNT type IOCNT_TYPE is record PTR_1 : ADDRESS; -- PTR_2 : ADDRESS; -- SIZE : UNSIGNED_WORD; -- Size of IOCNT, in bytes. TYP : UNSIGNED_BYTE; -- Nonpaged pool packet type, DYN$C_MISC SUBTYP : UNSIGNED_BYTE; -- Nonpaged pool packet subtype, DYN$C_IOCNT -- -- Fast Path counters -- -- IOC_STD$INITIATE counters: FILLER_1 : UNSIGNED_BYTE_ARRAY (0 .. 3); FP_PORT_CPU_IO : UNSIGNED_LONGWORD; -- On port CPU and new IO (dev UCB) FP_IO_QUEUED : UNSIGNED_LONGWORD; -- IRP queued to UCB IOQ (dev UCB) FP_UCB_QUEUED : UNSIGNED_LONGWORD; -- UCB was already queued (dev UCB) FP_OTHER_UCB_QUEUED : UNSIGNED_LONGWORD; -- UCB queued to CPU db (dev UCB) FP_IPINT : UNSIGNED_LONGWORD; -- Sent IPINT (dev UCB) FP_QUEUE_SELF : UNSIGNED_LONGWORD; -- Queued UCB to local IPL8 FQ (dev UCB) FP_AFF_FKB_INUSE : UNSIGNED_LONGWORD; -- Start I/O affinity FKB found inuse (dev UCB) FP_UCB_WAS_QUEUED : UNSIGNED_LONGWORD; -- Number of times UCB was already queued to port CPU (dev UCB) -- Port CPU Initiate counters: FP_BAD_START_AFF : UNSIGNED_LONGWORD; -- Affinity has changed (dev UCB) FP_EMPTY_UCB : UNSIGNED_LONGWORD; -- UCB found with no start I/Os (dev UCB) FP_AFF_IO_FOUND : UNSIGNED_LONGWORD; -- Number of affinitized start I/Os found (dev UCB) FP_AFF_IO_STARTED : UNSIGNED_LONGWORD; -- Number of Affinitized I/Os started (dev UCB) -- SCS$UNSTALLUCB counters: FP_RESUMED_IO : UNSIGNED_LONGWORD; -- Number of resumed I/Os (dev UCB) -- Fast Send Message vetoes from various layers: FP_SYSAP_SENDS : UNSIGNED_LONGWORD; -- Number of SYSAP Send messages via Fast Path FP_SYSAP_NOSEND : UNSIGNED_LONGWORD; -- Number of SYSAP denials for Fast Path send msg (dev UCB) FP_SCS_NOSEND : UNSIGNED_LONGWORD; -- Number of SCS denials for Fast Path send message (not used, see CDT) FP_PORT_NOSEND : UNSIGNED_LONGWORD; -- Number of port driver denials for Fast Path send msg (port UCB) FP_PORT_NORBUN : UNSIGNED_LONGWORD; -- Number of times lack of RBUN denied for Fast Path send msg (port UCB) -- Receive Send Message vetoes from various layers: FP_SYSAP_RECVS : UNSIGNED_LONGWORD; -- Number of SYSAP Send messages via Fast Path FP_SYSAP_NORECV : UNSIGNED_LONGWORD; -- Number of SYSAP denials for Fast Path receive msg (dev UCB) FP_SCS_NORECV : UNSIGNED_LONGWORD; -- Number of SCS denials for Fast Path receive message (not used, see CDT) FP_PORT_NORECV : UNSIGNED_LONGWORD; -- Number of port driver denials for Fast Path receive msg (port UCB) -- RBUN pool activity: FP_RBUN_CREATES : UNSIGNED_LONGWORD; -- Number of RBUN creates (port UCB) FP_RBUN_DELETES : UNSIGNED_LONGWORD; -- Number of RBUN deletions (port UCB) FP_URGENT_RECLAIMS : UNSIGNED_LONGWORD; -- Number of Urgent Reclamations of SCS non-paged pool (not used) FP_RBUN_POOL_CLEANUPS : UNSIGNED_LONGWORD; -- Number of times RBUN pool cleaned up (port UCB) FP_PORT_TYP1 : UNSIGNED_LONGWORD; -- Number of Typ1 maps over port (port UCB) -- Port driver ISR counters: FP_INTERRUPTS : UNSIGNED_LONGWORD; -- Number of device interrupts (port UCB) FP_SAVED_FORKS : UNSIGNED_LONGWORD; -- Number of Response Q forks saved (port UCB) FP_INT_QUEUED : UNSIGNED_LONGWORD; -- Number of interrupt fork blocks queued locally or to port CPU (port UCB) -- Port driver fork routine counters: FP_BAD_INT_AFF : UNSIGNED_LONGWORD; -- Affinity has changed after device interrupt IPINT (port UCB) FP_PORT_FORKS : UNSIGNED_LONGWORD; -- Number of times port response queue fork executes (port UCB) FP_PORT_FORK_REQUEUES : UNSIGNED_LONGWORD; -- Number of times port response queue fork requeued (port UCB) FP_RESPONSES : UNSIGNED_LONGWORD; -- Number of responses taken from response queue (port UCB) -- Miscellaneous port activities: FP_REPO_CDRP : UNSIGNED_LONGWORD; -- Number of Repossess CDRP service calls (port UCB) FP_AFFINITY_CHANGES : UNSIGNED_LONGWORD; -- Number of affinity changes on port (port UCB) -- IOC_STD$REQCOM_LOCAL counters: FP_REQCOM : UNSIGNED_LONGWORD; -- Number of Fast Path request completions (dev UCB) FP_RESERVED1 : UNSIGNED_LONGWORD; -- Reserved for Fast Path FP_RESERVED2 : UNSIGNED_LONGWORD; -- Reserved for Fast Path FP_RESERVED3 : UNSIGNED_LONGWORD; -- Reserved for Fast Path FP_RESERVED4 : UNSIGNED_LONGWORD; -- Reserved for Fast Path FP_RESERVED5 : UNSIGNED_LONGWORD; -- Reserved for Fast Path FP_RESERVED6 : UNSIGNED_LONGWORD; -- Reserved for Fast Path FP_RESERVED7 : UNSIGNED_LONGWORD; -- Reserved for Fast Path FP_RESERVED8 : UNSIGNED_LONGWORD; -- Reserved for Fast Path FP_RESERVED9 : UNSIGNED_LONGWORD; -- Reserved for Fast Path FP_RESERVED10 : UNSIGNED_LONGWORD; -- Reserved for Fast Path -- -- Fast-IO counters -- FIOPCNT : UNSIGNED_LONGWORD; -- IO_PERFORM calls for this UCB FIOCOPT : UNSIGNED_LONGWORD; -- "Channel == same" optimization count FIOFFDT : UNSIGNED_LONGWORD; -- Count of ACP$FASTIO_BLOCK routine calls FIOECNT : UNSIGNED_LONGWORD; -- Number of ACP$FASTIO_BLOCK error returns FIOELNO : UNSIGNED_LONGWORD; -- Source code line number of last error return FIOEPID : UNSIGNED_LONGWORD; -- PID of process causing the last error return FIOVIOC : UNSIGNED_LONGWORD; -- Fast-IO calls to VIO cache FIOVIOH : UNSIGNED_LONGWORD; -- VIO cache hits FIOCIOC : UNSIGNED_LONGWORD; -- VIO cache I/Os (complete or partial miss) -- FIOVIOC - FIOVIOH - FIOCIOC is count of -- I/Os to file not cached but we had to invoke -- the VIOC before we knew we didn't want to. FIORVOP : UNSIGNED_LONGWORD; -- Number of read virtual operations to driver FIOWVOP : UNSIGNED_LONGWORD; -- Number of write virtual operations to driver FIORLOP : UNSIGNED_LONGWORD; -- Number of read logical operations to driver FIOWLOP : UNSIGNED_LONGWORD; -- Number of write logical operations to driver FIOBKRD : UNSIGNED_LONGWORD; -- Total Blocks read (block == 512 bytes) FIOBKWT : UNSIGNED_LONGWORD; -- Total Blocks written (block == 512 bytes) FIOFFIN : UNSIGNED_LONGWORD; -- Count of fast-finishes FIOCOMP : UNSIGNED_LONGWORD; -- PID/FPC of last fast-finish FIOBCOM : UNSIGNED_LONGWORD; -- Count of fast-finishes for buffered I/O FIODCOM : UNSIGNED_LONGWORD; -- Count of fast-finishes for direct I/O FIOSCOM : UNSIGNED_LONGWORD; -- Count of fast-finishes with system completion FIOBIOL : UNSIGNED_LONGWORD; -- # bufio fast-finish longword buffer copies FIOBIOQ : UNSIGNED_LONGWORD; -- # bufio fast-finish quadword buffer copies FIOSTQF : UNSIGNED_LONGWORD; -- Count of fast-finish STQCs that failed when -- decrementing IOC and checking DIRP FIODIRP : UNSIGNED_LONGWORD; -- Count of fast-finishes with deaccess packets FIOIRPE : UNSIGNED_LONGWORD; -- Count of fast-finishes with IRPEs to delete FIOUAST : UNSIGNED_LONGWORD; -- Count of fast-finishes with user ASTs FILLER_2 : UNSIGNED_BYTE_ARRAY (0 .. 3); end record; for IOCNT_TYPE use record PTR_1 at 0 range 0 .. 31; PTR_2 at 4 range 0 .. 31; SIZE at 8 range 0 .. 15; TYP at 10 range 0 .. 7; SUBTYP at 11 range 0 .. 7; FILLER_1 at 12 range 0 .. 31; FP_PORT_CPU_IO at 16 range 0 .. 31; FP_IO_QUEUED at 20 range 0 .. 31; FP_UCB_QUEUED at 24 range 0 .. 31; FP_OTHER_UCB_QUEUED at 28 range 0 .. 31; FP_IPINT at 32 range 0 .. 31; FP_QUEUE_SELF at 36 range 0 .. 31; FP_AFF_FKB_INUSE at 40 range 0 .. 31; FP_UCB_WAS_QUEUED at 44 range 0 .. 31; FP_BAD_START_AFF at 48 range 0 .. 31; FP_EMPTY_UCB at 52 range 0 .. 31; FP_AFF_IO_FOUND at 56 range 0 .. 31; FP_AFF_IO_STARTED at 60 range 0 .. 31; FP_RESUMED_IO at 64 range 0 .. 31; FP_SYSAP_SENDS at 68 range 0 .. 31; FP_SYSAP_NOSEND at 72 range 0 .. 31; FP_SCS_NOSEND at 76 range 0 .. 31; FP_PORT_NOSEND at 80 range 0 .. 31; FP_PORT_NORBUN at 84 range 0 .. 31; FP_SYSAP_RECVS at 88 range 0 .. 31; FP_SYSAP_NORECV at 92 range 0 .. 31; FP_SCS_NORECV at 96 range 0 .. 31; FP_PORT_NORECV at 100 range 0 .. 31; FP_RBUN_CREATES at 104 range 0 .. 31; FP_RBUN_DELETES at 108 range 0 .. 31; FP_URGENT_RECLAIMS at 112 range 0 .. 31; FP_RBUN_POOL_CLEANUPS at 116 range 0 .. 31; FP_PORT_TYP1 at 120 range 0 .. 31; FP_INTERRUPTS at 124 range 0 .. 31; FP_SAVED_FORKS at 128 range 0 .. 31; FP_INT_QUEUED at 132 range 0 .. 31; FP_BAD_INT_AFF at 136 range 0 .. 31; FP_PORT_FORKS at 140 range 0 .. 31; FP_PORT_FORK_REQUEUES at 144 range 0 .. 31; FP_RESPONSES at 148 range 0 .. 31; FP_REPO_CDRP at 152 range 0 .. 31; FP_AFFINITY_CHANGES at 156 range 0 .. 31; FP_REQCOM at 160 range 0 .. 31; FP_RESERVED1 at 164 range 0 .. 31; FP_RESERVED2 at 168 range 0 .. 31; FP_RESERVED3 at 172 range 0 .. 31; FP_RESERVED4 at 176 range 0 .. 31; FP_RESERVED5 at 180 range 0 .. 31; FP_RESERVED6 at 184 range 0 .. 31; FP_RESERVED7 at 188 range 0 .. 31; FP_RESERVED8 at 192 range 0 .. 31; FP_RESERVED9 at 196 range 0 .. 31; FP_RESERVED10 at 200 range 0 .. 31; FIOPCNT at 204 range 0 .. 31; FIOCOPT at 208 range 0 .. 31; FIOFFDT at 212 range 0 .. 31; FIOECNT at 216 range 0 .. 31; FIOELNO at 220 range 0 .. 31; FIOEPID at 224 range 0 .. 31; FIOVIOC at 228 range 0 .. 31; FIOVIOH at 232 range 0 .. 31; FIOCIOC at 236 range 0 .. 31; FIORVOP at 240 range 0 .. 31; FIOWVOP at 244 range 0 .. 31; FIORLOP at 248 range 0 .. 31; FIOWLOP at 252 range 0 .. 31; FIOBKRD at 256 range 0 .. 31; FIOBKWT at 260 range 0 .. 31; FIOFFIN at 264 range 0 .. 31; FIOCOMP at 268 range 0 .. 31; FIOBCOM at 272 range 0 .. 31; FIODCOM at 276 range 0 .. 31; FIOSCOM at 280 range 0 .. 31; FIOBIOL at 284 range 0 .. 31; FIOBIOQ at 288 range 0 .. 31; FIOSTQF at 292 range 0 .. 31; FIODIRP at 296 range 0 .. 31; FIOIRPE at 300 range 0 .. 31; FIOUAST at 304 range 0 .. 31; FILLER_2 at 308 range 0 .. 31; end record; for IOCNT_TYPE'SIZE use 2496; IOCNT_TYPE_INIT : constant IOCNT_TYPE := (PTR_1 => ADDRESS_ZERO, PTR_2 => ADDRESS_ZERO, SIZE => 0, TYP => 0, SUBTYP => 0, FILLER_1 => (others => 0), FP_PORT_CPU_IO => 0, FP_IO_QUEUED => 0, FP_UCB_QUEUED => 0, FP_OTHER_UCB_QUEUED => 0, FP_IPINT => 0, FP_QUEUE_SELF => 0, FP_AFF_FKB_INUSE => 0, FP_UCB_WAS_QUEUED => 0, FP_BAD_START_AFF => 0, FP_EMPTY_UCB => 0, FP_AFF_IO_FOUND => 0, FP_AFF_IO_STARTED => 0, FP_RESUMED_IO => 0, FP_SYSAP_SENDS => 0, FP_SYSAP_NOSEND => 0, FP_SCS_NOSEND => 0, FP_PORT_NOSEND => 0, FP_PORT_NORBUN => 0, FP_SYSAP_RECVS => 0, FP_SYSAP_NORECV => 0, FP_SCS_NORECV => 0, FP_PORT_NORECV => 0, FP_RBUN_CREATES => 0, FP_RBUN_DELETES => 0, FP_URGENT_RECLAIMS => 0, FP_RBUN_POOL_CLEANUPS => 0, FP_PORT_TYP1 => 0, FP_INTERRUPTS => 0, FP_SAVED_FORKS => 0, FP_INT_QUEUED => 0, FP_BAD_INT_AFF => 0, FP_PORT_FORKS => 0, FP_PORT_FORK_REQUEUES => 0, FP_RESPONSES => 0, FP_REPO_CDRP => 0, FP_AFFINITY_CHANGES => 0, FP_REQCOM => 0, FP_RESERVED1 => 0, FP_RESERVED2 => 0, FP_RESERVED3 => 0, FP_RESERVED4 => 0, FP_RESERVED5 => 0, FP_RESERVED6 => 0, FP_RESERVED7 => 0, FP_RESERVED8 => 0, FP_RESERVED9 => 0, FP_RESERVED10 => 0, FIOPCNT => 0, FIOCOPT => 0, FIOFFDT => 0, FIOECNT => 0, FIOELNO => 0, FIOEPID => 0, FIOVIOC => 0, FIOVIOH => 0, FIOCIOC => 0, FIORVOP => 0, FIOWVOP => 0, FIORLOP => 0, FIOWLOP => 0, FIOBKRD => 0, FIOBKWT => 0, FIOFFIN => 0, FIOCOMP => 0, FIOBCOM => 0, FIODCOM => 0, FIOSCOM => 0, FIOBIOL => 0, FIOBIOQ => 0, FIOSTQF => 0, FIODIRP => 0, FIOIRPE => 0, FIOUAST => 0, FILLER_2 => (others => 0)); end IOCNTDEF;