! *** PREDECLARED TYPES %IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$HFLOAT_AXP_DECLARED ) = 0 %THEN RECORD BASIC$HFLOAT_AXP LONG FILL ( 4 ) END RECORD %LET %BASIC$HFLOAT_AXP_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOAT_AXP_CMPLX_DCL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX_AXP BASIC$HFLOAT_AXP REAL_PART BASIC$HFLOAT_AXP IMAGINARY_PART END RECORD %LET %BASIC$H_FLOAT_AXP_CMPLX_DCL = 1 %END %IF ! ! 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 ! DECLARE LONG CONSTANT QSRV$_CANCEL_OPERATION = 1 ! Cancel a wildcard operation DECLARE LONG CONSTANT QSRV$_COMMIT_VOLATILE = 2 ! Commit the volatile configuration to permanent DECLARE LONG CONSTANT QSRV$_SET_CLIENT = 3 ! Set client configuration controls DECLARE LONG CONSTANT QSRV$_SET_DEVICE = 4 ! Set device configuration controls DECLARE LONG CONSTANT QSRV$_SET_LOGGING = 5 ! Set logging DECLARE LONG CONSTANT QSRV$_SET_SERVER = 6 ! Set server configuration controls DECLARE LONG CONSTANT QSRV$_SET_SERVICE = 7 ! Set client-server path service DECLARE LONG CONSTANT QSRV$_SHOW_CLIENT = 8 ! Show client configuration and operational data DECLARE LONG CONSTANT QSRV$_SHOW_DEVICE = 9 ! Show device configuration DECLARE LONG CONSTANT QSRV$_SHOW_LOGGING = 10 ! Show logging DECLARE LONG CONSTANT QSRV$_SHOW_SERVER = 11 ! Show server configuration and operational data DECLARE LONG CONSTANT QSRV$_SHOW_SERVICE = 12 ! Show client-server path service DECLARE LONG CONSTANT QSRV$K_MIN_FUNC = 1 ! Minimum QIOSERVER function code DECLARE LONG CONSTANT QSRV$K_MAX_FUNC = 12 ! Maximum QIOSERVER function code ! ! Item codes ! ! Item codes are limited to a byte value for use with the context block validation ! DECLARE LONG CONSTANT QSRV$_ADD_FILTER = 1 ! Add message event filter 3 tuple DECLARE LONG CONSTANT QSRV$_ADD_POOL = 2 ! Add a block of memory for server I/O use DECLARE LONG CONSTANT QSRV$_AUTO_ADD_NPP = 3 ! T/F auto add NPP for server I/O DECLARE LONG CONSTANT QSRV$_CLEAR_FILTERS = 4 ! Clear all message event filters DECLARE LONG CONSTANT QSRV$_CLIENT_NAME = 5 ! Client SCSNODE name - SYSGEN SCSNODE DECLARE LONG CONSTANT QSRV$_CLIENT_SCSSYSTEMID = 6 ! Client SCS system id - SYSGEN SCSSYSTEMID DECLARE LONG CONSTANT QSRV$_DEFAULT_PRIORITY = 7 ! The default path priority DECLARE LONG CONSTANT QSRV$_DELETE_POOL_BLOCK = 8 ! Remove an allocated pool block DECLARE LONG CONSTANT QSRV$_DEVICE_NAME = 9 ! Full device name DECLARE LONG CONSTANT QSRV$_FLAGS = 10 ! System service control flags DECLARE LONG CONSTANT QSRV$_KCC_COUNTERS = 11 ! KClient connection counter data DECLARE LONG CONSTANT QSRV$_KCD_COUNTERS = 12 ! KClient device counter data DECLARE LONG CONSTANT QSRV$_KCR_COUNTERS = 13 ! KClient root counter data DECLARE LONG CONSTANT QSRV$_KSC_COUNTERS = 14 ! KServer connection counter data DECLARE LONG CONSTANT QSRV$_KSD_COUNTERS = 15 ! KServer device counter data DECLARE LONG CONSTANT QSRV$_KSR_COUNTERS = 16 ! KServer root counter data DECLARE LONG CONSTANT QSRV$_KSR_FUNCTION_HISTOGRAM = 17 ! KServer function code histogram DECLARE LONG CONSTANT QSRV$_KSR_IO_BUFFER_HISTOGRAM = 18 ! KServer histogram of I/O buffer sizes DECLARE LONG CONSTANT QSRV$_LIST_FILTERS = 19 ! List all message event filters DECLARE LONG CONSTANT QSRV$_LIST_POOL_BLOCKS = 20 ! Display server I/O pool blocks DECLARE LONG CONSTANT QSRV$_LIST_POOL_STATS = 21 ! Display server I/O pool statistics DECLARE LONG CONSTANT QSRV$_LOG_MODE = 22 ! Logging modes DECLARE LONG CONSTANT QSRV$_LOG_NODE = 23 ! Logging SCSNODE name DECLARE LONG CONSTANT QSRV$_LOG_RESTART = 24 ! Restart data logging DECLARE LONG CONSTANT QSRV$_NBR_ALTERNATE_PATHS = 25 ! Number of client resident alternate paths DECLARE LONG CONSTANT QSRV$_NBR_CLIENTS = 26 ! Number of clients seen by server DECLARE LONG CONSTANT QSRV$_NBR_CLIENT_THREADS = 27 ! Number of client configure threads DECLARE LONG CONSTANT QSRV$_NBR_CREDITS = 28 ! Number of SCS credits DECLARE LONG CONSTANT QSRV$_NBR_DEVICES = 29 ! Number of devices seen and available DECLARE LONG CONSTANT QSRV$_NBR_FILTERS = 30 ! Number of message event filters in list DECLARE LONG CONSTANT QSRV$_NBR_IO_FRAGMENTS = 31 ! Max number of I/O fragments per transfer DECLARE LONG CONSTANT QSRV$_NBR_SERVERS = 32 ! Number of servers seen by client DECLARE LONG CONSTANT QSRV$_NBR_SERVER_THREADS = 33 ! Number of server configure threads DECLARE LONG CONSTANT QSRV$_PATH_STATE = 34 ! Path state DECLARE LONG CONSTANT QSRV$_POOL_WAIT_TMO = 35 ! Number of seconds KServer Pool hold DECLARE LONG CONSTANT QSRV$_QSLUN_AUTO = 36 ! T/F KClient to get QSLUN automatically DECLARE LONG CONSTANT QSRV$_QSRV_COMPONENT = 37 ! Component of the QIOserver sub-system DECLARE LONG CONSTANT QSRV$_REMOVE_FILTER = 38 ! Remove message event filter 3 tuple DECLARE LONG CONSTANT QSRV$_SEARCH_NAME = 39 ! Node or device name for wildcard search DECLARE LONG CONSTANT QSRV$_SEQUENTIAL_ORDER = 40 ! T/F Order IRPs by sequence #, def - priority DECLARE LONG CONSTANT QSRV$_SERVER_NAME = 41 ! Server SCS node name - SYSGEN SCSNODE DECLARE LONG CONSTANT QSRV$_SERVER_SCSSYSTEMID = 42 ! Server SCS system id - SYSGEN SCSSYSTEMID DECLARE LONG CONSTANT QSRV$_SERVICE_STATE = 43 ! Device serve/noserve state DECLARE LONG CONSTANT QSRV$_UCC_COUNTERS = 44 ! UClient connection counter data DECLARE LONG CONSTANT QSRV$_UCR_COUNTERS = 45 ! UClient root counter data DECLARE LONG CONSTANT QSRV$_USC_COUNTERS = 46 ! UServer connection counter data DECLARE LONG CONSTANT QSRV$_USR_COUNTERS = 47 ! UServer root counter data DECLARE LONG CONSTANT QSRV$K_MIN_ITEM = 1 ! Minimum documented item code DECLARE LONG CONSTANT QSRV$K_MAX_ITEM = 47 ! Maximum documented item code ! ! The following structure defines the bit masks for the QSRV$_FLAGS item code. ! DECLARE LONG CONSTANT QSRV$M_PERMANENT = x'00000001' DECLARE LONG CONSTANT QSRV$M_VOLATILE = x'00000002' DECLARE LONG CONSTANT QSRV$M_ADD = x'00000004' DECLARE LONG CONSTANT QSRV$M_CLIENT_CONFIG = x'00010000' DECLARE LONG CONSTANT QSRV$M_SERVER_CONFIG = x'00020000' DECLARE LONG CONSTANT QSRV$M_CLIENT_SEARCH = x'00040000' DECLARE LONG CONSTANT QSRV$M_DEVICE_SEARCH = x'00080000' DECLARE LONG CONSTANT QSRV$M_SERVER_SEARCH = x'00100000' DECLARE LONG CONSTANT QSRV$M_SEARCH_DONE = x'00200000' DECLARE LONG CONSTANT QSRV$M_CTX_ALLOCATED = x'00400000' DECLARE LONG CONSTANT QSRV$S_QSRV_FLAGS = 4 record QSRV_FLAGS variant case LONG QSRV$L_FLAGS case group QSRV$R_FLAG_BITS ! Applies to permanent database ! Applies to volatile database ! Allow volatile database structure creation ! The following flags are reserved for Compaq internal use. ! Use the client configuration ! Use the server configuration ! Search name is for clients ! Search name is for devices ! Search name is for servers ! Search is done ! Allocated context block LONG PERMANENT_bits ! COMMENT ADDED BY SDL - PERMANENT_bits contains bits PERMANENT through filler2 end group QSRV$R_FLAG_BITS end variant end record QSRV_FLAGS DECLARE LONG CONSTANT QSRV_FLAGS$C_LENGTH = 4 DECLARE LONG CONSTANT QSRV_FLAGS$K_LENGTH = 4 ! ! The following structure defines the bit masks for the QSRV$_LOG_MODE item code. ! DECLARE LONG CONSTANT QSRV_LOG$M_ACTIV_UCLOG = x'00010000' DECLARE LONG CONSTANT QSRV_LOG$M_ACTIV_USLOG = x'00020000' DECLARE LONG CONSTANT QSRV_LOG$M_ACTIV_KCLOG = x'00040000' DECLARE LONG CONSTANT QSRV_LOG$M_ACTIV_KSLOG = x'00080000' DECLARE LONG CONSTANT QSRV_LOG$M_ACTIV_MSG = x'00100000' DECLARE LONG CONSTANT QSRV_LOG$M_ACTIV_EVT = x'00200000' DECLARE LONG CONSTANT QSRV_LOG$M_ACTIV_CNT = x'00400000' DECLARE LONG CONSTANT QSRV_LOG$M_ACTIV_HST = x'00800000' DECLARE LONG CONSTANT QSRV_LOG$M_ACTIV_VBS = x'01000000' DECLARE LONG CONSTANT QSRV_LOG$S_QSRV_LOG = 4 record QSRV_LOG variant case LONG QSRV_LOG$L_FLAGS case group QSRV_LOG$R_BITS ! Reserved Compaq internal use ! Turn on Uclient logging ! Turn on Userver logging ! Turn on Kclient logging ! Turn on Kserver logging ! Turn on message logging ! Turn on event logging ! Turn on counter logging ! Turn on histogram logging ! Turn on QIO$CONFIGURE verbose ! Reserved Compaq internal use LONG filler1_bits ! COMMENT ADDED BY SDL - filler1_bits contains bits filler1 through filler2 end group QSRV_LOG$R_BITS end variant end record QSRV_LOG DECLARE LONG CONSTANT QSRV_LOG$C_LENGTH = 4 DECLARE LONG CONSTANT QSRV_LOG$K_LENGTH = 4 ! ! Message logging type codes ! DECLARE LONG CONSTANT QSRV$K_MSG_SCS = 1 ! SCS messages DECLARE LONG CONSTANT QSRV$K_MSG_QSP = 2 ! QSP messages DECLARE LONG CONSTANT QSRV$K_MSG_ICC_CONN = 3 ! ICC messages - connection management DECLARE LONG CONSTANT QSRV$K_MSG_ICC_DATA = 4 ! ICC messages - data transfer DECLARE LONG CONSTANT QSRV$K_MIN_MSG = 1 ! Minimum documented message filter type code DECLARE LONG CONSTANT QSRV$K_MAX_MSG = 4 ! 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. ! DECLARE LONG CONSTANT QSRV_FILTER$S_QSRV_FILTER = 84 record QSRV_FILTER STRING QSRV_FILTER$t_node = 16 ! Message source node LONG QSRV_FILTER$l_type ! Message source type STRING QSRV_FILTER$t_device = 64 ! Message source device end record QSRV_FILTER DECLARE LONG CONSTANT QSRV_FILTER$C_LENGTH = 84 DECLARE LONG CONSTANT QSRV_FILTER$K_LENGTH = 84 ! ! 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. ! DECLARE LONG CONSTANT QSRV_HISTOGRAM$S_QSRV_HISTOGRAM = 552 record QSRV_HISTOGRAM LONG QSRV_HISTOGRAM$L_BUCKET_COUNT ! Number of buckets - 2 BYTE QSRV_HISTOGRAM$B_FILL_0_ ( 3 ) BASIC$QUADWORD QSRV_HISTOGRAM$Q_BUCKET_BASE ! Base value BASIC$QUADWORD QSRV_HISTOGRAM$Q_BUCKET_RANGE ! Value range BASIC$QUADWORD QSRV_HISTOGRAM$Q_DATA ( 1 to 66 ) ! Histogram data end record QSRV_HISTOGRAM DECLARE LONG CONSTANT QSRV_HISTOGRAM$C_UNDERFLOW = 0 DECLARE LONG CONSTANT QSRV_HISTOGRAM$C_OVERFLOW = 65 DECLARE LONG CONSTANT QSRV_HISTOGRAM$C_LENGTH = 552 DECLARE LONG CONSTANT QSRV_HISTOGRAM$K_LENGTH = 552 ! ! 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. ! DECLARE LONG CONSTANT QSRV_IOSB$S_QSRV_IOSB = 8 record QSRV_IOSB LONG QSRV_IOSB$l_pri_status ! Primary request status LONG QSRV_IOSB$l_sec_status ! Secondary request status end record QSRV_IOSB DECLARE LONG CONSTANT QSRV_IOSB$C_LENGTH = 8 DECLARE LONG CONSTANT QSRV_IOSB$K_LENGTH = 8 ! ! 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. ! DECLARE LONG CONSTANT QSRV_PATH$M_PRIORITY = x'000000FF' DECLARE LONG CONSTANT QSRV_PATH$M_LOCAL2SERVER = x'04000000' DECLARE LONG CONSTANT QSRV_PATH$M_QVALID = x'08000000' DECLARE LONG CONSTANT QSRV_PATH$M_VALID = x'10000000' DECLARE LONG CONSTANT QSRV_PATH$M_SERVED = x'20000000' DECLARE LONG CONSTANT QSRV_PATH$M_EXCLUSIVE = x'40000000' DECLARE LONG CONSTANT QSRV_PATH$M_CURRENT = x'80000000' DECLARE LONG CONSTANT QSRV_PATH$m_filler2 = x'03FFFFFF' DECLARE LONG CONSTANT QSRV_PATH$M_USEABLE_PATH = x'3C000000' DECLARE LONG CONSTANT QSRV_PATH$m_filler3 = x'C0000000' DECLARE LONG CONSTANT QSRV_PATH$S_QSRV_PATH = 4 record QSRV_PATH variant case LONG QSRV_PATH$L_PATH_STATE ! Path state case group QSRV_PATH$R_PATH_STATE_BITS ! Path priority ! Device is local to the server ! Path QSLUN is valid ! Path is valid ! Path is served ! Path exclusivity ! This path is the current path LONG PRIORITY_bits ! COMMENT ADDED BY SDL - PRIORITY_bits contains bits PRIORITY through CURRENT end group QSRV_PATH$R_PATH_STATE_BITS case group QSRV_PATH$R_PATH_USEABLE_BITS ! Mask for Qvalid,valid,and served LONG filler2_bits ! COMMENT ADDED BY SDL - filler2_bits contains bits filler2 through filler3 end group QSRV_PATH$R_PATH_USEABLE_BITS end variant end record QSRV_PATH DECLARE LONG CONSTANT QSRV_PATH$C_LENGTH = 4 DECLARE LONG CONSTANT QSRV_PATH$K_LENGTH = 4 ! ! The following structure defines bit masks for the QSRV$_ADD_POOL item ! code and a structure for the QSRV$_DELETE_POOL_BLOCK item code. ! DECLARE LONG CONSTANT QSRV_POOL$M_SIZE = x'7FFFFFFF' DECLARE LONG CONSTANT QSRV_POOL$M_NPP = x'80000000' DECLARE LONG CONSTANT QSRV_POOL$S_QSRV_POOL = 4 record QSRV_POOL variant case LONG QSRV_POOL$L_BLOCK_ID ! ID of pool block to delete case group QSRV_POOL$R_ADD_BLOCK_BITS ! Add to pool ! Number of bytes ! From non-paged pool and LONG SIZE_bits ! COMMENT ADDED BY SDL - SIZE_bits contains bits SIZE through NPP end group QSRV_POOL$R_ADD_BLOCK_BITS ! from S2 space if not set case LONG QSRV_POOL$L_MODIFY ! Change to pool end variant end record QSRV_POOL DECLARE LONG CONSTANT QSRV_POOL$C_LENGTH = 4 DECLARE LONG CONSTANT QSRV_POOL$K_LENGTH = 4 ! ! The following structure defines the data for the QSRV$_LIST_POOL_STATS ! item code. ! DECLARE LONG CONSTANT QSRV_PLST$S_QSRV_PLST = 56 record QSRV_PLST group QSRV_PLST$R_POOL_STAT ( 1 to 2 ) LONG QSRV_PLST$L_TOT_SIZE ! Total number of bytes for type LONG QSRV_PLST$L_FREE_SIZE ! Amount of free space in bytes LONG QSRV_PLST$L_NBR_BLOCKs ! Number of active additions LONG QSRV_PLST$L_NBR_FRAGMENTS ! Total number of fragments LONG QSRV_PLST$L_MAX_FRAG_SIZE ! Size in bytes of largest fragment LONG QSRV_PLST$L_NPP_ADD_REQS ! Count of requests to add NPP LONG QSRV_PLST$L_MAX_NPP_ADD_REQ ! Max NPP request size end group QSRV_PLST$R_POOL_STAT end record QSRV_PLST ! ! The following constants may be used to reference the pool statistics ! data defined previously. ! DECLARE LONG CONSTANT QSRV_PLST$K_S2 = 0 ! S2 Space pool DECLARE LONG CONSTANT QSRV_PLST$K_NPP = 1 ! Non-paged pool DECLARE LONG CONSTANT QSRV_PLST$C_LENGTH = 56 DECLARE LONG CONSTANT QSRV_PLST$K_LENGTH = 56 ! ! The following structure defines the data for the QSRV$_LIST_POOL_BLOCKS ! item code. ! DECLARE LONG CONSTANT QSRV_PLBLK$M_SIZE = x'7FFFFFFF' DECLARE LONG CONSTANT QSRV_PLBLK$M_NPP = x'80000000' DECLARE LONG CONSTANT QSRV_PLBLK$S_QSRV_PLBLK = 20 record QSRV_PLBLK LONG QSRV_PLBLK$L_BLOCK_ID ! Block identifier group QSRV_PLBLK$R_BLOCK_DESC variant case LONG QSRV_PLBLK$L_BLOCK_SIZE_TYPE case group QSRV_PLBLK$R_BLOCK_ST_BITS ! Number of bytes in block ! From non-paged pool if set LONG SIZE_bits ! COMMENT ADDED BY SDL - SIZE_bits contains bits SIZE through NPP end group QSRV_PLBLK$R_BLOCK_ST_BITS end variant end group QSRV_PLBLK$R_BLOCK_DESC LONG QSRV_PLBLK$L_FREE_SIZE ! Amount of free space in bytes LONG QSRV_PLBLK$L_NBR_FRAGMENTS ! Total number of fragments LONG QSRV_PLBLK$L_MAX_FRAG_SIZE ! Size in bytes of largest fragment end record QSRV_PLBLK DECLARE LONG CONSTANT QSRV_PLBLK$C_LENGTH = 20 DECLARE LONG CONSTANT QSRV_PLBLK$K_LENGTH = 20 ! ! The following structure defines the data for the QSRV$_KCR_COUNTERS ! item code. It will receive QIOServer Client root data. ! DECLARE LONG CONSTANT QSRV_KCRC$S_QSRV_KCRC = 40 record QSRV_KCRC LONG QSRV_KCRC$L_DRIVERS ! Number of drivers configured LONG QSRV_KCRC$L_DEVICES ! Number of devices configured LONG QSRV_KCRC$L_ACT_SERVER_CONNS ! Number of active server connections LONG QSRV_KCRC$L_TOT_SERVERS_SEEN ! Total number of servers ever seen BASIC$QUADWORD QSRV_KCRC$Q_CYCLES_PER_SEC ! Number of cycle ticks per second BASIC$QUADWORD QSRV_KCRC$Q_TOT_SIO_TICS ! Accumulated CPU time per simple I/O BASIC$QUADWORD QSRV_KCRC$Q_TOT_SIO ! Total simple I/Os end record QSRV_KCRC DECLARE LONG CONSTANT QSRV_KCRC$C_LENGTH = 40 DECLARE LONG CONSTANT QSRV_KCRC$K_LENGTH = 40 ! ! 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. ! DECLARE LONG CONSTANT QSRV_KCCC$S_QSRV_KCCC = 64 record QSRV_KCCC BASIC$QUADWORD QSRV_KCCC$Q_SCSSYSTEMID ! SCSSYSTEMID of server for this connection BASIC$QUADWORD QSRV_KCCC$Q_IO_COUNT ! Overall I/O operations on this connection BASIC$QUADWORD QSRV_KCCC$Q_COMPLEX_COUNT ! Total complex I/O operations on this connection BASIC$QUADWORD QSRV_KCCC$Q_CONTROL_COUNT ! Total control I/O operations on this connection BASIC$QUADWORD QSRV_KCCC$Q_NBR_CONN ! Number of times a connection has been made to this server BASIC$QUADWORD QSRV_KCCC$Q_CONN_TIME ! Time of last connection BASIC$QUADWORD QSRV_KCCC$Q_NBR_DEVICES ! Number of devices using this connection as current path LONG QSRV_KCCC$L_OPS_STALLED ! Total operations stalled in Kclient for this connection WORD QSRV_KCCC$W_CREDIT_WAIT ! SCS credit waits for this connection from the CDT WORD QSRV_KCCC$w_reserved_1 ! Reserved for alignment end record QSRV_KCCC DECLARE LONG CONSTANT QSRV_KCCC$C_LENGTH = 64 DECLARE LONG CONSTANT QSRV_KCCC$K_LENGTH = 64 ! ! 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. ! DECLARE LONG CONSTANT QSRV_KCDC$S_QSRV_KCDC = 64 record QSRV_KCDC group QSRV_KCDC$r_name_overlay variant case STRING QSRV_KCDC$T_NAME = 16 ! Device name in ASCIC form case group QSRV_KCDC$r_name_ascic group QSRV_KCDC$R_FILL_1_ variant case BYTE QSRV_KCDC$B_NAME_LEN case group QSRV_KCDC$R_FILL_2_ BYTE QSRV_KCDC$IB_NAME_LEN ! Character count end group QSRV_KCDC$R_FILL_2_ end variant end group QSRV_KCDC$R_FILL_1_ STRING QSRV_KCDC$T_NAME_STR = 15 ! Character string end group QSRV_KCDC$r_name_ascic end variant end group QSRV_KCDC$r_name_overlay BASIC$QUADWORD QSRV_KCDC$Q_IO_COUNT ! Overall I/O operations to this device BASIC$QUADWORD QSRV_KCDC$Q_COMPLEX_COUNT ! Total complex I/O operations to this device BASIC$QUADWORD QSRV_KCDC$Q_CONTROL_COUNT ! Total control I/O operations to this device BASIC$QUADWORD QSRV_KCDC$Q_RT_TIME ! Overall round-trip time LONG QSRV_KCDC$L_OPS_IN_SERVER ! Current operations in server for this device LONG QSRV_KCDC$L_OPS_STALLED ! Total operations stalled in Kclient for this device LONG QSRV_KCDC$L_PATHS ! Total paths configured for this device LONG QSRV_KCDC$l_reserved end record QSRV_KCDC DECLARE LONG CONSTANT QSRV_KCDC$C_LENGTH = 64 DECLARE LONG CONSTANT QSRV_KCDC$K_LENGTH = 64 ! ! The following structure defines the data for the QSRV$_KSR_COUNTERS ! item code. It will receive QIOServer Server root data. ! DECLARE LONG CONSTANT QSRV_KSRC$S_QSRV_KSRC = 88 record QSRV_KSRC LONG QSRV_KSRC$L_DEVICES ! Number of devices configured LONG QSRV_KSRC$L_ACT_CLIENT_CONNS ! Number of active connections with clients LONG QSRV_KSRC$L_TOT_CLIENTS_SEEN ! Total number of clients ever seen BYTE QSRV_KSRC$B_FILL_3_ ( 3 ) BASIC$QUADWORD QSRV_KSRC$Q_CYCLES_PER_SEC ! Number of cycle ticks per second BASIC$QUADWORD QSRV_KSRC$Q_PEAK_BUFFER ! Peak buffer pool usage in KB BASIC$QUADWORD QSRV_KSRC$Q_BUFFER_WAIT ! Number of times I/Os waited for buffer space BASIC$QUADWORD QSRV_KSRC$Q_FRAGMENTS ! Number of I/O fragments performed BASIC$QUADWORD QSRV_KSRC$Q_FRAG_IO ! Number of I/O operations fragmented BASIC$QUADWORD QSRV_KSRC$Q_QSMQE_EXP ! Number of times Kserver expanded QSMQE list BASIC$QUADWORD QSRV_KSRC$Q_PEAK_QSMQE ! Max number of QSMQEs ever allocated BASIC$QUADWORD QSRV_KSRC$Q_TOT_SIO_TICS ! Accumulated CPU time per simple I/O BASIC$QUADWORD QSRV_KSRC$Q_TOT_SIO ! Total simple I/O operations end record QSRV_KSRC DECLARE LONG CONSTANT QSRV_KSRC$C_LENGTH = 88 DECLARE LONG CONSTANT QSRV_KSRC$K_LENGTH = 88 ! ! 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. ! DECLARE LONG CONSTANT QSRV_KSCC$S_QSRV_KSCC = 64 record QSRV_KSCC BASIC$QUADWORD QSRV_KSCC$Q_SCSSYSTEMID ! SCSSYSTEMID of client for this connection BASIC$QUADWORD QSRV_KSCC$Q_IO_COUNT ! Overall I/O operations on this connection BASIC$QUADWORD QSRV_KSCC$Q_COMPLEX_COUNT ! Total complex I/O operations on this connection BASIC$QUADWORD QSRV_KSCC$Q_CONTROL_COUNT ! Total control I/O operations on this connection BASIC$QUADWORD QSRV_KSCC$Q_NBR_CONN ! Number of times a connection has been made to this client BASIC$QUADWORD QSRV_KSCC$Q_CONN_TIME ! Time of last connection BASIC$QUADWORD QSRV_KSCC$Q_BAD_MSGS ! Number of bad messages received on this connection WORD QSRV_KSCC$W_CREDIT_WAIT ! SCS credit waits for this connection WORD QSRV_KSCC$W_BDLT_WAIT ! SCS BDLT waits for this connection LONG QSRV_KSCC$l_reserved end record QSRV_KSCC DECLARE LONG CONSTANT QSRV_KSCC$C_LENGTH = 64 DECLARE LONG CONSTANT QSRV_KSCC$K_LENGTH = 64 ! ! 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. ! DECLARE LONG CONSTANT QSRV_KSDC$S_QSRV_KSDC = 56 record QSRV_KSDC group QSRV_KSDC$r_name_overlay variant case STRING QSRV_KSDC$T_NAME = 16 ! Device name in ASCIC form case group QSRV_KSDC$r_name_ascic group QSRV_KSDC$R_FILL_4_ variant case BYTE QSRV_KSDC$B_NAME_LEN case group QSRV_KSDC$R_FILL_5_ BYTE QSRV_KSDC$IB_NAME_LEN ! Character count end group QSRV_KSDC$R_FILL_5_ end variant end group QSRV_KSDC$R_FILL_4_ STRING QSRV_KSDC$T_NAME_STR = 15 ! Character string end group QSRV_KSDC$r_name_ascic end variant end group QSRV_KSDC$r_name_overlay BASIC$QUADWORD QSRV_KSDC$Q_IO_COUNT ! Overall I/O operations to this device BASIC$QUADWORD QSRV_KSDC$Q_COMPLEX_COUNT ! Total complex I/O operations to this device BASIC$QUADWORD QSRV_KSDC$Q_CONTROL_COUNT ! Total control I/O operations to this device BASIC$QUADWORD QSRV_KSDC$Q_SIO_DEV_TIME ! Total time spent in the device for simple I/O operations LONG QSRV_KSDC$L_QUEUE_LENGTH ! Number of operations in the device now from Kserver LONG QSRV_KSDC$L_OPS_STALLED ! Number of operations stalled end record QSRV_KSDC DECLARE LONG CONSTANT QSRV_KSDC$C_LENGTH = 56 DECLARE LONG CONSTANT QSRV_KSDC$K_LENGTH = 56 ! ! The following structure defines the data for the QSRV$_UCR_COUNTERS ! item code. It will receive QIO$CONFIGURE Client root data. ! DECLARE LONG CONSTANT QSRV_UCRC$S_QSRV_UCRC = 40 record QSRV_UCRC LONG QSRV_UCRC$L_DEVICES ! Number of configured devices LONG QSRV_UCRC$L_PATHS ! Total number of configured paths LONG QSRV_UCRC$L_SERVERS ! Total number of configured servers LONG QSRV_UCRC$L_PK_DC_THREADS ! Peak device configuration threads LONG QSRV_UCRC$L_PK_SRV_THREAD ! Peak servers per thread BYTE QSRV_UCRC$B_FILL_6_ ( 3 ) BASIC$QUADWORD QSRV_UCRC$Q_SYSMGT_RQSTS ! Total system management requests BASIC$QUADWORD QSRV_UCRC$Q_UBUF_WAITS ! Total waits for Ubuf/Uapibuf end record QSRV_UCRC DECLARE LONG CONSTANT QSRV_UCRC$C_LENGTH = 40 DECLARE LONG CONSTANT QSRV_UCRC$K_LENGTH = 40 ! ! 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. ! DECLARE LONG CONSTANT QSRV_UCCC$S_QSRV_UCCC = 40 record QSRV_UCCC BASIC$QUADWORD QSRV_UCCC$Q_SCSSYSTEMID ! SCSSYSTEMID of this server BASIC$QUADWORD QSRV_UCCC$Q_CONNECTIONS ! Number of ICC connections made to a server BASIC$QUADWORD QSRV_UCCC$Q_CONN_TIME ! Time of last ICC connection BASIC$QUADWORD QSRV_UCCC$Q_DC_MSGS ! Number of device config messages BASIC$QUADWORD QSRV_UCCC$Q_CM_MSGS ! Number of connection management messages end record QSRV_UCCC DECLARE LONG CONSTANT QSRV_UCCC$C_LENGTH = 40 DECLARE LONG CONSTANT QSRV_UCCC$K_LENGTH = 40 ! ! The following structure defines the data for the QSRV$_USR_COUNTERS ! item code. It will receive QIO$CONFIGURE Server root data. ! DECLARE LONG CONSTANT QSRV_USRC$S_QSRV_USRC = 32 record QSRV_USRC LONG QSRV_USRC$L_DEVICES ! Number of configured devices LONG QSRV_USRC$L_CLIENTS ! Total number of configured servers LONG QSRV_USRC$L_PK_DC_THREADS ! Peak device configuration threads LONG QSRV_USRC$L_PK_CLT_THREAD ! Peak clients per thread BASIC$QUADWORD QSRV_USRC$Q_SYSMGT_RQSTS ! Total system management requests BASIC$QUADWORD QSRV_USRC$Q_UBUF_WAITS ! Total waits for Ubuf/Uapibuf end record QSRV_USRC DECLARE LONG CONSTANT QSRV_USRC$C_LENGTH = 32 DECLARE LONG CONSTANT QSRV_USRC$K_LENGTH = 32 ! ! 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. ! DECLARE LONG CONSTANT QSRV_USCC$S_QSRV_USCC = 40 record QSRV_USCC BASIC$QUADWORD QSRV_USCC$Q_SCSSYSTEMID ! SCSSYSTEMID of this client BASIC$QUADWORD QSRV_USCC$Q_CONNECTIONS ! Number of ICC connections made to a client BASIC$QUADWORD QSRV_USCC$Q_CONN_TIME ! Time of last ICC connection BASIC$QUADWORD QSRV_USCC$Q_DC_MSGS ! Number of device config messages BASIC$QUADWORD QSRV_USCC$Q_CM_MSGS ! Number of connection management messages end record QSRV_USCC DECLARE LONG CONSTANT QSRV_USCC$C_LENGTH = 40 DECLARE LONG CONSTANT QSRV_USCC$K_LENGTH = 40 ! ! 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. ! DECLARE LONG CONSTANT QSRV_COUNTERS$M_RESERVED_FLAGS = x'0000FFFF' DECLARE LONG CONSTANT QSRV_COUNTERS$S_QSRV_CNTR_ROOT = 24 record QSRV_CNTR_ROOT LONG QSRV_COUNTERS$L_KC_VERS ! KClient version identifier LONG QSRV_COUNTERS$L_KS_VERS ! KServer version identifier WORD QSRV_COUNTERS$W_COUNTERS_TYPE ! Counter type -- value matches the system service item code group QSRV_COUNTERS$R_FLAGS_OVERLAY ! Flags -- passed from QIO$CONFIGURE to requestor variant case WORD QSRV_COUNTERS$W_FLAGS case group QSRV_COUNTERS$R_FLAGS_BITS ! No flags currently defined WORD RESERVED_FLAGS_bits ! COMMENT ADDED BY SDL - RESERVED_FLAGS_bits contains bits RESERVED_FLAGS through & ! RESERVED_FLAGS end group QSRV_COUNTERS$R_FLAGS_BITS end variant end group QSRV_COUNTERS$R_FLAGS_OVERLAY LONG QSRV_COUNTERS$L_SIZE ! Size in bytes of counters structure returned from QIO$CONFIGURE BASIC$QUADWORD QSRV_COUNTERS$Q_TIME ! System Time when the counters obtained end record QSRV_CNTR_ROOT DECLARE LONG CONSTANT QSRV_CNTR_ROOT$C_LENGTH = 24 DECLARE LONG CONSTANT QSRV_CNTR_ROOT$K_LENGTH = 24 ! Note changes to this structure will need to be matched in ! [LIB]QSMQEDEF DECLARE LONG CONSTANT QSRV_COUNTERS$K_KCROOT_LENGTH = 64 DECLARE LONG CONSTANT QSRV_COUNTERS$K_KCCONN_LENGTH = 88 DECLARE LONG CONSTANT QSRV_COUNTERS$K_KCDEV_LENGTH = 88 DECLARE LONG CONSTANT QSRV_COUNTERS$K_KSROOT_LENGTH = 112 DECLARE LONG CONSTANT QSRV_COUNTERS$K_KSCONN_LENGTH = 88 DECLARE LONG CONSTANT QSRV_COUNTERS$K_KSDEV_LENGTH = 80 DECLARE LONG CONSTANT QSRV_COUNTERS$K_UCROOT_LENGTH = 64 DECLARE LONG CONSTANT QSRV_COUNTERS$K_UCCONN_LENGTH = 64 DECLARE LONG CONSTANT QSRV_COUNTERS$K_USROOT_LENGTH = 56 DECLARE LONG CONSTANT QSRV_COUNTERS$K_USCONN_LENGTH = 64 DECLARE LONG CONSTANT QSRV_COUNTERS$S_QSRV_COUNTERS = 112 record QSRV_COUNTERS QSRV_CNTR_ROOT QSRV_COUNTERS$R_QSRVCNTRROOT group QSRV_COUNTERS$R_COUNTERS_BODY ! Counters union variant case QSRV_KCRC QSRV_COUNTERS$R_KCROOT ! Kclient root counters case QSRV_KCCC QSRV_COUNTERS$R_KCCONN ! Kclient connection counters case QSRV_KCDC QSRV_COUNTERS$R_KCDEV ! Kclient device counters case QSRV_KSRC QSRV_COUNTERS$R_KSROOT ! Kserver root counters case QSRV_KSCC QSRV_COUNTERS$R_KSCONN ! Kserver connection counters case QSRV_KSDC QSRV_COUNTERS$R_KSDEV ! Kserver device counters case QSRV_UCRC QSRV_COUNTERS$R_UCROOT ! Uclient root counters case QSRV_UCCC QSRV_COUNTERS$R_UCCONN ! Uclient connection counters case QSRV_USRC QSRV_COUNTERS$R_USROOT ! Userver root counters case QSRV_USCC QSRV_COUNTERS$R_USCONN ! Userver connection counters end variant end group QSRV_COUNTERS$R_COUNTERS_BODY end record QSRV_COUNTERS DECLARE LONG CONSTANT QSRV_COUNTERS$C_LENGTH = 112 DECLARE LONG CONSTANT QSRV_COUNTERS$K_LENGTH = 112