!*** MODULE $QSRVDEF IDENT X-9 *** !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN ! ! QIOserver Control and Information ($QIOSERVER) definitions. ! ! NOTE: New items must always be added at the end so users will not have to relink. ! ! ! Function codes ! PARAMETER QSRV$_CANCEL_OPERATION = '00000001'X ! Cancel a wildcard operation PARAMETER QSRV$_COMMIT_VOLATILE = '00000002'X ! Commit the volatile configuration to permanent PARAMETER QSRV$_SET_CLIENT = '00000003'X ! Set client configuration controls PARAMETER QSRV$_SET_DEVICE = '00000004'X ! Set device configuration controls PARAMETER QSRV$_SET_LOGGING = '00000005'X ! Set logging PARAMETER QSRV$_SET_SERVER = '00000006'X ! Set server configuration controls PARAMETER QSRV$_SET_SERVICE = '00000007'X ! Set client-server path service PARAMETER QSRV$_SHOW_CLIENT = '00000008'X ! Show client configuration and operational data PARAMETER QSRV$_SHOW_DEVICE = '00000009'X ! Show device configuration PARAMETER QSRV$_SHOW_LOGGING = '0000000A'X ! Show logging PARAMETER QSRV$_SHOW_SERVER = '0000000B'X ! Show server configuration and operational data PARAMETER QSRV$_SHOW_SERVICE = '0000000C'X ! Show client-server path service PARAMETER QSRV$K_MIN_FUNC = '00000001'X ! Minimum QIOSERVER function code PARAMETER QSRV$K_MAX_FUNC = '0000000C'X ! Maximum QIOSERVER function code ! ! Item codes ! ! Item codes are limited to a byte value for use with the context block validation ! PARAMETER QSRV$_ADD_FILTER = '00000001'X ! Add message event filter 3 tuple PARAMETER QSRV$_ADD_POOL = '00000002'X ! Add a block of memory for server I/O use PARAMETER QSRV$_AUTO_ADD_NPP = '00000003'X ! T/F auto add NPP for server I/O PARAMETER QSRV$_CLEAR_FILTERS = '00000004'X ! Clear all message event filters PARAMETER QSRV$_CLIENT_NAME = '00000005'X ! Client SCSNODE name - SYSGEN SCSNODE PARAMETER QSRV$_CLIENT_SCSSYSTEMID = '00000006'X ! Client SCS system id - SYSGEN SCSSYSTEMID PARAMETER QSRV$_DEFAULT_PRIORITY = '00000007'X ! The default path priority PARAMETER QSRV$_DELETE_POOL_BLOCK = '00000008'X ! Remove an allocated pool block PARAMETER QSRV$_DEVICE_NAME = '00000009'X ! Full device name PARAMETER QSRV$_FLAGS = '0000000A'X ! System service control flags PARAMETER QSRV$_KCC_COUNTERS = '0000000B'X ! KClient connection counter data PARAMETER QSRV$_KCD_COUNTERS = '0000000C'X ! KClient device counter data PARAMETER QSRV$_KCR_COUNTERS = '0000000D'X ! KClient root counter data PARAMETER QSRV$_KSC_COUNTERS = '0000000E'X ! KServer connection counter data PARAMETER QSRV$_KSD_COUNTERS = '0000000F'X ! KServer device counter data PARAMETER QSRV$_KSR_COUNTERS = '00000010'X ! KServer root counter data PARAMETER QSRV$_KSR_FUNCTION_HISTOGRAM = '00000011'X ! KServer function code histogram PARAMETER QSRV$_KSR_IO_BUFFER_HISTOGRAM = '00000012'X ! KServer histogram of I/O buffer sizes PARAMETER QSRV$_LIST_FILTERS = '00000013'X ! List all message event filters PARAMETER QSRV$_LIST_POOL_BLOCKS = '00000014'X ! Display server I/O pool blocks PARAMETER QSRV$_LIST_POOL_STATS = '00000015'X ! Display server I/O pool statistics PARAMETER QSRV$_LOG_MODE = '00000016'X ! Logging modes PARAMETER QSRV$_LOG_NODE = '00000017'X ! Logging SCSNODE name PARAMETER QSRV$_LOG_RESTART = '00000018'X ! Restart data logging PARAMETER QSRV$_NBR_ALTERNATE_PATHS = '00000019'X ! Number of client resident alternate paths PARAMETER QSRV$_NBR_CLIENTS = '0000001A'X ! Number of clients seen by server PARAMETER QSRV$_NBR_CLIENT_THREADS = '0000001B'X ! Number of client configure threads PARAMETER QSRV$_NBR_CREDITS = '0000001C'X ! Number of SCS credits PARAMETER QSRV$_NBR_DEVICES = '0000001D'X ! Number of devices seen and available PARAMETER QSRV$_NBR_FILTERS = '0000001E'X ! Number of message event filters in list PARAMETER QSRV$_NBR_IO_FRAGMENTS = '0000001F'X ! Max number of I/O fragments per transfer PARAMETER QSRV$_NBR_SERVERS = '00000020'X ! Number of servers seen by client PARAMETER QSRV$_NBR_SERVER_THREADS = '00000021'X ! Number of server configure threads PARAMETER QSRV$_PATH_STATE = '00000022'X ! Path state PARAMETER QSRV$_POOL_WAIT_TMO = '00000023'X ! Number of seconds KServer Pool hold PARAMETER QSRV$_QSLUN_AUTO = '00000024'X ! T/F KClient to get QSLUN automatically PARAMETER QSRV$_QSRV_COMPONENT = '00000025'X ! Component of the QIOserver sub-system PARAMETER QSRV$_REMOVE_FILTER = '00000026'X ! Remove message event filter 3 tuple PARAMETER QSRV$_SEARCH_NAME = '00000027'X ! Node or device name for wildcard search PARAMETER QSRV$_SEQUENTIAL_ORDER = '00000028'X ! T/F Order IRPs by sequence #, def - priority PARAMETER QSRV$_SERVER_NAME = '00000029'X ! Server SCS node name - SYSGEN SCSNODE PARAMETER QSRV$_SERVER_SCSSYSTEMID = '0000002A'X ! Server SCS system id - SYSGEN SCSSYSTEMID PARAMETER QSRV$_SERVICE_STATE = '0000002B'X ! Device serve/noserve state PARAMETER QSRV$_UCC_COUNTERS = '0000002C'X ! UClient connection counter data PARAMETER QSRV$_UCR_COUNTERS = '0000002D'X ! UClient root counter data PARAMETER QSRV$_USC_COUNTERS = '0000002E'X ! UServer connection counter data PARAMETER QSRV$_USR_COUNTERS = '0000002F'X ! UServer root counter data PARAMETER QSRV$K_MIN_ITEM = '00000001'X ! Minimum documented item code PARAMETER QSRV$K_MAX_ITEM = '0000002F'X ! Maximum documented item code ! ! The following structure defines the bit masks for the QSRV$_FLAGS item code. ! PARAMETER QSRV$M_PERMANENT = '00000001'X PARAMETER QSRV$M_VOLATILE = '00000002'X PARAMETER QSRV$M_ADD = '00000004'X PARAMETER QSRV$M_CLIENT_CONFIG = '00010000'X PARAMETER QSRV$M_SERVER_CONFIG = '00020000'X PARAMETER QSRV$M_CLIENT_SEARCH = '00040000'X PARAMETER QSRV$M_DEVICE_SEARCH = '00080000'X PARAMETER QSRV$M_SERVER_SEARCH = '00100000'X PARAMETER QSRV$M_SEARCH_DONE = '00200000'X PARAMETER QSRV$M_CTX_ALLOCATED = '00400000'X STRUCTURE /QSRV_FLAGS/ UNION MAP INTEGER*4 QSRV$L_FLAGS END MAP MAP PARAMETER QSRV$S_PERMANENT = 1 PARAMETER QSRV$V_PERMANENT = 0 ! Applies to permanent database PARAMETER QSRV$S_VOLATILE = 1 PARAMETER QSRV$V_VOLATILE = 1 ! Applies to volatile database PARAMETER QSRV$S_ADD = 1 PARAMETER QSRV$V_ADD = 2 ! Allow volatile database structure creation ! The following flags are reserved for Compaq internal use. PARAMETER QSRV$S_CLIENT_CONFIG = 1 PARAMETER QSRV$V_CLIENT_CONFIG = 16 ! Use the client configuration PARAMETER QSRV$S_SERVER_CONFIG = 1 PARAMETER QSRV$V_SERVER_CONFIG = 17 ! Use the server configuration PARAMETER QSRV$S_CLIENT_SEARCH = 1 PARAMETER QSRV$V_CLIENT_SEARCH = 18 ! Search name is for clients PARAMETER QSRV$S_DEVICE_SEARCH = 1 PARAMETER QSRV$V_DEVICE_SEARCH = 19 ! Search name is for devices PARAMETER QSRV$S_SERVER_SEARCH = 1 PARAMETER QSRV$V_SERVER_SEARCH = 20 ! Search name is for servers PARAMETER QSRV$S_SEARCH_DONE = 1 PARAMETER QSRV$V_SEARCH_DONE = 21 ! Search is done PARAMETER QSRV$S_CTX_ALLOCATED = 1 PARAMETER QSRV$V_CTX_ALLOCATED = 22 ! Allocated context block BYTE %FILL (2) END MAP END UNION END STRUCTURE ! QSRV_FLAGS PARAMETER QSRV_FLAGS$C_LENGTH = '00000004'X PARAMETER QSRV_FLAGS$K_LENGTH = '00000004'X ! ! The following structure defines the bit masks for the QSRV$_LOG_MODE item code. ! PARAMETER QSRV_LOG$M_ACTIV_UCLOG = '00010000'X PARAMETER QSRV_LOG$M_ACTIV_USLOG = '00020000'X PARAMETER QSRV_LOG$M_ACTIV_KCLOG = '00040000'X PARAMETER QSRV_LOG$M_ACTIV_KSLOG = '00080000'X PARAMETER QSRV_LOG$M_ACTIV_MSG = '00100000'X PARAMETER QSRV_LOG$M_ACTIV_EVT = '00200000'X PARAMETER QSRV_LOG$M_ACTIV_CNT = '00400000'X PARAMETER QSRV_LOG$M_ACTIV_HST = '00800000'X PARAMETER QSRV_LOG$M_ACTIV_VBS = '01000000'X STRUCTURE /QSRV_LOG/ UNION MAP INTEGER*4 QSRV_LOG$L_FLAGS END MAP MAP PARAMETER QSRV_LOG$S_filler1 = 16 PARAMETER QSRV_LOG$V_filler1 = 0 ! Reserved Compaq internal use PARAMETER QSRV_LOG$S_ACTIV_UCLOG = 1 PARAMETER QSRV_LOG$V_ACTIV_UCLOG = 16 ! Turn on Uclient logging PARAMETER QSRV_LOG$S_ACTIV_USLOG = 1 PARAMETER QSRV_LOG$V_ACTIV_USLOG = 17 ! Turn on Userver logging PARAMETER QSRV_LOG$S_ACTIV_KCLOG = 1 PARAMETER QSRV_LOG$V_ACTIV_KCLOG = 18 ! Turn on Kclient logging PARAMETER QSRV_LOG$S_ACTIV_KSLOG = 1 PARAMETER QSRV_LOG$V_ACTIV_KSLOG = 19 ! Turn on Kserver logging PARAMETER QSRV_LOG$S_ACTIV_MSG = 1 PARAMETER QSRV_LOG$V_ACTIV_MSG = 20 ! Turn on message logging PARAMETER QSRV_LOG$S_ACTIV_EVT = 1 PARAMETER QSRV_LOG$V_ACTIV_EVT = 21 ! Turn on event logging PARAMETER QSRV_LOG$S_ACTIV_CNT = 1 PARAMETER QSRV_LOG$V_ACTIV_CNT = 22 ! Turn on counter logging PARAMETER QSRV_LOG$S_ACTIV_HST = 1 PARAMETER QSRV_LOG$V_ACTIV_HST = 23 ! Turn on histogram logging PARAMETER QSRV_LOG$S_ACTIV_VBS = 1 PARAMETER QSRV_LOG$V_ACTIV_VBS = 24 ! Turn on QIO$CONFIGURE verbose PARAMETER QSRV_LOG$S_filler2 = 7 PARAMETER QSRV_LOG$V_filler2 = 25 BYTE %FILL (4) ! Reserved Compaq internal use END MAP END UNION END STRUCTURE ! QSRV_LOG PARAMETER QSRV_LOG$C_LENGTH = '00000004'X PARAMETER QSRV_LOG$K_LENGTH = '00000004'X ! ! Message logging type codes ! PARAMETER QSRV$K_MSG_SCS = '00000001'X ! SCS messages PARAMETER QSRV$K_MSG_QSP = '00000002'X ! QSP messages PARAMETER QSRV$K_MSG_ICC_CONN = '00000003'X ! ICC messages - connection management PARAMETER QSRV$K_MSG_ICC_DATA = '00000004'X ! ICC messages - data transfer PARAMETER QSRV$K_MIN_MSG = '00000001'X ! Minimum documented message filter type code PARAMETER QSRV$K_MAX_MSG = '00000004'X ! Minimum documented message filter type code ! ! The following structure defines the data required to specify or receive ! a logging data filter tuple. Associated with QSRV$_ADD_FILTER, ! QSV$_LIST_FILTERS, and QSRV$_REMOVE_FILTER item codes. ! STRUCTURE /QSRV_FILTER/ CHARACTER*16 QSRV_FILTER$t_node ! Message source node INTEGER*4 QSRV_FILTER$l_type ! Message source type CHARACTER*64 QSRV_FILTER$t_device ! Message source device END STRUCTURE ! QSRV_FILTER PARAMETER QSRV_FILTER$C_LENGTH = '00000054'X PARAMETER QSRV_FILTER$K_LENGTH = '00000054'X ! ! The following structure is used to receive histogram data ! with QSRV$_KSR_FUNCTION_HISTOGRAM and QSRV$_KSR_IO_BUFFER_HISTOGRAM ! item codes. ! ! The bucket_count is within the range 1 to 64. data[1] to data[64] ! will hold the in range histogram data. data[0] will hold the ! underflow data and data[65] will hold the overflow data. This ! structure is for reporting predefined histograms via item code. The ! low value is in bucket_base and the high value is bucket_base plus ! bucket_range. ! STRUCTURE /QSRV_HISTOGRAM/ INTEGER*4 QSRV_HISTOGRAM$L_BUCKET_COUNT ! Number of buckets - 2 BYTE %FILL(0:3) INTEGER*4 QSRV_HISTOGRAM$Q_BUCKET_BASE(2) ! Base value INTEGER*4 QSRV_HISTOGRAM$Q_BUCKET_RANGE(2) ! Value range INTEGER*4 QSRV_HISTOGRAM$Q_DATA(2,1:66) ! Histogram data END STRUCTURE ! QSRV_HISTOGRAM PARAMETER QSRV_HISTOGRAM$C_UNDERFLOW = '00000000'X PARAMETER QSRV_HISTOGRAM$C_OVERFLOW = '00000041'X PARAMETER QSRV_HISTOGRAM$C_LENGTH = '00000228'X PARAMETER QSRV_HISTOGRAM$K_LENGTH = '00000228'X ! ! The following structure is used for the IOSB declaration. The IOSB is a ! 2 longword structure which is initialized to zero by the QIOSERVER system ! service as part of request initialization. The first longword will receive ! the final condition code for the request as determined by QIO$CONFIGURE. ! STRUCTURE /QSRV_IOSB/ INTEGER*4 QSRV_IOSB$l_pri_status ! Primary request status INTEGER*4 QSRV_IOSB$l_sec_status ! Secondary request status END STRUCTURE ! QSRV_IOSB PARAMETER QSRV_IOSB$C_LENGTH = '00000008'X PARAMETER QSRV_IOSB$K_LENGTH = '00000008'X ! ! The following structure defines the bit masks for the QSRV$_DEFAULT_PRIORITY ! and QSRV$_PATH_STATE item codes. ! ! For the QSRV$_DEFAULT_PRIORITY item code only the priority mask is valid. ! ! For the QSRV$_PATH_STATE item code an array of two of these structures is ! used. The first entry contains a mask of the associated bits in the value ! component (second entry) which are valid for the operation during a SET ! function. Only the value component is filled for a SHOW function. ! PARAMETER QSRV_PATH$M_PRIORITY = '000000FF'X PARAMETER QSRV_PATH$M_LOCAL2SERVER = '04000000'X PARAMETER QSRV_PATH$M_QVALID = '08000000'X PARAMETER QSRV_PATH$M_VALID = '10000000'X PARAMETER QSRV_PATH$M_SERVED = '20000000'X PARAMETER QSRV_PATH$M_EXCLUSIVE = '40000000'X PARAMETER QSRV_PATH$M_CURRENT = '80000000'X PARAMETER QSRV_PATH$m_filler2 = '03FFFFFF'X PARAMETER QSRV_PATH$M_USEABLE_PATH = '3C000000'X PARAMETER QSRV_PATH$m_filler3 = 'C0000000'X STRUCTURE /QSRV_PATH/ UNION MAP INTEGER*4 QSRV_PATH$L_PATH_STATE ! Path state END MAP MAP PARAMETER QSRV_PATH$S_PRIORITY = 8 PARAMETER QSRV_PATH$V_PRIORITY = 0 ! Path priority PARAMETER QSRV_PATH$S_LOCAL2SERVER = 1 PARAMETER QSRV_PATH$V_LOCAL2SERVER = 26 ! Device is local to the server PARAMETER QSRV_PATH$S_QVALID = 1 PARAMETER QSRV_PATH$V_QVALID = 27 ! Path QSLUN is valid PARAMETER QSRV_PATH$S_VALID = 1 PARAMETER QSRV_PATH$V_VALID = 28 ! Path is valid PARAMETER QSRV_PATH$S_SERVED = 1 PARAMETER QSRV_PATH$V_SERVED = 29 ! Path is served PARAMETER QSRV_PATH$S_EXCLUSIVE = 1 PARAMETER QSRV_PATH$V_EXCLUSIVE = 30 ! Path exclusivity PARAMETER QSRV_PATH$S_CURRENT = 1 PARAMETER QSRV_PATH$V_CURRENT = 31 BYTE %FILL (2) ! This path is the current path END MAP MAP PARAMETER QSRV_PATH$S_filler2 = 26 PARAMETER QSRV_PATH$V_filler2 = 0 PARAMETER QSRV_PATH$S_USEABLE_PATH = 4 PARAMETER QSRV_PATH$V_USEABLE_PATH = 26 ! Mask for Qvalid,valid,and served PARAMETER QSRV_PATH$S_filler3 = 2 PARAMETER QSRV_PATH$V_filler3 = 30 BYTE %FILL (4) END MAP END UNION END STRUCTURE ! QSRV_PATH PARAMETER QSRV_PATH$C_LENGTH = '00000004'X PARAMETER QSRV_PATH$K_LENGTH = '00000004'X ! ! The following structure defines bit masks for the QSRV$_ADD_POOL item ! code and a structure for the QSRV$_DELETE_POOL_BLOCK item code. ! PARAMETER QSRV_POOL$M_SIZE = '7FFFFFFF'X PARAMETER QSRV_POOL$M_NPP = '80000000'X STRUCTURE /QSRV_POOL/ UNION MAP INTEGER*4 QSRV_POOL$L_BLOCK_ID ! ID of pool block to delete END MAP MAP PARAMETER QSRV_POOL$S_SIZE = 31 PARAMETER QSRV_POOL$V_SIZE = 0 ! Number of bytes PARAMETER QSRV_POOL$S_NPP = 1 PARAMETER QSRV_POOL$V_NPP = 31 BYTE %FILL (4) ! From non-paged pool and END MAP ! from S2 space if not set MAP INTEGER*4 QSRV_POOL$L_MODIFY ! Change to pool END MAP END UNION END STRUCTURE ! QSRV_POOL PARAMETER QSRV_POOL$C_LENGTH = '00000004'X PARAMETER QSRV_POOL$K_LENGTH = '00000004'X ! ! The following structure defines the data for the QSRV$_LIST_POOL_STATS ! item code. ! STRUCTURE /QSRV_PLST/ INTEGER*4 QSRV_PLST$L_TOT_SIZE ! Total number of bytes for type INTEGER*4 QSRV_PLST$L_FREE_SIZE ! Amount of free space in bytes INTEGER*4 QSRV_PLST$L_NBR_BLOCKs ! Number of active additions INTEGER*4 QSRV_PLST$L_NBR_FRAGMENTS ! Total number of fragments INTEGER*4 QSRV_PLST$L_MAX_FRAG_SIZE ! Size in bytes of largest fragment INTEGER*4 QSRV_PLST$L_NPP_ADD_REQS ! Count of requests to add NPP INTEGER*4 QSRV_PLST$L_MAX_NPP_ADD_REQ ! Max NPP request size END STRUCTURE ! QSRV_PLST ! ! The following constants may be used to reference the pool statistics ! data defined previously. ! PARAMETER QSRV_PLST$K_S2 = '00000000'X ! S2 Space pool PARAMETER QSRV_PLST$K_NPP = '00000001'X ! Non-paged pool PARAMETER QSRV_PLST$C_LENGTH = '00000038'X PARAMETER QSRV_PLST$K_LENGTH = '00000038'X ! ! The following structure defines the data for the QSRV$_LIST_POOL_BLOCKS ! item code. ! PARAMETER QSRV_PLBLK$M_SIZE = '7FFFFFFF'X PARAMETER QSRV_PLBLK$M_NPP = '80000000'X STRUCTURE /QSRV_PLBLK/ INTEGER*4 QSRV_PLBLK$L_BLOCK_ID ! Block identifier UNION MAP INTEGER*4 QSRV_PLBLK$L_BLOCK_SIZE_TYPE END MAP MAP PARAMETER QSRV_PLBLK$S_SIZE = 31 PARAMETER QSRV_PLBLK$V_SIZE = 0 ! Number of bytes in block PARAMETER QSRV_PLBLK$S_NPP = 1 PARAMETER QSRV_PLBLK$V_NPP = 31 BYTE %FILL (4) ! From non-paged pool if set END MAP END UNION INTEGER*4 QSRV_PLBLK$L_FREE_SIZE ! Amount of free space in bytes INTEGER*4 QSRV_PLBLK$L_NBR_FRAGMENTS ! Total number of fragments INTEGER*4 QSRV_PLBLK$L_MAX_FRAG_SIZE ! Size in bytes of largest fragment END STRUCTURE ! QSRV_PLBLK PARAMETER QSRV_PLBLK$C_LENGTH = '00000014'X PARAMETER QSRV_PLBLK$K_LENGTH = '00000014'X ! ! The following structure defines the data for the QSRV$_KCR_COUNTERS ! item code. It will receive QIOServer Client root data. ! STRUCTURE /QSRV_KCRC/ INTEGER*4 QSRV_KCRC$L_DRIVERS ! Number of drivers configured INTEGER*4 QSRV_KCRC$L_DEVICES ! Number of devices configured INTEGER*4 QSRV_KCRC$L_ACT_SERVER_CONNS ! Number of active server connections INTEGER*4 QSRV_KCRC$L_TOT_SERVERS_SEEN ! Total number of servers ever seen INTEGER*4 QSRV_KCRC$Q_CYCLES_PER_SEC(2) ! Number of cycle ticks per second INTEGER*4 QSRV_KCRC$Q_TOT_SIO_TICS(2) ! Accumulated CPU time per simple I/O INTEGER*4 QSRV_KCRC$Q_TOT_SIO(2) ! Total simple I/Os END STRUCTURE ! QSRV_KCRC PARAMETER QSRV_KCRC$C_LENGTH = '00000028'X PARAMETER QSRV_KCRC$K_LENGTH = '00000028'X ! ! The following structure defines the data for the QSRV$_KCC_COUNTERS ! item code. It will receive QIOServer Client connection event data. ! ! QSRV_KCRC$L_SERVERS indicates the number of active connections. ! STRUCTURE /QSRV_KCCC/ INTEGER*4 QSRV_KCCC$Q_SCSSYSTEMID(2) ! SCSSYSTEMID of server for this connection INTEGER*4 QSRV_KCCC$Q_IO_COUNT(2) ! Overall I/O operations on this connection INTEGER*4 QSRV_KCCC$Q_COMPLEX_COUNT(2) ! Total complex I/O operations on this connection INTEGER*4 QSRV_KCCC$Q_CONTROL_COUNT(2) ! Total control I/O operations on this connection INTEGER*4 QSRV_KCCC$Q_NBR_CONN(2) ! Number of times a connection has been made to this server INTEGER*4 QSRV_KCCC$Q_CONN_TIME(2) ! Time of last connection INTEGER*4 QSRV_KCCC$Q_NBR_DEVICES(2) ! Number of devices using this connection as current path INTEGER*4 QSRV_KCCC$L_OPS_STALLED ! Total operations stalled in Kclient for this connection INTEGER*2 QSRV_KCCC$W_CREDIT_WAIT ! SCS credit waits for this connection from the CDT INTEGER*2 QSRV_KCCC$w_reserved_1 ! Reserved for alignment END STRUCTURE ! QSRV_KCCC PARAMETER QSRV_KCCC$C_LENGTH = '00000040'X PARAMETER QSRV_KCCC$K_LENGTH = '00000040'X ! ! The following structure defines the data for the QSRV$_KCD_COUNTERS ! item code. It will receive QIOServer Client device data. ! ! QSRV_KCRC$L_DEVICES indicates the number of devices. ! STRUCTURE /QSRV_KCDC/ UNION MAP CHARACTER*16 QSRV_KCDC$T_NAME ! Device name in ASCIC form END MAP MAP UNION MAP BYTE QSRV_KCDC$B_NAME_LEN END MAP MAP BYTE QSRV_KCDC$IB_NAME_LEN ! Character count END MAP END UNION CHARACTER*15 QSRV_KCDC$T_NAME_STR ! Character string END MAP END UNION INTEGER*4 QSRV_KCDC$Q_IO_COUNT(2) ! Overall I/O operations to this device INTEGER*4 QSRV_KCDC$Q_COMPLEX_COUNT(2) ! Total complex I/O operations to this device INTEGER*4 QSRV_KCDC$Q_CONTROL_COUNT(2) ! Total control I/O operations to this device INTEGER*4 QSRV_KCDC$Q_RT_TIME(2) ! Overall round-trip time INTEGER*4 QSRV_KCDC$L_OPS_IN_SERVER ! Current operations in server for this device INTEGER*4 QSRV_KCDC$L_OPS_STALLED ! Total operations stalled in Kclient for this device INTEGER*4 QSRV_KCDC$L_PATHS ! Total paths configured for this device INTEGER*4 QSRV_KCDC$l_reserved END STRUCTURE ! QSRV_KCDC PARAMETER QSRV_KCDC$C_LENGTH = '00000040'X PARAMETER QSRV_KCDC$K_LENGTH = '00000040'X ! ! The following structure defines the data for the QSRV$_KSR_COUNTERS ! item code. It will receive QIOServer Server root data. ! STRUCTURE /QSRV_KSRC/ INTEGER*4 QSRV_KSRC$L_DEVICES ! Number of devices configured INTEGER*4 QSRV_KSRC$L_ACT_CLIENT_CONNS ! Number of active connections with clients INTEGER*4 QSRV_KSRC$L_TOT_CLIENTS_SEEN ! Total number of clients ever seen BYTE %FILL(0:3) INTEGER*4 QSRV_KSRC$Q_CYCLES_PER_SEC(2) ! Number of cycle ticks per second INTEGER*4 QSRV_KSRC$Q_PEAK_BUFFER(2) ! Peak buffer pool usage in KB INTEGER*4 QSRV_KSRC$Q_BUFFER_WAIT(2) ! Number of times I/Os waited for buffer space INTEGER*4 QSRV_KSRC$Q_FRAGMENTS(2) ! Number of I/O fragments performed INTEGER*4 QSRV_KSRC$Q_FRAG_IO(2) ! Number of I/O operations fragmented INTEGER*4 QSRV_KSRC$Q_QSMQE_EXP(2) ! Number of times Kserver expanded QSMQE list INTEGER*4 QSRV_KSRC$Q_PEAK_QSMQE(2) ! Max number of QSMQEs ever allocated INTEGER*4 QSRV_KSRC$Q_TOT_SIO_TICS(2) ! Accumulated CPU time per simple I/O INTEGER*4 QSRV_KSRC$Q_TOT_SIO(2) ! Total simple I/O operations END STRUCTURE ! QSRV_KSRC PARAMETER QSRV_KSRC$C_LENGTH = '00000058'X PARAMETER QSRV_KSRC$K_LENGTH = '00000058'X ! ! The following structure defines the data for the QSRV$_KSC_COUNTERS ! item code. It will receive QIOServer Server connection event data. ! ! QSRV_KSRC$L_CLIENTS indicates the number of connections. ! STRUCTURE /QSRV_KSCC/ INTEGER*4 QSRV_KSCC$Q_SCSSYSTEMID(2) ! SCSSYSTEMID of client for this connection INTEGER*4 QSRV_KSCC$Q_IO_COUNT(2) ! Overall I/O operations on this connection INTEGER*4 QSRV_KSCC$Q_COMPLEX_COUNT(2) ! Total complex I/O operations on this connection INTEGER*4 QSRV_KSCC$Q_CONTROL_COUNT(2) ! Total control I/O operations on this connection INTEGER*4 QSRV_KSCC$Q_NBR_CONN(2) ! Number of times a connection has been made to this client INTEGER*4 QSRV_KSCC$Q_CONN_TIME(2) ! Time of last connection INTEGER*4 QSRV_KSCC$Q_BAD_MSGS(2) ! Number of bad messages received on this connection INTEGER*2 QSRV_KSCC$W_CREDIT_WAIT ! SCS credit waits for this connection INTEGER*2 QSRV_KSCC$W_BDLT_WAIT ! SCS BDLT waits for this connection INTEGER*4 QSRV_KSCC$l_reserved END STRUCTURE ! QSRV_KSCC PARAMETER QSRV_KSCC$C_LENGTH = '00000040'X PARAMETER QSRV_KSCC$K_LENGTH = '00000040'X ! ! The following structure defines the data for the QSRV$_KSD_COUNTERS ! item code. It will receive QIOServer server device data. ! ! QSRV_KSRC$L_DEVICES indicates the number of devices. ! STRUCTURE /QSRV_KSDC/ UNION MAP CHARACTER*16 QSRV_KSDC$T_NAME ! Device name in ASCIC form END MAP MAP UNION MAP BYTE QSRV_KSDC$B_NAME_LEN END MAP MAP BYTE QSRV_KSDC$IB_NAME_LEN ! Character count END MAP END UNION CHARACTER*15 QSRV_KSDC$T_NAME_STR ! Character string END MAP END UNION INTEGER*4 QSRV_KSDC$Q_IO_COUNT(2) ! Overall I/O operations to this device INTEGER*4 QSRV_KSDC$Q_COMPLEX_COUNT(2) ! Total complex I/O operations to this device INTEGER*4 QSRV_KSDC$Q_CONTROL_COUNT(2) ! Total control I/O operations to this device INTEGER*4 QSRV_KSDC$Q_SIO_DEV_TIME(2) ! Total time spent in the device for simple I/O operati INTEGER*4 QSRV_KSDC$L_QUEUE_LENGTH ! Number of operations in the device now from Kserver INTEGER*4 QSRV_KSDC$L_OPS_STALLED ! Number of operations stalled END STRUCTURE ! QSRV_KSDC PARAMETER QSRV_KSDC$C_LENGTH = '00000038'X PARAMETER QSRV_KSDC$K_LENGTH = '00000038'X ! ! The following structure defines the data for the QSRV$_UCR_COUNTERS ! item code. It will receive QIO$CONFIGURE Client root data. ! STRUCTURE /QSRV_UCRC/ INTEGER*4 QSRV_UCRC$L_DEVICES ! Number of configured devices INTEGER*4 QSRV_UCRC$L_PATHS ! Total number of configured paths INTEGER*4 QSRV_UCRC$L_SERVERS ! Total number of configured servers INTEGER*4 QSRV_UCRC$L_PK_DC_THREADS ! Peak device configuration threads INTEGER*4 QSRV_UCRC$L_PK_SRV_THREAD ! Peak servers per thread BYTE %FILL(0:3) INTEGER*4 QSRV_UCRC$Q_SYSMGT_RQSTS(2) ! Total system management requests INTEGER*4 QSRV_UCRC$Q_UBUF_WAITS(2) ! Total waits for Ubuf/Uapibuf END STRUCTURE ! QSRV_UCRC PARAMETER QSRV_UCRC$C_LENGTH = '00000028'X PARAMETER QSRV_UCRC$K_LENGTH = '00000028'X ! ! The following structure defines the data for the QSRV$_UCC_COUNTERS ! item code. It will receive QIO$CONFIGURE Client connection event data. ! ! QSRV_UCRC$L_SERVERS indicates the number of connections. ! ! Note that Uclient does not maintain an active connection to a server; ! it establishes a connection only when Uclient wants something. These ! counters count all events since Uclient discovered the server. ! STRUCTURE /QSRV_UCCC/ INTEGER*4 QSRV_UCCC$Q_SCSSYSTEMID(2) ! SCSSYSTEMID of this server INTEGER*4 QSRV_UCCC$Q_CONNECTIONS(2) ! Number of ICC connections made to a server INTEGER*4 QSRV_UCCC$Q_CONN_TIME(2) ! Time of last ICC connection INTEGER*4 QSRV_UCCC$Q_DC_MSGS(2) ! Number of device config messages INTEGER*4 QSRV_UCCC$Q_CM_MSGS(2) ! Number of connection management messages END STRUCTURE ! QSRV_UCCC PARAMETER QSRV_UCCC$C_LENGTH = '00000028'X PARAMETER QSRV_UCCC$K_LENGTH = '00000028'X ! ! The following structure defines the data for the QSRV$_USR_COUNTERS ! item code. It will receive QIO$CONFIGURE Server root data. ! STRUCTURE /QSRV_USRC/ INTEGER*4 QSRV_USRC$L_DEVICES ! Number of configured devices INTEGER*4 QSRV_USRC$L_CLIENTS ! Total number of configured servers INTEGER*4 QSRV_USRC$L_PK_DC_THREADS ! Peak device configuration threads INTEGER*4 QSRV_USRC$L_PK_CLT_THREAD ! Peak clients per thread INTEGER*4 QSRV_USRC$Q_SYSMGT_RQSTS(2) ! Total system management requests INTEGER*4 QSRV_USRC$Q_UBUF_WAITS(2) ! Total waits for Ubuf/Uapibuf END STRUCTURE ! QSRV_USRC PARAMETER QSRV_USRC$C_LENGTH = '00000020'X PARAMETER QSRV_USRC$K_LENGTH = '00000020'X ! ! The following structure defines the data for the QSRV$_USC_COUNTERS ! item code. It will receive QIO$CONFIGURE Server connection event data. ! ! QSRV_USRC$L_CLIENTS indicates the number of connections. ! ! These counters count all events since Userver was connected to the client. ! STRUCTURE /QSRV_USCC/ INTEGER*4 QSRV_USCC$Q_SCSSYSTEMID(2) ! SCSSYSTEMID of this client INTEGER*4 QSRV_USCC$Q_CONNECTIONS(2) ! Number of ICC connections made to a client INTEGER*4 QSRV_USCC$Q_CONN_TIME(2) ! Time of last ICC connection INTEGER*4 QSRV_USCC$Q_DC_MSGS(2) ! Number of device config messages INTEGER*4 QSRV_USCC$Q_CM_MSGS(2) ! Number of connection management messages END STRUCTURE ! QSRV_USCC PARAMETER QSRV_USCC$C_LENGTH = '00000028'X PARAMETER QSRV_USCC$K_LENGTH = '00000028'X ! ! QIOserver Counters Buffer. This defines the buffer header, ! and contains a union of all the various counter types included. ! ! ! The following structure defines the data for the common portion of ! each of the counter item codes and forms the root structure. ! PARAMETER QSRV_COUNTERS$M_RESERVED_FLAGS = '0000FFFF'X STRUCTURE /QSRV_CNTR_ROOT/ INTEGER*4 QSRV_COUNTERS$L_KC_VERS ! KClient version identifier INTEGER*4 QSRV_COUNTERS$L_KS_VERS ! KServer version identifier INTEGER*2 QSRV_COUNTERS$W_COUNTERS_TYPE ! Counter type -- value matches the system service it UNION MAP INTEGER*2 QSRV_COUNTERS$W_FLAGS END MAP MAP PARAMETER QSRV_COUNTERS$S_RESERVED_FLAGS = 16 PARAMETER QSRV_COUNTERS$V_RESERVED_FLAGS = 0 BYTE %FILL (2) ! No flags currently defined END MAP END UNION INTEGER*4 QSRV_COUNTERS$L_SIZE ! Size in bytes of counters structure returned from QIO$CONFI ! Size in bytes of counters structure returned from QIO$CONFI INTEGER*4 QSRV_COUNTERS$Q_TIME(2) ! System Time when the counters obtained END STRUCTURE ! QSRV_CNTR_ROOT PARAMETER QSRV_CNTR_ROOT$C_LENGTH = '00000018'X PARAMETER QSRV_CNTR_ROOT$K_LENGTH = '00000018'X ! Note changes to this structure will need to be matched in ! [LIB]QSMQEDEF PARAMETER QSRV_COUNTERS$K_KCROOT_LENGTH = '00000040'X PARAMETER QSRV_COUNTERS$K_KCCONN_LENGTH = '00000058'X PARAMETER QSRV_COUNTERS$K_KCDEV_LENGTH = '00000058'X PARAMETER QSRV_COUNTERS$K_KSROOT_LENGTH = '00000070'X PARAMETER QSRV_COUNTERS$K_KSCONN_LENGTH = '00000058'X PARAMETER QSRV_COUNTERS$K_KSDEV_LENGTH = '00000050'X PARAMETER QSRV_COUNTERS$K_UCROOT_LENGTH = '00000040'X PARAMETER QSRV_COUNTERS$K_UCCONN_LENGTH = '00000040'X PARAMETER QSRV_COUNTERS$K_USROOT_LENGTH = '00000038'X PARAMETER QSRV_COUNTERS$K_USCONN_LENGTH = '00000040'X STRUCTURE /QSRV_COUNTERS/ RECORD /QSRV_CNTR_ROOT/ QSRV_COUNTERS$R_QSRVCNTRROOT UNION MAP RECORD /QSRV_KCRC/ QSRV_COUNTERS$R_KCROOT ! Kclient root counters END MAP MAP RECORD /QSRV_KCCC/ QSRV_COUNTERS$R_KCCONN ! Kclient connection counters END MAP MAP RECORD /QSRV_KCDC/ QSRV_COUNTERS$R_KCDEV ! Kclient device counters END MAP MAP RECORD /QSRV_KSRC/ QSRV_COUNTERS$R_KSROOT ! Kserver root counters END MAP MAP RECORD /QSRV_KSCC/ QSRV_COUNTERS$R_KSCONN ! Kserver connection counters END MAP MAP RECORD /QSRV_KSDC/ QSRV_COUNTERS$R_KSDEV ! Kserver device counters END MAP MAP RECORD /QSRV_UCRC/ QSRV_COUNTERS$R_UCROOT ! Uclient root counters END MAP MAP RECORD /QSRV_UCCC/ QSRV_COUNTERS$R_UCCONN ! Uclient connection counters END MAP MAP RECORD /QSRV_USRC/ QSRV_COUNTERS$R_USROOT ! Userver root counters END MAP MAP RECORD /QSRV_USCC/ QSRV_COUNTERS$R_USCONN ! Userver connection counters END MAP END UNION END STRUCTURE ! QSRV_COUNTERS PARAMETER QSRV_COUNTERS$C_LENGTH = '00000070'X PARAMETER QSRV_COUNTERS$K_LENGTH = '00000070'X !DEC$ END OPTIONS