/********************************************************************************************************************************/ /* Created: 9-Mar-2021 22:28:06 by OpenVMS SDL EV3-3 */ /* Source: 09-MAR-2021 22:28:01 $1$DGA8085:[STARLET_H.SRC]STARDEFQZ.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $QSRVDEF IDENT X-9 ***/ #ifndef __QSRVDEF_LOADED #define __QSRVDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /* */ /* 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 */ /* */ #define QSRV$_CANCEL_OPERATION 1 /* Cancel a wildcard operation */ #define QSRV$_COMMIT_VOLATILE 2 /* Commit the volatile configuration to permanent */ #define QSRV$_SET_CLIENT 3 /* Set client configuration controls */ #define QSRV$_SET_DEVICE 4 /* Set device configuration controls */ #define QSRV$_SET_LOGGING 5 /* Set logging */ #define QSRV$_SET_SERVER 6 /* Set server configuration controls */ #define QSRV$_SET_SERVICE 7 /* Set client-server path service */ #define QSRV$_SHOW_CLIENT 8 /* Show client configuration and operational data */ #define QSRV$_SHOW_DEVICE 9 /* Show device configuration */ #define QSRV$_SHOW_LOGGING 10 /* Show logging */ #define QSRV$_SHOW_SERVER 11 /* Show server configuration and operational data */ #define QSRV$_SHOW_SERVICE 12 /* Show client-server path service */ #define QSRV$K_MIN_FUNC 1 /* Minimum QIOSERVER function code */ #define 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 */ /* */ #define QSRV$_ADD_FILTER 1 /* Add message event filter 3 tuple */ #define QSRV$_ADD_POOL 2 /* Add a block of memory for server I/O use */ #define QSRV$_AUTO_ADD_NPP 3 /* T/F auto add NPP for server I/O */ #define QSRV$_CLEAR_FILTERS 4 /* Clear all message event filters */ #define QSRV$_CLIENT_NAME 5 /* Client SCSNODE name - SYSGEN SCSNODE */ #define QSRV$_CLIENT_SCSSYSTEMID 6 /* Client SCS system id - SYSGEN SCSSYSTEMID */ #define QSRV$_DEFAULT_PRIORITY 7 /* The default path priority */ #define QSRV$_DELETE_POOL_BLOCK 8 /* Remove an allocated pool block */ #define QSRV$_DEVICE_NAME 9 /* Full device name */ #define QSRV$_FLAGS 10 /* System service control flags */ #define QSRV$_KCC_COUNTERS 11 /* KClient connection counter data */ #define QSRV$_KCD_COUNTERS 12 /* KClient device counter data */ #define QSRV$_KCR_COUNTERS 13 /* KClient root counter data */ #define QSRV$_KSC_COUNTERS 14 /* KServer connection counter data */ #define QSRV$_KSD_COUNTERS 15 /* KServer device counter data */ #define QSRV$_KSR_COUNTERS 16 /* KServer root counter data */ #define QSRV$_KSR_FUNCTION_HISTOGRAM 17 /* KServer function code histogram */ #define QSRV$_KSR_IO_BUFFER_HISTOGRAM 18 /* KServer histogram of I/O buffer sizes */ #define QSRV$_LIST_FILTERS 19 /* List all message event filters */ #define QSRV$_LIST_POOL_BLOCKS 20 /* Display server I/O pool blocks */ #define QSRV$_LIST_POOL_STATS 21 /* Display server I/O pool statistics */ #define QSRV$_LOG_MODE 22 /* Logging modes */ #define QSRV$_LOG_NODE 23 /* Logging SCSNODE name */ #define QSRV$_LOG_RESTART 24 /* Restart data logging */ #define QSRV$_NBR_ALTERNATE_PATHS 25 /* Number of client resident alternate paths */ #define QSRV$_NBR_CLIENTS 26 /* Number of clients seen by server */ #define QSRV$_NBR_CLIENT_THREADS 27 /* Number of client configure threads */ #define QSRV$_NBR_CREDITS 28 /* Number of SCS credits */ #define QSRV$_NBR_DEVICES 29 /* Number of devices seen and available */ #define QSRV$_NBR_FILTERS 30 /* Number of message event filters in list */ #define QSRV$_NBR_IO_FRAGMENTS 31 /* Max number of I/O fragments per transfer */ #define QSRV$_NBR_SERVERS 32 /* Number of servers seen by client */ #define QSRV$_NBR_SERVER_THREADS 33 /* Number of server configure threads */ #define QSRV$_PATH_STATE 34 /* Path state */ #define QSRV$_POOL_WAIT_TMO 35 /* Number of seconds KServer Pool hold */ #define QSRV$_QSLUN_AUTO 36 /* T/F KClient to get QSLUN automatically */ #define QSRV$_QSRV_COMPONENT 37 /* Component of the QIOserver sub-system */ #define QSRV$_REMOVE_FILTER 38 /* Remove message event filter 3 tuple */ #define QSRV$_SEARCH_NAME 39 /* Node or device name for wildcard search */ #define QSRV$_SEQUENTIAL_ORDER 40 /* T/F Order IRPs by sequence #, def - priority */ #define QSRV$_SERVER_NAME 41 /* Server SCS node name - SYSGEN SCSNODE */ #define QSRV$_SERVER_SCSSYSTEMID 42 /* Server SCS system id - SYSGEN SCSSYSTEMID */ #define QSRV$_SERVICE_STATE 43 /* Device serve/noserve state */ #define QSRV$_UCC_COUNTERS 44 /* UClient connection counter data */ #define QSRV$_UCR_COUNTERS 45 /* UClient root counter data */ #define QSRV$_USC_COUNTERS 46 /* UServer connection counter data */ #define QSRV$_USR_COUNTERS 47 /* UServer root counter data */ #define QSRV$K_MIN_ITEM 1 /* Minimum documented item code */ #define QSRV$K_MAX_ITEM 47 /* Maximum documented item code */ /* */ /* The following structure defines the bit masks for the QSRV$_FLAGS item code. */ /* */ #define QSRV$M_PERMANENT 0x1 #define QSRV$M_VOLATILE 0x2 #define QSRV$M_ADD 0x4 #define QSRV$M_CLIENT_CONFIG 0x10000 #define QSRV$M_SERVER_CONFIG 0x20000 #define QSRV$M_CLIENT_SEARCH 0x40000 #define QSRV$M_DEVICE_SEARCH 0x80000 #define QSRV$M_SERVER_SEARCH 0x100000 #define QSRV$M_SEARCH_DONE 0x200000 #define QSRV$M_CTX_ALLOCATED 0x400000 #ifdef __NEW_STARLET typedef union _qsrv_flags { unsigned int qsrv$l_flags; __struct { unsigned qsrv$v_permanent : 1; /* Applies to permanent database */ unsigned qsrv$v_volatile : 1; /* Applies to volatile database */ unsigned qsrv$v_add : 1; /* Allow volatile database structure creation */ /* The following flags are reserved for Compaq internal use. */ unsigned qsrv$v_filler1 : 13; unsigned qsrv$v_client_config : 1; /* Use the client configuration */ unsigned qsrv$v_server_config : 1; /* Use the server configuration */ unsigned qsrv$v_client_search : 1; /* Search name is for clients */ unsigned qsrv$v_device_search : 1; /* Search name is for devices */ unsigned qsrv$v_server_search : 1; /* Search name is for servers */ unsigned qsrv$v_search_done : 1; /* Search is done */ unsigned qsrv$v_ctx_allocated : 1; /* Allocated context block */ unsigned qsrv$v_filler2 : 9; } qsrv$r_flag_bits; } QSRV_FLAGS; #if !defined(__VAXC) #define qsrv$v_permanent qsrv$r_flag_bits.qsrv$v_permanent #define qsrv$v_volatile qsrv$r_flag_bits.qsrv$v_volatile #define qsrv$v_add qsrv$r_flag_bits.qsrv$v_add #define qsrv$v_client_config qsrv$r_flag_bits.qsrv$v_client_config #define qsrv$v_server_config qsrv$r_flag_bits.qsrv$v_server_config #define qsrv$v_client_search qsrv$r_flag_bits.qsrv$v_client_search #define qsrv$v_device_search qsrv$r_flag_bits.qsrv$v_device_search #define qsrv$v_server_search qsrv$r_flag_bits.qsrv$v_server_search #define qsrv$v_search_done qsrv$r_flag_bits.qsrv$v_search_done #define qsrv$v_ctx_allocated qsrv$r_flag_bits.qsrv$v_ctx_allocated #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef union _qsrv_flags { unsigned int qsrv$l_flags; __struct { unsigned qsrv$v_permanent : 1; /* Applies to permanent database */ unsigned qsrv$v_volatile : 1; /* Applies to volatile database */ unsigned qsrv$v_add : 1; /* Allow volatile database structure creation */ /* The following flags are reserved for Compaq internal use. */ unsigned qsrv$v_filler1 : 13; unsigned qsrv$v_client_config : 1; /* Use the client configuration */ unsigned qsrv$v_server_config : 1; /* Use the server configuration */ unsigned qsrv$v_client_search : 1; /* Search name is for clients */ unsigned qsrv$v_device_search : 1; /* Search name is for devices */ unsigned qsrv$v_server_search : 1; /* Search name is for servers */ unsigned qsrv$v_search_done : 1; /* Search is done */ unsigned qsrv$v_ctx_allocated : 1; /* Allocated context block */ unsigned qsrv$v_filler2 : 9; } qsrv$r_flag_bits; } qsrv_flags; #if !defined(__VAXC) #define qsrv$v_permanent qsrv$r_flag_bits.qsrv$v_permanent #define qsrv$v_volatile qsrv$r_flag_bits.qsrv$v_volatile #define qsrv$v_add qsrv$r_flag_bits.qsrv$v_add #define qsrv$v_client_config qsrv$r_flag_bits.qsrv$v_client_config #define qsrv$v_server_config qsrv$r_flag_bits.qsrv$v_server_config #define qsrv$v_client_search qsrv$r_flag_bits.qsrv$v_client_search #define qsrv$v_device_search qsrv$r_flag_bits.qsrv$v_device_search #define qsrv$v_server_search qsrv$r_flag_bits.qsrv$v_server_search #define qsrv$v_search_done qsrv$r_flag_bits.qsrv$v_search_done #define qsrv$v_ctx_allocated qsrv$r_flag_bits.qsrv$v_ctx_allocated #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define QSRV_FLAGS$C_LENGTH 4 #define QSRV_FLAGS$K_LENGTH 4 #define QSRV_FLAGS$S_QSRV_FLAGS 4 /* */ /* The following structure defines the bit masks for the QSRV$_LOG_MODE item code. */ /* */ #define QSRV_LOG$M_ACTIV_UCLOG 0x10000 #define QSRV_LOG$M_ACTIV_USLOG 0x20000 #define QSRV_LOG$M_ACTIV_KCLOG 0x40000 #define QSRV_LOG$M_ACTIV_KSLOG 0x80000 #define QSRV_LOG$M_ACTIV_MSG 0x100000 #define QSRV_LOG$M_ACTIV_EVT 0x200000 #define QSRV_LOG$M_ACTIV_CNT 0x400000 #define QSRV_LOG$M_ACTIV_HST 0x800000 #define QSRV_LOG$M_ACTIV_VBS 0x1000000 #ifdef __NEW_STARLET typedef union _qsrv_log { unsigned int qsrv_log$l_flags; __struct { unsigned qsrv_log$v_filler1 : 16; /* Reserved Compaq internal use */ unsigned qsrv_log$v_activ_uclog : 1; /* Turn on Uclient logging */ unsigned qsrv_log$v_activ_uslog : 1; /* Turn on Userver logging */ unsigned qsrv_log$v_activ_kclog : 1; /* Turn on Kclient logging */ unsigned qsrv_log$v_activ_kslog : 1; /* Turn on Kserver logging */ unsigned qsrv_log$v_activ_msg : 1; /* Turn on message logging */ unsigned qsrv_log$v_activ_evt : 1; /* Turn on event logging */ unsigned qsrv_log$v_activ_cnt : 1; /* Turn on counter logging */ unsigned qsrv_log$v_activ_hst : 1; /* Turn on histogram logging */ unsigned qsrv_log$v_activ_vbs : 1; /* Turn on QIO$CONFIGURE verbose */ unsigned qsrv_log$v_filler2 : 7; /* Reserved Compaq internal use */ } qsrv_log$r_bits; } QSRV_LOG; #if !defined(__VAXC) #define qsrv_log$v_filler1 qsrv_log$r_bits.qsrv_log$v_filler1 #define qsrv_log$v_activ_uclog qsrv_log$r_bits.qsrv_log$v_activ_uclog #define qsrv_log$v_activ_uslog qsrv_log$r_bits.qsrv_log$v_activ_uslog #define qsrv_log$v_activ_kclog qsrv_log$r_bits.qsrv_log$v_activ_kclog #define qsrv_log$v_activ_kslog qsrv_log$r_bits.qsrv_log$v_activ_kslog #define qsrv_log$v_activ_msg qsrv_log$r_bits.qsrv_log$v_activ_msg #define qsrv_log$v_activ_evt qsrv_log$r_bits.qsrv_log$v_activ_evt #define qsrv_log$v_activ_cnt qsrv_log$r_bits.qsrv_log$v_activ_cnt #define qsrv_log$v_activ_hst qsrv_log$r_bits.qsrv_log$v_activ_hst #define qsrv_log$v_activ_vbs qsrv_log$r_bits.qsrv_log$v_activ_vbs #define qsrv_log$v_filler2 qsrv_log$r_bits.qsrv_log$v_filler2 #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef union _qsrv_log { unsigned int qsrv_log$l_flags; __struct { unsigned qsrv_log$v_filler1 : 16; /* Reserved Compaq internal use */ unsigned qsrv_log$v_activ_uclog : 1; /* Turn on Uclient logging */ unsigned qsrv_log$v_activ_uslog : 1; /* Turn on Userver logging */ unsigned qsrv_log$v_activ_kclog : 1; /* Turn on Kclient logging */ unsigned qsrv_log$v_activ_kslog : 1; /* Turn on Kserver logging */ unsigned qsrv_log$v_activ_msg : 1; /* Turn on message logging */ unsigned qsrv_log$v_activ_evt : 1; /* Turn on event logging */ unsigned qsrv_log$v_activ_cnt : 1; /* Turn on counter logging */ unsigned qsrv_log$v_activ_hst : 1; /* Turn on histogram logging */ unsigned qsrv_log$v_activ_vbs : 1; /* Turn on QIO$CONFIGURE verbose */ unsigned qsrv_log$v_filler2 : 7; /* Reserved Compaq internal use */ } qsrv_log$r_bits; } qsrv_log; #if !defined(__VAXC) #define qsrv_log$v_filler1 qsrv_log$r_bits.qsrv_log$v_filler1 #define qsrv_log$v_activ_uclog qsrv_log$r_bits.qsrv_log$v_activ_uclog #define qsrv_log$v_activ_uslog qsrv_log$r_bits.qsrv_log$v_activ_uslog #define qsrv_log$v_activ_kclog qsrv_log$r_bits.qsrv_log$v_activ_kclog #define qsrv_log$v_activ_kslog qsrv_log$r_bits.qsrv_log$v_activ_kslog #define qsrv_log$v_activ_msg qsrv_log$r_bits.qsrv_log$v_activ_msg #define qsrv_log$v_activ_evt qsrv_log$r_bits.qsrv_log$v_activ_evt #define qsrv_log$v_activ_cnt qsrv_log$r_bits.qsrv_log$v_activ_cnt #define qsrv_log$v_activ_hst qsrv_log$r_bits.qsrv_log$v_activ_hst #define qsrv_log$v_activ_vbs qsrv_log$r_bits.qsrv_log$v_activ_vbs #define qsrv_log$v_filler2 qsrv_log$r_bits.qsrv_log$v_filler2 #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define QSRV_LOG$C_LENGTH 4 #define QSRV_LOG$K_LENGTH 4 #define QSRV_LOG$S_QSRV_LOG 4 /* */ /* Message logging type codes */ /* */ #define QSRV$K_MSG_SCS 1 /* SCS messages */ #define QSRV$K_MSG_QSP 2 /* QSP messages */ #define QSRV$K_MSG_ICC_CONN 3 /* ICC messages - connection management */ #define QSRV$K_MSG_ICC_DATA 4 /* ICC messages - data transfer */ #define QSRV$K_MIN_MSG 1 /* Minimum documented message filter type code */ #define 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. */ /* */ #ifdef __NEW_STARLET typedef struct _qsrv_filter { char qsrv_filter$t_node [16]; /* Message source node */ unsigned int qsrv_filter$l_type; /* Message source type */ char qsrv_filter$t_device [64]; /* Message source device */ } QSRV_FILTER; #else /* __OLD_STARLET */ typedef struct _qsrv_filter { char qsrv_filter$t_node [16]; /* Message source node */ unsigned int qsrv_filter$l_type; /* Message source type */ char qsrv_filter$t_device [64]; /* Message source device */ } qsrv_filter; #endif /* #ifdef __NEW_STARLET */ #define QSRV_FILTER$C_LENGTH 84 #define QSRV_FILTER$K_LENGTH 84 #define QSRV_FILTER$S_QSRV_FILTER 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. */ /* */ #ifdef __NEW_STARLET typedef struct _qsrv_histogram { unsigned int qsrv_histogram$l_bucket_count; /* Number of buckets - 2 */ char qsrv_histogram$b_fill_0_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned __int64 qsrv_histogram$q_bucket_base; /* Base value */ #pragma __nomember_alignment unsigned __int64 qsrv_histogram$q_bucket_range; /* Value range */ unsigned __int64 qsrv_histogram$q_data [66]; /* Histogram data */ } QSRV_HISTOGRAM; #else /* __OLD_STARLET */ typedef struct _qsrv_histogram { unsigned int qsrv_histogram$l_bucket_count; /* Number of buckets - 2 */ char qsrv_histogram$b_fill_0_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned int qsrv_histogram$q_bucket_base [2]; /* Base value */ #pragma __nomember_alignment unsigned int qsrv_histogram$q_bucket_range [2]; /* Value range */ unsigned int qsrv_histogram$q_data [66] [2]; /* Histogram data */ } qsrv_histogram; #endif /* #ifdef __NEW_STARLET */ #define QSRV_HISTOGRAM$C_UNDERFLOW 0 #define QSRV_HISTOGRAM$C_OVERFLOW 65 #define QSRV_HISTOGRAM$C_LENGTH 552 #define QSRV_HISTOGRAM$K_LENGTH 552 #define QSRV_HISTOGRAM$S_QSRV_HISTOGRAM 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. */ /* */ #ifdef __NEW_STARLET typedef struct _qsrv_iosb { unsigned int qsrv_iosb$l_pri_status; /* Primary request status */ unsigned int qsrv_iosb$l_sec_status; /* Secondary request status */ } QSRV_IOSB; #else /* __OLD_STARLET */ typedef struct _qsrv_iosb { unsigned int qsrv_iosb$l_pri_status; /* Primary request status */ unsigned int qsrv_iosb$l_sec_status; /* Secondary request status */ } qsrv_iosb; #endif /* #ifdef __NEW_STARLET */ #define QSRV_IOSB$C_LENGTH 8 #define QSRV_IOSB$K_LENGTH 8 #define QSRV_IOSB$S_QSRV_IOSB 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. */ /* */ #define QSRV_PATH$M_PRIORITY 0xFF #define QSRV_PATH$M_LOCAL2SERVER 0x4000000 #define QSRV_PATH$M_QVALID 0x8000000 #define QSRV_PATH$M_VALID 0x10000000 #define QSRV_PATH$M_SERVED 0x20000000 #define QSRV_PATH$M_EXCLUSIVE 0x40000000 #define QSRV_PATH$M_CURRENT 0x80000000 #define QSRV_PATH$M_FILLER2 0x3FFFFFF #define QSRV_PATH$M_USEABLE_PATH 0x3C000000 #define QSRV_PATH$M_FILLER3 0xC0000000 #ifdef __NEW_STARLET typedef union _qsrv_path { unsigned int qsrv_path$l_path_state; /* Path state */ __struct { unsigned qsrv_path$v_priority : 8; /* Path priority */ unsigned qsrv_path$v_filler1 : 18; unsigned qsrv_path$v_local2server : 1; /* Device is local to the server */ unsigned qsrv_path$v_qvalid : 1; /* Path QSLUN is valid */ unsigned qsrv_path$v_valid : 1; /* Path is valid */ unsigned qsrv_path$v_served : 1; /* Path is served */ unsigned qsrv_path$v_exclusive : 1; /* Path exclusivity */ unsigned qsrv_path$v_current : 1; /* This path is the current path */ } qsrv_path$r_path_state_bits; __struct { unsigned qsrv_path$v_filler2 : 26; unsigned qsrv_path$v_useable_path : 4; /* Mask for Qvalid,valid,and served */ unsigned qsrv_path$v_filler3 : 2; } qsrv_path$r_path_useable_bits; } QSRV_PATH; #if !defined(__VAXC) #define qsrv_path$v_priority qsrv_path$r_path_state_bits.qsrv_path$v_priority #define qsrv_path$v_local2server qsrv_path$r_path_state_bits.qsrv_path$v_local2server #define qsrv_path$v_qvalid qsrv_path$r_path_state_bits.qsrv_path$v_qvalid #define qsrv_path$v_valid qsrv_path$r_path_state_bits.qsrv_path$v_valid #define qsrv_path$v_served qsrv_path$r_path_state_bits.qsrv_path$v_served #define qsrv_path$v_exclusive qsrv_path$r_path_state_bits.qsrv_path$v_exclusive #define qsrv_path$v_current qsrv_path$r_path_state_bits.qsrv_path$v_current #define qsrv_path$v_filler2 qsrv_path$r_path_useable_bits.qsrv_path$v_filler2 #define qsrv_path$v_useable_path qsrv_path$r_path_useable_bits.qsrv_path$v_useable_path #define qsrv_path$v_filler3 qsrv_path$r_path_useable_bits.qsrv_path$v_filler3 #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef union _qsrv_path { unsigned int qsrv_path$l_path_state; /* Path state */ __struct { unsigned qsrv_path$v_priority : 8; /* Path priority */ unsigned qsrv_path$v_filler1 : 18; unsigned qsrv_path$v_local2server : 1; /* Device is local to the server */ unsigned qsrv_path$v_qvalid : 1; /* Path QSLUN is valid */ unsigned qsrv_path$v_valid : 1; /* Path is valid */ unsigned qsrv_path$v_served : 1; /* Path is served */ unsigned qsrv_path$v_exclusive : 1; /* Path exclusivity */ unsigned qsrv_path$v_current : 1; /* This path is the current path */ } qsrv_path$r_path_state_bits; __struct { unsigned qsrv_path$v_filler2 : 26; unsigned qsrv_path$v_useable_path : 4; /* Mask for Qvalid,valid,and served */ unsigned qsrv_path$v_filler3 : 2; } qsrv_path$r_path_useable_bits; } qsrv_path; #if !defined(__VAXC) #define qsrv_path$v_priority qsrv_path$r_path_state_bits.qsrv_path$v_priority #define qsrv_path$v_local2server qsrv_path$r_path_state_bits.qsrv_path$v_local2server #define qsrv_path$v_qvalid qsrv_path$r_path_state_bits.qsrv_path$v_qvalid #define qsrv_path$v_valid qsrv_path$r_path_state_bits.qsrv_path$v_valid #define qsrv_path$v_served qsrv_path$r_path_state_bits.qsrv_path$v_served #define qsrv_path$v_exclusive qsrv_path$r_path_state_bits.qsrv_path$v_exclusive #define qsrv_path$v_current qsrv_path$r_path_state_bits.qsrv_path$v_current #define qsrv_path$v_filler2 qsrv_path$r_path_useable_bits.qsrv_path$v_filler2 #define qsrv_path$v_useable_path qsrv_path$r_path_useable_bits.qsrv_path$v_useable_path #define qsrv_path$v_filler3 qsrv_path$r_path_useable_bits.qsrv_path$v_filler3 #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define QSRV_PATH$C_LENGTH 4 #define QSRV_PATH$K_LENGTH 4 #define QSRV_PATH$S_QSRV_PATH 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. */ /* */ #define QSRV_POOL$M_SIZE 0x7FFFFFFF #define QSRV_POOL$M_NPP 0x80000000 #ifdef __NEW_STARLET typedef union _qsrv_pool { unsigned int qsrv_pool$l_block_id; /* ID of pool block to delete */ __struct { /* Add to pool */ unsigned qsrv_pool$v_size : 31; /* Number of bytes */ unsigned qsrv_pool$v_npp : 1; /* From non-paged pool and */ } qsrv_pool$r_add_block_bits; /* from S2 space if not set */ unsigned int qsrv_pool$l_modify; /* Change to pool */ } QSRV_POOL; #if !defined(__VAXC) #define qsrv_pool$v_size qsrv_pool$r_add_block_bits.qsrv_pool$v_size #define qsrv_pool$v_npp qsrv_pool$r_add_block_bits.qsrv_pool$v_npp #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef union _qsrv_pool { unsigned int qsrv_pool$l_block_id; /* ID of pool block to delete */ __struct { /* Add to pool */ unsigned qsrv_pool$v_size : 31; /* Number of bytes */ unsigned qsrv_pool$v_npp : 1; /* From non-paged pool and */ } qsrv_pool$r_add_block_bits; /* from S2 space if not set */ unsigned int qsrv_pool$l_modify; /* Change to pool */ } qsrv_pool; #if !defined(__VAXC) #define qsrv_pool$v_size qsrv_pool$r_add_block_bits.qsrv_pool$v_size #define qsrv_pool$v_npp qsrv_pool$r_add_block_bits.qsrv_pool$v_npp #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define QSRV_POOL$C_LENGTH 4 #define QSRV_POOL$K_LENGTH 4 #define QSRV_POOL$S_QSRV_POOL 4 /* */ /* The following structure defines the data for the QSRV$_LIST_POOL_STATS */ /* item code. */ /* */ #ifdef __NEW_STARLET typedef struct _qsrv_plst { __struct { unsigned int qsrv_plst$l_tot_size; /* Total number of bytes for type */ unsigned int qsrv_plst$l_free_size; /* Amount of free space in bytes */ unsigned int qsrv_plst$l_nbr_blocks; /* Number of active additions */ unsigned int qsrv_plst$l_nbr_fragments; /* Total number of fragments */ unsigned int qsrv_plst$l_max_frag_size; /* Size in bytes of largest fragment */ unsigned int qsrv_plst$l_npp_add_reqs; /* Count of requests to add NPP */ unsigned int qsrv_plst$l_max_npp_add_req; /* Max NPP request size */ } qsrv_plst$r_pool_stat [2]; } QSRV_PLST; #if !defined(__VAXC) #define qsrv_plst$l_tot_size qsrv_plst$l_tot_size #define qsrv_plst$l_free_size qsrv_plst$l_free_size #define qsrv_plst$l_nbr_blocks qsrv_plst$l_nbr_blocks #define qsrv_plst$l_nbr_fragments qsrv_plst$l_nbr_fragments #define qsrv_plst$l_max_frag_size qsrv_plst$l_max_frag_size #define qsrv_plst$l_npp_add_reqs qsrv_plst$l_npp_add_reqs #define qsrv_plst$l_max_npp_add_req qsrv_plst$l_max_npp_add_req #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef struct _qsrv_plst { __struct { unsigned int qsrv_plst$l_tot_size; /* Total number of bytes for type */ unsigned int qsrv_plst$l_free_size; /* Amount of free space in bytes */ unsigned int qsrv_plst$l_nbr_blocks; /* Number of active additions */ unsigned int qsrv_plst$l_nbr_fragments; /* Total number of fragments */ unsigned int qsrv_plst$l_max_frag_size; /* Size in bytes of largest fragment */ unsigned int qsrv_plst$l_npp_add_reqs; /* Count of requests to add NPP */ unsigned int qsrv_plst$l_max_npp_add_req; /* Max NPP request size */ } qsrv_plst$r_pool_stat [2]; } qsrv_plst; #if !defined(__VAXC) #define qsrv_plst$l_tot_size qsrv_plst$l_tot_size #define qsrv_plst$l_free_size qsrv_plst$l_free_size #define qsrv_plst$l_nbr_blocks qsrv_plst$l_nbr_blocks #define qsrv_plst$l_nbr_fragments qsrv_plst$l_nbr_fragments #define qsrv_plst$l_max_frag_size qsrv_plst$l_max_frag_size #define qsrv_plst$l_npp_add_reqs qsrv_plst$l_npp_add_reqs #define qsrv_plst$l_max_npp_add_req qsrv_plst$l_max_npp_add_req #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* The following constants may be used to reference the pool statistics */ /* data defined previously. */ /* */ #define QSRV_PLST$K_S2 0 /* S2 Space pool */ #define QSRV_PLST$K_NPP 1 /* Non-paged pool */ #define QSRV_PLST$C_LENGTH 56 #define QSRV_PLST$K_LENGTH 56 #define QSRV_PLST$S_QSRV_PLST 56 /* */ /* The following structure defines the data for the QSRV$_LIST_POOL_BLOCKS */ /* item code. */ /* */ #define QSRV_PLBLK$M_SIZE 0x7FFFFFFF #define QSRV_PLBLK$M_NPP 0x80000000 #ifdef __NEW_STARLET typedef struct _qsrv_plblk { unsigned int qsrv_plblk$l_block_id; /* Block identifier */ __union { unsigned int qsrv_plblk$l_block_size_type; __struct { unsigned qsrv_plblk$v_size : 31; /* Number of bytes in block */ unsigned qsrv_plblk$v_npp : 1; /* From non-paged pool if set */ } qsrv_plblk$r_block_st_bits; } qsrv_plblk$r_block_desc; unsigned int qsrv_plblk$l_free_size; /* Amount of free space in bytes */ unsigned int qsrv_plblk$l_nbr_fragments; /* Total number of fragments */ unsigned int qsrv_plblk$l_max_frag_size; /* Size in bytes of largest fragment */ } QSRV_PLBLK; #if !defined(__VAXC) #define qsrv_plblk$l_block_size_type qsrv_plblk$r_block_desc.qsrv_plblk$l_block_size_type #define qsrv_plblk$v_size qsrv_plblk$r_block_desc.qsrv_plblk$r_block_st_bits.qsrv_plblk$v_size #define qsrv_plblk$v_npp qsrv_plblk$r_block_desc.qsrv_plblk$r_block_st_bits.qsrv_plblk$v_npp #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef struct _qsrv_plblk { unsigned int qsrv_plblk$l_block_id; /* Block identifier */ __union { unsigned int qsrv_plblk$l_block_size_type; __struct { unsigned qsrv_plblk$v_size : 31; /* Number of bytes in block */ unsigned qsrv_plblk$v_npp : 1; /* From non-paged pool if set */ } qsrv_plblk$r_block_st_bits; } qsrv_plblk$r_block_desc; unsigned int qsrv_plblk$l_free_size; /* Amount of free space in bytes */ unsigned int qsrv_plblk$l_nbr_fragments; /* Total number of fragments */ unsigned int qsrv_plblk$l_max_frag_size; /* Size in bytes of largest fragment */ } qsrv_plblk; #if !defined(__VAXC) #define qsrv_plblk$l_block_size_type qsrv_plblk$r_block_desc.qsrv_plblk$l_block_size_type #define qsrv_plblk$v_size qsrv_plblk$r_block_desc.qsrv_plblk$r_block_st_bits.qsrv_plblk$v_size #define qsrv_plblk$v_npp qsrv_plblk$r_block_desc.qsrv_plblk$r_block_st_bits.qsrv_plblk$v_npp #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define QSRV_PLBLK$C_LENGTH 20 #define QSRV_PLBLK$K_LENGTH 20 #define QSRV_PLBLK$S_QSRV_PLBLK 20 /* */ /* The following structure defines the data for the QSRV$_KCR_COUNTERS */ /* item code. It will receive QIOServer Client root data. */ /* */ #ifdef __NEW_STARLET typedef struct _qsrv_kcrc { unsigned int qsrv_kcrc$l_drivers; /* Number of drivers configured */ unsigned int qsrv_kcrc$l_devices; /* Number of devices configured */ unsigned int qsrv_kcrc$l_act_server_conns; /* Number of active server connections */ unsigned int qsrv_kcrc$l_tot_servers_seen; /* Total number of servers ever seen */ unsigned __int64 qsrv_kcrc$q_cycles_per_sec; /* Number of cycle ticks per second */ unsigned __int64 qsrv_kcrc$q_tot_sio_tics; /* Accumulated CPU time per simple I/O */ unsigned __int64 qsrv_kcrc$q_tot_sio; /* Total simple I/Os */ } QSRV_KCRC; #else /* __OLD_STARLET */ typedef struct _qsrv_kcrc { unsigned int qsrv_kcrc$l_drivers; /* Number of drivers configured */ unsigned int qsrv_kcrc$l_devices; /* Number of devices configured */ unsigned int qsrv_kcrc$l_act_server_conns; /* Number of active server connections */ unsigned int qsrv_kcrc$l_tot_servers_seen; /* Total number of servers ever seen */ unsigned int qsrv_kcrc$q_cycles_per_sec [2]; /* Number of cycle ticks per second */ unsigned int qsrv_kcrc$q_tot_sio_tics [2]; /* Accumulated CPU time per simple I/O */ unsigned int qsrv_kcrc$q_tot_sio [2]; /* Total simple I/Os */ } qsrv_kcrc; #endif /* #ifdef __NEW_STARLET */ #define QSRV_KCRC$C_LENGTH 40 #define QSRV_KCRC$K_LENGTH 40 #define QSRV_KCRC$S_QSRV_KCRC 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. */ /* */ #ifdef __NEW_STARLET typedef struct _qsrv_kccc { unsigned __int64 qsrv_kccc$q_scssystemid; /* SCSSYSTEMID of server for this connection */ unsigned __int64 qsrv_kccc$q_io_count; /* Overall I/O operations on this connection */ unsigned __int64 qsrv_kccc$q_complex_count; /* Total complex I/O operations on this connection */ unsigned __int64 qsrv_kccc$q_control_count; /* Total control I/O operations on this connection */ unsigned __int64 qsrv_kccc$q_nbr_conn; /* Number of times a connection has been made to this server */ unsigned __int64 qsrv_kccc$q_conn_time; /* Time of last connection */ unsigned __int64 qsrv_kccc$q_nbr_devices; /* Number of devices using this connection as current path */ unsigned int qsrv_kccc$l_ops_stalled; /* Total operations stalled in Kclient for this connection */ unsigned short int qsrv_kccc$w_credit_wait; /* SCS credit waits for this connection from the CDT */ unsigned short int qsrv_kccc$w_reserved_1; /* Reserved for alignment */ } QSRV_KCCC; #else /* __OLD_STARLET */ typedef struct _qsrv_kccc { unsigned int qsrv_kccc$q_scssystemid [2]; /* SCSSYSTEMID of server for this connection */ unsigned int qsrv_kccc$q_io_count [2]; /* Overall I/O operations on this connection */ unsigned int qsrv_kccc$q_complex_count [2]; /* Total complex I/O operations on this connection */ unsigned int qsrv_kccc$q_control_count [2]; /* Total control I/O operations on this connection */ unsigned int qsrv_kccc$q_nbr_conn [2]; /* Number of times a connection has been made to this server */ unsigned int qsrv_kccc$q_conn_time [2]; /* Time of last connection */ unsigned int qsrv_kccc$q_nbr_devices [2]; /* Number of devices using this connection as current path */ unsigned int qsrv_kccc$l_ops_stalled; /* Total operations stalled in Kclient for this connection */ unsigned short int qsrv_kccc$w_credit_wait; /* SCS credit waits for this connection from the CDT */ unsigned short int qsrv_kccc$w_reserved_1; /* Reserved for alignment */ } qsrv_kccc; #endif /* #ifdef __NEW_STARLET */ #define QSRV_KCCC$C_LENGTH 64 #define QSRV_KCCC$K_LENGTH 64 #define QSRV_KCCC$S_QSRV_KCCC 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. */ /* */ #ifdef __NEW_STARLET typedef struct _qsrv_kcdc { __union { char qsrv_kcdc$t_name [16]; /* Device name in ASCIC form */ __struct { __union { unsigned char qsrv_kcdc$b_name_len; __struct { unsigned char qsrv_kcdc$ib_name_len; /* Character count */ } qsrv_kcdc$r_fill_2_; } qsrv_kcdc$r_fill_1_; char qsrv_kcdc$t_name_str [15]; /* Character string */ } qsrv_kcdc$r_name_ascic; } qsrv_kcdc$r_name_overlay; unsigned __int64 qsrv_kcdc$q_io_count; /* Overall I/O operations to this device */ unsigned __int64 qsrv_kcdc$q_complex_count; /* Total complex I/O operations to this device */ unsigned __int64 qsrv_kcdc$q_control_count; /* Total control I/O operations to this device */ unsigned __int64 qsrv_kcdc$q_rt_time; /* Overall round-trip time */ unsigned int qsrv_kcdc$l_ops_in_server; /* Current operations in server for this device */ unsigned int qsrv_kcdc$l_ops_stalled; /* Total operations stalled in Kclient for this device */ unsigned int qsrv_kcdc$l_paths; /* Total paths configured for this device */ unsigned int qsrv_kcdc$l_reserved; } QSRV_KCDC; #if !defined(__VAXC) #define qsrv_kcdc$t_name qsrv_kcdc$r_name_overlay.qsrv_kcdc$t_name #define qsrv_kcdc$b_name_len qsrv_kcdc$r_name_overlay.qsrv_kcdc$r_name_ascic.qsrv_kcdc$r_fill_1_.qsrv_kcdc$b_name_len #define qsrv_kcdc$ib_name_len qsrv_kcdc$r_name_overlay.qsrv_kcdc$r_name_ascic.qsrv_kcdc$r_fill_1_.qsrv_kcdc$r_fill_2_.qsrv_kcdc$ib_\ name_len #define qsrv_kcdc$t_name_str qsrv_kcdc$r_name_overlay.qsrv_kcdc$r_name_ascic.qsrv_kcdc$t_name_str #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef struct _qsrv_kcdc { __union { char qsrv_kcdc$t_name [16]; /* Device name in ASCIC form */ __struct { __union { unsigned char qsrv_kcdc$b_name_len; __struct { unsigned char qsrv_kcdc$ib_name_len; /* Character count */ } qsrv_kcdc$r_fill_2_; } qsrv_kcdc$r_fill_1_; char qsrv_kcdc$t_name_str [15]; /* Character string */ } qsrv_kcdc$r_name_ascic; } qsrv_kcdc$r_name_overlay; unsigned int qsrv_kcdc$q_io_count [2]; /* Overall I/O operations to this device */ unsigned int qsrv_kcdc$q_complex_count [2]; /* Total complex I/O operations to this device */ unsigned int qsrv_kcdc$q_control_count [2]; /* Total control I/O operations to this device */ unsigned int qsrv_kcdc$q_rt_time [2]; /* Overall round-trip time */ unsigned int qsrv_kcdc$l_ops_in_server; /* Current operations in server for this device */ unsigned int qsrv_kcdc$l_ops_stalled; /* Total operations stalled in Kclient for this device */ unsigned int qsrv_kcdc$l_paths; /* Total paths configured for this device */ unsigned int qsrv_kcdc$l_reserved; } qsrv_kcdc; #if !defined(__VAXC) #define qsrv_kcdc$t_name qsrv_kcdc$r_name_overlay.qsrv_kcdc$t_name #define qsrv_kcdc$b_name_len qsrv_kcdc$r_name_overlay.qsrv_kcdc$r_name_ascic.qsrv_kcdc$r_fill_1_.qsrv_kcdc$b_name_len #define qsrv_kcdc$ib_name_len qsrv_kcdc$r_name_overlay.qsrv_kcdc$r_name_ascic.qsrv_kcdc$r_fill_1_.qsrv_kcdc$r_fill_2_.qsrv_kcdc$ib_\ name_len #define qsrv_kcdc$t_name_str qsrv_kcdc$r_name_overlay.qsrv_kcdc$r_name_ascic.qsrv_kcdc$t_name_str #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define QSRV_KCDC$C_LENGTH 64 #define QSRV_KCDC$K_LENGTH 64 #define QSRV_KCDC$S_QSRV_KCDC 64 /* */ /* The following structure defines the data for the QSRV$_KSR_COUNTERS */ /* item code. It will receive QIOServer Server root data. */ /* */ #ifdef __NEW_STARLET typedef struct _qsrv_ksrc { unsigned int qsrv_ksrc$l_devices; /* Number of devices configured */ unsigned int qsrv_ksrc$l_act_client_conns; /* Number of active connections with clients */ unsigned int qsrv_ksrc$l_tot_clients_seen; /* Total number of clients ever seen */ char qsrv_ksrc$b_fill_3_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned __int64 qsrv_ksrc$q_cycles_per_sec; /* Number of cycle ticks per second */ #pragma __nomember_alignment unsigned __int64 qsrv_ksrc$q_peak_buffer; /* Peak buffer pool usage in KB */ unsigned __int64 qsrv_ksrc$q_buffer_wait; /* Number of times I/Os waited for buffer space */ unsigned __int64 qsrv_ksrc$q_fragments; /* Number of I/O fragments performed */ unsigned __int64 qsrv_ksrc$q_frag_io; /* Number of I/O operations fragmented */ unsigned __int64 qsrv_ksrc$q_qsmqe_exp; /* Number of times Kserver expanded QSMQE list */ unsigned __int64 qsrv_ksrc$q_peak_qsmqe; /* Max number of QSMQEs ever allocated */ unsigned __int64 qsrv_ksrc$q_tot_sio_tics; /* Accumulated CPU time per simple I/O */ unsigned __int64 qsrv_ksrc$q_tot_sio; /* Total simple I/O operations */ } QSRV_KSRC; #else /* __OLD_STARLET */ typedef struct _qsrv_ksrc { unsigned int qsrv_ksrc$l_devices; /* Number of devices configured */ unsigned int qsrv_ksrc$l_act_client_conns; /* Number of active connections with clients */ unsigned int qsrv_ksrc$l_tot_clients_seen; /* Total number of clients ever seen */ char qsrv_ksrc$b_fill_3_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned int qsrv_ksrc$q_cycles_per_sec [2]; /* Number of cycle ticks per second */ #pragma __nomember_alignment unsigned int qsrv_ksrc$q_peak_buffer [2]; /* Peak buffer pool usage in KB */ unsigned int qsrv_ksrc$q_buffer_wait [2]; /* Number of times I/Os waited for buffer space */ unsigned int qsrv_ksrc$q_fragments [2]; /* Number of I/O fragments performed */ unsigned int qsrv_ksrc$q_frag_io [2]; /* Number of I/O operations fragmented */ unsigned int qsrv_ksrc$q_qsmqe_exp [2]; /* Number of times Kserver expanded QSMQE list */ unsigned int qsrv_ksrc$q_peak_qsmqe [2]; /* Max number of QSMQEs ever allocated */ unsigned int qsrv_ksrc$q_tot_sio_tics [2]; /* Accumulated CPU time per simple I/O */ unsigned int qsrv_ksrc$q_tot_sio [2]; /* Total simple I/O operations */ } qsrv_ksrc; #endif /* #ifdef __NEW_STARLET */ #define QSRV_KSRC$C_LENGTH 88 #define QSRV_KSRC$K_LENGTH 88 #define QSRV_KSRC$S_QSRV_KSRC 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. */ /* */ #ifdef __NEW_STARLET typedef struct _qsrv_kscc { unsigned __int64 qsrv_kscc$q_scssystemid; /* SCSSYSTEMID of client for this connection */ unsigned __int64 qsrv_kscc$q_io_count; /* Overall I/O operations on this connection */ unsigned __int64 qsrv_kscc$q_complex_count; /* Total complex I/O operations on this connection */ unsigned __int64 qsrv_kscc$q_control_count; /* Total control I/O operations on this connection */ unsigned __int64 qsrv_kscc$q_nbr_conn; /* Number of times a connection has been made to this client */ unsigned __int64 qsrv_kscc$q_conn_time; /* Time of last connection */ unsigned __int64 qsrv_kscc$q_bad_msgs; /* Number of bad messages received on this connection */ unsigned short int qsrv_kscc$w_credit_wait; /* SCS credit waits for this connection */ unsigned short int qsrv_kscc$w_bdlt_wait; /* SCS BDLT waits for this connection */ unsigned int qsrv_kscc$l_reserved; } QSRV_KSCC; #else /* __OLD_STARLET */ typedef struct _qsrv_kscc { unsigned int qsrv_kscc$q_scssystemid [2]; /* SCSSYSTEMID of client for this connection */ unsigned int qsrv_kscc$q_io_count [2]; /* Overall I/O operations on this connection */ unsigned int qsrv_kscc$q_complex_count [2]; /* Total complex I/O operations on this connection */ unsigned int qsrv_kscc$q_control_count [2]; /* Total control I/O operations on this connection */ unsigned int qsrv_kscc$q_nbr_conn [2]; /* Number of times a connection has been made to this client */ unsigned int qsrv_kscc$q_conn_time [2]; /* Time of last connection */ unsigned int qsrv_kscc$q_bad_msgs [2]; /* Number of bad messages received on this connection */ unsigned short int qsrv_kscc$w_credit_wait; /* SCS credit waits for this connection */ unsigned short int qsrv_kscc$w_bdlt_wait; /* SCS BDLT waits for this connection */ unsigned int qsrv_kscc$l_reserved; } qsrv_kscc; #endif /* #ifdef __NEW_STARLET */ #define QSRV_KSCC$C_LENGTH 64 #define QSRV_KSCC$K_LENGTH 64 #define QSRV_KSCC$S_QSRV_KSCC 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. */ /* */ #ifdef __NEW_STARLET typedef struct _qsrv_ksdc { __union { char qsrv_ksdc$t_name [16]; /* Device name in ASCIC form */ __struct { __union { unsigned char qsrv_ksdc$b_name_len; __struct { unsigned char qsrv_ksdc$ib_name_len; /* Character count */ } qsrv_ksdc$r_fill_5_; } qsrv_ksdc$r_fill_4_; char qsrv_ksdc$t_name_str [15]; /* Character string */ } qsrv_ksdc$r_name_ascic; } qsrv_ksdc$r_name_overlay; unsigned __int64 qsrv_ksdc$q_io_count; /* Overall I/O operations to this device */ unsigned __int64 qsrv_ksdc$q_complex_count; /* Total complex I/O operations to this device */ unsigned __int64 qsrv_ksdc$q_control_count; /* Total control I/O operations to this device */ unsigned __int64 qsrv_ksdc$q_sio_dev_time; /* Total time spent in the device for simple I/O operations */ unsigned int qsrv_ksdc$l_queue_length; /* Number of operations in the device now from Kserver */ unsigned int qsrv_ksdc$l_ops_stalled; /* Number of operations stalled */ } QSRV_KSDC; #if !defined(__VAXC) #define qsrv_ksdc$t_name qsrv_ksdc$r_name_overlay.qsrv_ksdc$t_name #define qsrv_ksdc$b_name_len qsrv_ksdc$r_name_overlay.qsrv_ksdc$r_name_ascic.qsrv_ksdc$r_fill_4_.qsrv_ksdc$b_name_len #define qsrv_ksdc$ib_name_len qsrv_ksdc$r_name_overlay.qsrv_ksdc$r_name_ascic.qsrv_ksdc$r_fill_4_.qsrv_ksdc$r_fill_5_.qsrv_ksdc$ib_\ name_len #define qsrv_ksdc$t_name_str qsrv_ksdc$r_name_overlay.qsrv_ksdc$r_name_ascic.qsrv_ksdc$t_name_str #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef struct _qsrv_ksdc { __union { char qsrv_ksdc$t_name [16]; /* Device name in ASCIC form */ __struct { __union { unsigned char qsrv_ksdc$b_name_len; __struct { unsigned char qsrv_ksdc$ib_name_len; /* Character count */ } qsrv_ksdc$r_fill_5_; } qsrv_ksdc$r_fill_4_; char qsrv_ksdc$t_name_str [15]; /* Character string */ } qsrv_ksdc$r_name_ascic; } qsrv_ksdc$r_name_overlay; unsigned int qsrv_ksdc$q_io_count [2]; /* Overall I/O operations to this device */ unsigned int qsrv_ksdc$q_complex_count [2]; /* Total complex I/O operations to this device */ unsigned int qsrv_ksdc$q_control_count [2]; /* Total control I/O operations to this device */ unsigned int qsrv_ksdc$q_sio_dev_time [2]; /* Total time spent in the device for simple I/O operations */ unsigned int qsrv_ksdc$l_queue_length; /* Number of operations in the device now from Kserver */ unsigned int qsrv_ksdc$l_ops_stalled; /* Number of operations stalled */ } qsrv_ksdc; #if !defined(__VAXC) #define qsrv_ksdc$t_name qsrv_ksdc$r_name_overlay.qsrv_ksdc$t_name #define qsrv_ksdc$b_name_len qsrv_ksdc$r_name_overlay.qsrv_ksdc$r_name_ascic.qsrv_ksdc$r_fill_4_.qsrv_ksdc$b_name_len #define qsrv_ksdc$ib_name_len qsrv_ksdc$r_name_overlay.qsrv_ksdc$r_name_ascic.qsrv_ksdc$r_fill_4_.qsrv_ksdc$r_fill_5_.qsrv_ksdc$ib_\ name_len #define qsrv_ksdc$t_name_str qsrv_ksdc$r_name_overlay.qsrv_ksdc$r_name_ascic.qsrv_ksdc$t_name_str #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define QSRV_KSDC$C_LENGTH 56 #define QSRV_KSDC$K_LENGTH 56 #define QSRV_KSDC$S_QSRV_KSDC 56 /* */ /* The following structure defines the data for the QSRV$_UCR_COUNTERS */ /* item code. It will receive QIO$CONFIGURE Client root data. */ /* */ #ifdef __NEW_STARLET typedef struct _qsrv_ucrc { unsigned int qsrv_ucrc$l_devices; /* Number of configured devices */ unsigned int qsrv_ucrc$l_paths; /* Total number of configured paths */ unsigned int qsrv_ucrc$l_servers; /* Total number of configured servers */ unsigned int qsrv_ucrc$l_pk_dc_threads; /* Peak device configuration threads */ unsigned int qsrv_ucrc$l_pk_srv_thread; /* Peak servers per thread */ char qsrv_ucrc$b_fill_6_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned __int64 qsrv_ucrc$q_sysmgt_rqsts; /* Total system management requests */ #pragma __nomember_alignment unsigned __int64 qsrv_ucrc$q_ubuf_waits; /* Total waits for Ubuf/Uapibuf */ } QSRV_UCRC; #else /* __OLD_STARLET */ typedef struct _qsrv_ucrc { unsigned int qsrv_ucrc$l_devices; /* Number of configured devices */ unsigned int qsrv_ucrc$l_paths; /* Total number of configured paths */ unsigned int qsrv_ucrc$l_servers; /* Total number of configured servers */ unsigned int qsrv_ucrc$l_pk_dc_threads; /* Peak device configuration threads */ unsigned int qsrv_ucrc$l_pk_srv_thread; /* Peak servers per thread */ char qsrv_ucrc$b_fill_6_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned int qsrv_ucrc$q_sysmgt_rqsts [2]; /* Total system management requests */ #pragma __nomember_alignment unsigned int qsrv_ucrc$q_ubuf_waits [2]; /* Total waits for Ubuf/Uapibuf */ } qsrv_ucrc; #endif /* #ifdef __NEW_STARLET */ #define QSRV_UCRC$C_LENGTH 40 #define QSRV_UCRC$K_LENGTH 40 #define QSRV_UCRC$S_QSRV_UCRC 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. */ /* */ #ifdef __NEW_STARLET typedef struct _qsrv_uccc { unsigned __int64 qsrv_uccc$q_scssystemid; /* SCSSYSTEMID of this server */ unsigned __int64 qsrv_uccc$q_connections; /* Number of ICC connections made to a server */ unsigned __int64 qsrv_uccc$q_conn_time; /* Time of last ICC connection */ unsigned __int64 qsrv_uccc$q_dc_msgs; /* Number of device config messages */ unsigned __int64 qsrv_uccc$q_cm_msgs; /* Number of connection management messages */ } QSRV_UCCC; #else /* __OLD_STARLET */ typedef struct _qsrv_uccc { unsigned int qsrv_uccc$q_scssystemid [2]; /* SCSSYSTEMID of this server */ unsigned int qsrv_uccc$q_connections [2]; /* Number of ICC connections made to a server */ unsigned int qsrv_uccc$q_conn_time [2]; /* Time of last ICC connection */ unsigned int qsrv_uccc$q_dc_msgs [2]; /* Number of device config messages */ unsigned int qsrv_uccc$q_cm_msgs [2]; /* Number of connection management messages */ } qsrv_uccc; #endif /* #ifdef __NEW_STARLET */ #define QSRV_UCCC$C_LENGTH 40 #define QSRV_UCCC$K_LENGTH 40 #define QSRV_UCCC$S_QSRV_UCCC 40 /* */ /* The following structure defines the data for the QSRV$_USR_COUNTERS */ /* item code. It will receive QIO$CONFIGURE Server root data. */ /* */ #ifdef __NEW_STARLET typedef struct _qsrv_usrc { unsigned int qsrv_usrc$l_devices; /* Number of configured devices */ unsigned int qsrv_usrc$l_clients; /* Total number of configured servers */ unsigned int qsrv_usrc$l_pk_dc_threads; /* Peak device configuration threads */ unsigned int qsrv_usrc$l_pk_clt_thread; /* Peak clients per thread */ unsigned __int64 qsrv_usrc$q_sysmgt_rqsts; /* Total system management requests */ unsigned __int64 qsrv_usrc$q_ubuf_waits; /* Total waits for Ubuf/Uapibuf */ } QSRV_USRC; #else /* __OLD_STARLET */ typedef struct _qsrv_usrc { unsigned int qsrv_usrc$l_devices; /* Number of configured devices */ unsigned int qsrv_usrc$l_clients; /* Total number of configured servers */ unsigned int qsrv_usrc$l_pk_dc_threads; /* Peak device configuration threads */ unsigned int qsrv_usrc$l_pk_clt_thread; /* Peak clients per thread */ unsigned int qsrv_usrc$q_sysmgt_rqsts [2]; /* Total system management requests */ unsigned int qsrv_usrc$q_ubuf_waits [2]; /* Total waits for Ubuf/Uapibuf */ } qsrv_usrc; #endif /* #ifdef __NEW_STARLET */ #define QSRV_USRC$C_LENGTH 32 #define QSRV_USRC$K_LENGTH 32 #define QSRV_USRC$S_QSRV_USRC 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. */ /* */ #ifdef __NEW_STARLET typedef struct _qsrv_uscc { unsigned __int64 qsrv_uscc$q_scssystemid; /* SCSSYSTEMID of this client */ unsigned __int64 qsrv_uscc$q_connections; /* Number of ICC connections made to a client */ unsigned __int64 qsrv_uscc$q_conn_time; /* Time of last ICC connection */ unsigned __int64 qsrv_uscc$q_dc_msgs; /* Number of device config messages */ unsigned __int64 qsrv_uscc$q_cm_msgs; /* Number of connection management messages */ } QSRV_USCC; #else /* __OLD_STARLET */ typedef struct _qsrv_uscc { unsigned int qsrv_uscc$q_scssystemid [2]; /* SCSSYSTEMID of this client */ unsigned int qsrv_uscc$q_connections [2]; /* Number of ICC connections made to a client */ unsigned int qsrv_uscc$q_conn_time [2]; /* Time of last ICC connection */ unsigned int qsrv_uscc$q_dc_msgs [2]; /* Number of device config messages */ unsigned int qsrv_uscc$q_cm_msgs [2]; /* Number of connection management messages */ } qsrv_uscc; #endif /* #ifdef __NEW_STARLET */ #define QSRV_USCC$C_LENGTH 40 #define QSRV_USCC$K_LENGTH 40 #define QSRV_USCC$S_QSRV_USCC 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. */ /* */ #define QSRV_COUNTERS$M_RESERVED_FLAGS 0xFFFF #ifdef __NEW_STARLET typedef struct _qsrv_cntr_root { unsigned int qsrv_counters$l_kc_vers; /* KClient version identifier */ unsigned int qsrv_counters$l_ks_vers; /* KServer version identifier */ unsigned short int qsrv_counters$w_counters_type; /* Counter type -- value matches the system service item code */ __union { /* Flags -- passed from QIO$CONFIGURE to requestor */ unsigned short int qsrv_counters$w_flags; __struct { unsigned qsrv_counters$v_reserved_flags : 16; /* No flags currently defined */ } qsrv_counters$r_flags_bits; } qsrv_counters$r_flags_overlay; unsigned int qsrv_counters$l_size; /* Size in bytes of counters structure returned from QIO$CONFIGURE */ unsigned __int64 qsrv_counters$q_time; /* System Time when the counters obtained */ } QSRV_CNTR_ROOT; #if !defined(__VAXC) #define qsrv_counters$w_flags qsrv_counters$r_flags_overlay.qsrv_counters$w_flags #define qsrv_counters$v_reserved_flags qsrv_counters$r_flags_overlay.qsrv_counters$r_flags_bits.qsrv_counters$v_reserved_flags #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef struct _qsrv_cntr_root { unsigned int qsrv_counters$l_kc_vers; /* KClient version identifier */ unsigned int qsrv_counters$l_ks_vers; /* KServer version identifier */ unsigned short int qsrv_counters$w_counters_type; /* Counter type -- value matches the system service item code */ __union { /* Flags -- passed from QIO$CONFIGURE to requestor */ unsigned short int qsrv_counters$w_flags; __struct { unsigned qsrv_counters$v_reserved_flags : 16; /* No flags currently defined */ } qsrv_counters$r_flags_bits; } qsrv_counters$r_flags_overlay; unsigned int qsrv_counters$l_size; /* Size in bytes of counters structure returned from QIO$CONFIGURE */ unsigned int qsrv_counters$q_time [2]; /* System Time when the counters obtained */ } qsrv_cntr_root; #if !defined(__VAXC) #define qsrv_counters$w_flags qsrv_counters$r_flags_overlay.qsrv_counters$w_flags #define qsrv_counters$v_reserved_flags qsrv_counters$r_flags_overlay.qsrv_counters$r_flags_bits.qsrv_counters$v_reserved_flags #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define QSRV_CNTR_ROOT$C_LENGTH 24 #define QSRV_CNTR_ROOT$K_LENGTH 24 #define QSRV_CNTR_ROOT$S_QSRV_CNTR_ROOT 24 /* Note changes to this structure will need to be matched in */ /* [LIB]QSMQEDEF */ #define QSRV_COUNTERS$K_KCROOT_LENGTH 64 #define QSRV_COUNTERS$K_KCCONN_LENGTH 88 #define QSRV_COUNTERS$K_KCDEV_LENGTH 88 #define QSRV_COUNTERS$K_KSROOT_LENGTH 112 #define QSRV_COUNTERS$K_KSCONN_LENGTH 88 #define QSRV_COUNTERS$K_KSDEV_LENGTH 80 #define QSRV_COUNTERS$K_UCROOT_LENGTH 64 #define QSRV_COUNTERS$K_UCCONN_LENGTH 64 #define QSRV_COUNTERS$K_USROOT_LENGTH 56 #define QSRV_COUNTERS$K_USCONN_LENGTH 64 #ifdef __NEW_STARLET typedef struct _qsrv_counters { QSRV_CNTR_ROOT qsrv_counters$r_qsrvcntrroot; __union { /* Counters union */ QSRV_KCRC qsrv_counters$r_kcroot; /* Kclient root counters */ QSRV_KCCC qsrv_counters$r_kcconn; /* Kclient connection counters */ QSRV_KCDC qsrv_counters$r_kcdev; /* Kclient device counters */ QSRV_KSRC qsrv_counters$r_ksroot; /* Kserver root counters */ QSRV_KSCC qsrv_counters$r_ksconn; /* Kserver connection counters */ QSRV_KSDC qsrv_counters$r_ksdev; /* Kserver device counters */ QSRV_UCRC qsrv_counters$r_ucroot; /* Uclient root counters */ QSRV_UCCC qsrv_counters$r_ucconn; /* Uclient connection counters */ QSRV_USRC qsrv_counters$r_usroot; /* Userver root counters */ QSRV_USCC qsrv_counters$r_usconn; /* Userver connection counters */ } qsrv_counters$r_counters_body; } QSRV_COUNTERS; #if !defined(__VAXC) #define qsrv_counters$r_kcroot qsrv_counters$r_counters_body.qsrv_counters$r_kcroot #define qsrv_counters$r_kcconn qsrv_counters$r_counters_body.qsrv_counters$r_kcconn #define qsrv_counters$r_kcdev qsrv_counters$r_counters_body.qsrv_counters$r_kcdev #define qsrv_counters$r_ksroot qsrv_counters$r_counters_body.qsrv_counters$r_ksroot #define qsrv_counters$r_ksconn qsrv_counters$r_counters_body.qsrv_counters$r_ksconn #define qsrv_counters$r_ksdev qsrv_counters$r_counters_body.qsrv_counters$r_ksdev #define qsrv_counters$r_ucroot qsrv_counters$r_counters_body.qsrv_counters$r_ucroot #define qsrv_counters$r_ucconn qsrv_counters$r_counters_body.qsrv_counters$r_ucconn #define qsrv_counters$r_usroot qsrv_counters$r_counters_body.qsrv_counters$r_usroot #define qsrv_counters$r_usconn qsrv_counters$r_counters_body.qsrv_counters$r_usconn #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef struct _qsrv_counters { qsrv_cntr_root qsrv_counters$r_qsrvcntrroot; __union { /* Counters union */ qsrv_kcrc qsrv_counters$r_kcroot; /* Kclient root counters */ qsrv_kccc qsrv_counters$r_kcconn; /* Kclient connection counters */ qsrv_kcdc qsrv_counters$r_kcdev; /* Kclient device counters */ qsrv_ksrc qsrv_counters$r_ksroot; /* Kserver root counters */ qsrv_kscc qsrv_counters$r_ksconn; /* Kserver connection counters */ qsrv_ksdc qsrv_counters$r_ksdev; /* Kserver device counters */ qsrv_ucrc qsrv_counters$r_ucroot; /* Uclient root counters */ qsrv_uccc qsrv_counters$r_ucconn; /* Uclient connection counters */ qsrv_usrc qsrv_counters$r_usroot; /* Userver root counters */ qsrv_uscc qsrv_counters$r_usconn; /* Userver connection counters */ } qsrv_counters$r_counters_body; } qsrv_counters; #if !defined(__VAXC) #define qsrv_counters$r_kcroot qsrv_counters$r_counters_body.qsrv_counters$r_kcroot #define qsrv_counters$r_kcconn qsrv_counters$r_counters_body.qsrv_counters$r_kcconn #define qsrv_counters$r_kcdev qsrv_counters$r_counters_body.qsrv_counters$r_kcdev #define qsrv_counters$r_ksroot qsrv_counters$r_counters_body.qsrv_counters$r_ksroot #define qsrv_counters$r_ksconn qsrv_counters$r_counters_body.qsrv_counters$r_ksconn #define qsrv_counters$r_ksdev qsrv_counters$r_counters_body.qsrv_counters$r_ksdev #define qsrv_counters$r_ucroot qsrv_counters$r_counters_body.qsrv_counters$r_ucroot #define qsrv_counters$r_ucconn qsrv_counters$r_counters_body.qsrv_counters$r_ucconn #define qsrv_counters$r_usroot qsrv_counters$r_counters_body.qsrv_counters$r_usroot #define qsrv_counters$r_usconn qsrv_counters$r_counters_body.qsrv_counters$r_usconn #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define QSRV_COUNTERS$C_LENGTH 112 #define QSRV_COUNTERS$K_LENGTH 112 #define QSRV_COUNTERS$S_QSRV_COUNTERS 112 #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __QSRVDEF_LOADED */