1*4882a593Smuzhiyun /*=========================================================================== 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun M P Q M U X. H 4*4882a593Smuzhiyun DESCRIPTION: 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun This file provides support for QMUX. 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun INITIALIZATION AND SEQUENCING REQUIREMENTS: 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun Copyright (C) 2011 by Qualcomm Technologies, Incorporated. All Rights Reserved. 11*4882a593Smuzhiyun ===========================================================================*/ 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #ifndef MPQMUX_H 14*4882a593Smuzhiyun #define MPQMUX_H 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun #include "MPQMI.h" 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun #pragma pack(push, 1) 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun #define QMIWDS_SET_EVENT_REPORT_REQ 0x0001 21*4882a593Smuzhiyun #define QMIWDS_SET_EVENT_REPORT_RESP 0x0001 22*4882a593Smuzhiyun #define QMIWDS_EVENT_REPORT_IND 0x0001 23*4882a593Smuzhiyun #define QMIWDS_START_NETWORK_INTERFACE_REQ 0x0020 24*4882a593Smuzhiyun #define QMIWDS_START_NETWORK_INTERFACE_RESP 0x0020 25*4882a593Smuzhiyun #define QMIWDS_STOP_NETWORK_INTERFACE_REQ 0x0021 26*4882a593Smuzhiyun #define QMIWDS_STOP_NETWORK_INTERFACE_RESP 0x0021 27*4882a593Smuzhiyun #define QMIWDS_GET_PKT_SRVC_STATUS_REQ 0x0022 28*4882a593Smuzhiyun #define QMIWDS_GET_PKT_SRVC_STATUS_RESP 0x0022 29*4882a593Smuzhiyun #define QMIWDS_GET_PKT_SRVC_STATUS_IND 0x0022 30*4882a593Smuzhiyun #define QMIWDS_GET_CURRENT_CHANNEL_RATE_REQ 0x0023 31*4882a593Smuzhiyun #define QMIWDS_GET_CURRENT_CHANNEL_RATE_RESP 0x0023 32*4882a593Smuzhiyun #define QMIWDS_GET_PKT_STATISTICS_REQ 0x0024 33*4882a593Smuzhiyun #define QMIWDS_GET_PKT_STATISTICS_RESP 0x0024 34*4882a593Smuzhiyun #define QMIWDS_MODIFY_PROFILE_SETTINGS_REQ 0x0028 35*4882a593Smuzhiyun #define QMIWDS_MODIFY_PROFILE_SETTINGS_RESP 0x0028 36*4882a593Smuzhiyun #define QMIWDS_GET_PROFILE_SETTINGS_REQ 0x002B 37*4882a593Smuzhiyun #define QMIWDS_GET_PROFILE_SETTINGS_RESP 0x002B 38*4882a593Smuzhiyun #define QMIWDS_GET_DEFAULT_SETTINGS_REQ 0x002C 39*4882a593Smuzhiyun #define QMIWDS_GET_DEFAULT_SETTINGS_RESP 0x002C 40*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_REQ 0x002D 41*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_RESP 0x002D 42*4882a593Smuzhiyun #define QMIWDS_GET_MIP_MODE_REQ 0x002F 43*4882a593Smuzhiyun #define QMIWDS_GET_MIP_MODE_RESP 0x002F 44*4882a593Smuzhiyun #define QMIWDS_GET_DATA_BEARER_REQ 0x0037 45*4882a593Smuzhiyun #define QMIWDS_GET_DATA_BEARER_RESP 0x0037 46*4882a593Smuzhiyun #define QMIWDS_DUN_CALL_INFO_REQ 0x0038 47*4882a593Smuzhiyun #define QMIWDS_DUN_CALL_INFO_RESP 0x0038 48*4882a593Smuzhiyun #define QMIWDS_DUN_CALL_INFO_IND 0x0038 49*4882a593Smuzhiyun #define QMIWDS_SET_CLIENT_IP_FAMILY_PREF_REQ 0x004D 50*4882a593Smuzhiyun #define QMIWDS_SET_CLIENT_IP_FAMILY_PREF_RESP 0x004D 51*4882a593Smuzhiyun #define QMIWDS_SET_AUTO_CONNECT_REQ 0x0051 52*4882a593Smuzhiyun #define QMIWDS_SET_AUTO_CONNECT_RESP 0x0051 53*4882a593Smuzhiyun #define QMIWDS_BIND_MUX_DATA_PORT_REQ 0x00A2 54*4882a593Smuzhiyun #define QMIWDS_BIND_MUX_DATA_PORT_RESP 0x00A2 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun // Stats masks 58*4882a593Smuzhiyun #define QWDS_STAT_MASK_TX_PKT_OK 0x00000001 59*4882a593Smuzhiyun #define QWDS_STAT_MASK_RX_PKT_OK 0x00000002 60*4882a593Smuzhiyun #define QWDS_STAT_MASK_TX_PKT_ER 0x00000004 61*4882a593Smuzhiyun #define QWDS_STAT_MASK_RX_PKT_ER 0x00000008 62*4882a593Smuzhiyun #define QWDS_STAT_MASK_TX_PKT_OF 0x00000010 63*4882a593Smuzhiyun #define QWDS_STAT_MASK_RX_PKT_OF 0x00000020 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun // TLV Types for xfer statistics 66*4882a593Smuzhiyun #define TLV_WDS_TX_GOOD_PKTS 0x10 67*4882a593Smuzhiyun #define TLV_WDS_RX_GOOD_PKTS 0x11 68*4882a593Smuzhiyun #define TLV_WDS_TX_ERROR 0x12 69*4882a593Smuzhiyun #define TLV_WDS_RX_ERROR 0x13 70*4882a593Smuzhiyun #define TLV_WDS_TX_OVERFLOW 0x14 71*4882a593Smuzhiyun #define TLV_WDS_RX_OVERFLOW 0x15 72*4882a593Smuzhiyun #define TLV_WDS_CHANNEL_RATE 0x16 73*4882a593Smuzhiyun #define TLV_WDS_DATA_BEARER 0x17 74*4882a593Smuzhiyun #define TLV_WDS_DORMANCY_STATUS 0x18 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun #define QWDS_PKT_DATA_UNKNOW 0x00 77*4882a593Smuzhiyun #define QWDS_PKT_DATA_DISCONNECTED 0x01 78*4882a593Smuzhiyun #define QWDS_PKT_DATA_CONNECTED 0x02 79*4882a593Smuzhiyun #define QWDS_PKT_DATA_SUSPENDED 0x03 80*4882a593Smuzhiyun #define QWDS_PKT_DATA_AUTHENTICATING 0x04 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun #define QMIWDS_ADMIN_SET_DATA_FORMAT_REQ 0x0020 83*4882a593Smuzhiyun #define QMIWDS_ADMIN_SET_DATA_FORMAT_RESP 0x0020 84*4882a593Smuzhiyun #define QMIWDS_ADMIN_GET_DATA_FORMAT_REQ 0x0021 85*4882a593Smuzhiyun #define QMIWDS_ADMIN_GET_DATA_FORMAT_RESP 0x0021 86*4882a593Smuzhiyun #define QMIWDS_ADMIN_SET_QMAP_SETTINGS_REQ 0x002B 87*4882a593Smuzhiyun #define QMIWDS_ADMIN_SET_QMAP_SETTINGS_RESP 0x002B 88*4882a593Smuzhiyun #define QMIWDS_ADMIN_GET_QMAP_SETTINGS_REQ 0x002C 89*4882a593Smuzhiyun #define QMIWDS_ADMIN_GET_QMAP_SETTINGS_RESP 0x002C 90*4882a593Smuzhiyun #define QMI_WDA_SET_LOOPBACK_CONFIG_REQ 0x002F 91*4882a593Smuzhiyun #define QMI_WDA_SET_LOOPBACK_CONFIG_RESP 0x002F 92*4882a593Smuzhiyun #define QMI_WDA_SET_LOOPBACK_CONFIG_IND 0x002F 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun #define NETWORK_DESC_ENCODING_OCTET 0x00 95*4882a593Smuzhiyun #define NETWORK_DESC_ENCODING_EXTPROTOCOL 0x01 96*4882a593Smuzhiyun #define NETWORK_DESC_ENCODING_7BITASCII 0x02 97*4882a593Smuzhiyun #define NETWORK_DESC_ENCODING_IA5 0x03 98*4882a593Smuzhiyun #define NETWORK_DESC_ENCODING_UNICODE 0x04 99*4882a593Smuzhiyun #define NETWORK_DESC_ENCODING_SHIFTJIS 0x05 100*4882a593Smuzhiyun #define NETWORK_DESC_ENCODING_KOREAN 0x06 101*4882a593Smuzhiyun #define NETWORK_DESC_ENCODING_LATINH 0x07 102*4882a593Smuzhiyun #define NETWORK_DESC_ENCODING_LATIN 0x08 103*4882a593Smuzhiyun #define NETWORK_DESC_ENCODING_GSM7BIT 0x09 104*4882a593Smuzhiyun #define NETWORK_DESC_ENCODING_GSMDATA 0x0A 105*4882a593Smuzhiyun #define NETWORK_DESC_ENCODING_UNKNOWN 0xFF 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun typedef struct _QMIWDS_ADMIN_SET_DATA_FORMAT 108*4882a593Smuzhiyun { 109*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0000 110*4882a593Smuzhiyun USHORT Length; 111*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_ADMIN_SET_DATA_FORMAT, *PQMIWDS_ADMIN_SET_DATA_FORMAT; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun typedef struct _QMIWDS_ADMIN_SET_DATA_FORMAT_TLV_QOS 114*4882a593Smuzhiyun { 115*4882a593Smuzhiyun UCHAR TLVType; 116*4882a593Smuzhiyun USHORT TLVLength; 117*4882a593Smuzhiyun UCHAR QOSSetting; 118*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_ADMIN_SET_DATA_FORMAT_TLV_QOS, *PQMIWDS_ADMIN_SET_DATA_FORMAT_TLV_QOS; 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun typedef struct _QMIWDS_ADMIN_SET_DATA_FORMAT_TLV 121*4882a593Smuzhiyun { 122*4882a593Smuzhiyun UCHAR TLVType; 123*4882a593Smuzhiyun USHORT TLVLength; 124*4882a593Smuzhiyun ULONG Value; 125*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_ADMIN_SET_DATA_FORMAT_TLV, *PQMIWDS_ADMIN_SET_DATA_FORMAT_TLV; 126*4882a593Smuzhiyun 127*4882a593Smuzhiyun typedef struct _QMIWDS_ENDPOINT_TLV 128*4882a593Smuzhiyun { 129*4882a593Smuzhiyun UCHAR TLVType; 130*4882a593Smuzhiyun USHORT TLVLength; 131*4882a593Smuzhiyun ULONG ep_type; 132*4882a593Smuzhiyun ULONG iface_id; 133*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_ENDPOINT_TLV, *PQMIWDS_ENDPOINT_TLV; 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun typedef struct _QMIWDS_ADMIN_SET_DATA_FORMAT_REQ_MSG 136*4882a593Smuzhiyun { 137*4882a593Smuzhiyun USHORT Type; 138*4882a593Smuzhiyun USHORT Length; 139*4882a593Smuzhiyun QMIWDS_ADMIN_SET_DATA_FORMAT_TLV_QOS QosDataFormatTlv; 140*4882a593Smuzhiyun QMIWDS_ADMIN_SET_DATA_FORMAT_TLV UnderlyingLinkLayerProtocolTlv; 141*4882a593Smuzhiyun QMIWDS_ADMIN_SET_DATA_FORMAT_TLV UplinkDataAggregationProtocolTlv; 142*4882a593Smuzhiyun QMIWDS_ADMIN_SET_DATA_FORMAT_TLV DownlinkDataAggregationProtocolTlv; 143*4882a593Smuzhiyun QMIWDS_ADMIN_SET_DATA_FORMAT_TLV DownlinkDataAggregationMaxDatagramsTlv; 144*4882a593Smuzhiyun QMIWDS_ADMIN_SET_DATA_FORMAT_TLV DownlinkDataAggregationMaxSizeTlv; 145*4882a593Smuzhiyun QMIWDS_ENDPOINT_TLV epTlv; 146*4882a593Smuzhiyun #ifdef QUECTEL_UL_DATA_AGG 147*4882a593Smuzhiyun QMIWDS_ADMIN_SET_DATA_FORMAT_TLV DlMinimumPassingTlv; 148*4882a593Smuzhiyun QMIWDS_ADMIN_SET_DATA_FORMAT_TLV UplinkDataAggregationMaxDatagramsTlv; 149*4882a593Smuzhiyun QMIWDS_ADMIN_SET_DATA_FORMAT_TLV UplinkDataAggregationMaxSizeTlv; 150*4882a593Smuzhiyun #endif 151*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_ADMIN_SET_DATA_FORMAT_REQ_MSG, *PQMIWDS_ADMIN_SET_DATA_FORMAT_REQ_MSG; 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun typedef struct _QMI_U8_TLV 154*4882a593Smuzhiyun { 155*4882a593Smuzhiyun UCHAR TLVType; 156*4882a593Smuzhiyun USHORT TLVLength; 157*4882a593Smuzhiyun UCHAR TLVVaule; 158*4882a593Smuzhiyun } __attribute__ ((packed)) QMI_U8_TLV, *PQMI_U8_TLV; 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun typedef struct _QMI_U32_TLV 161*4882a593Smuzhiyun { 162*4882a593Smuzhiyun UCHAR TLVType; 163*4882a593Smuzhiyun USHORT TLVLength; 164*4882a593Smuzhiyun ULONG TLVVaule; 165*4882a593Smuzhiyun } __attribute__ ((packed)) QMI_U32_TLV, *PQMI_U32_TLV; 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun typedef struct _QMI_WDA_SET_LOOPBACK_CONFIG_REQ_MSG { 168*4882a593Smuzhiyun USHORT Type; 169*4882a593Smuzhiyun USHORT Length; 170*4882a593Smuzhiyun QMI_U8_TLV loopback_state; //0x01 171*4882a593Smuzhiyun QMI_U32_TLV replication_factor; //0x10 172*4882a593Smuzhiyun } __attribute__ ((packed)) QMI_WDA_SET_LOOPBACK_CONFIG_REQ_MSG, *PQMI_WDA_SET_LOOPBACK_CONFIG_REQ_MSG; 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun typedef struct _QMI_WDA_SET_LOOPBACK_CONFIG_IND_MSG 175*4882a593Smuzhiyun { 176*4882a593Smuzhiyun USHORT Type; 177*4882a593Smuzhiyun USHORT Length; 178*4882a593Smuzhiyun QMI_U8_TLV loopback_state; //0x01 179*4882a593Smuzhiyun QMI_U32_TLV replication_factor; //0x10 180*4882a593Smuzhiyun } __attribute__ ((packed)) QMI_WDA_SET_LOOPBACK_CONFIG_IND_MSG, *PQMI_WDA_SET_LOOPBACK_CONFIG_IND_MSG; 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun #if 0 183*4882a593Smuzhiyun typedef enum _QMI_RETURN_CODES { 184*4882a593Smuzhiyun QMI_SUCCESS = 0, 185*4882a593Smuzhiyun QMI_SUCCESS_NOT_COMPLETE, 186*4882a593Smuzhiyun QMI_FAILURE 187*4882a593Smuzhiyun }QMI_RETURN_CODES; 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun typedef struct _QMIWDS_GET_PKT_SRVC_STATUS_REQ_MSG 190*4882a593Smuzhiyun { 191*4882a593Smuzhiyun USHORT Type; // 0x0022 192*4882a593Smuzhiyun USHORT Length; // 0x0000 193*4882a593Smuzhiyun } QMIWDS_GET_PKT_SRVC_STATUS_REQ_MSG, *PQMIWDS_GET_PKT_SRVC_STATUS_REQ_MSG; 194*4882a593Smuzhiyun 195*4882a593Smuzhiyun typedef struct _QMIWDS_GET_PKT_SRVC_STATUS_RESP_MSG 196*4882a593Smuzhiyun { 197*4882a593Smuzhiyun USHORT Type; 198*4882a593Smuzhiyun USHORT Length; 199*4882a593Smuzhiyun UCHAR TLVType; 200*4882a593Smuzhiyun USHORT TLVLength; 201*4882a593Smuzhiyun USHORT QMUXResult; 202*4882a593Smuzhiyun USHORT QMUXError; 203*4882a593Smuzhiyun UCHAR TLVType2; 204*4882a593Smuzhiyun USHORT TLVLength2; 205*4882a593Smuzhiyun UCHAR ConnectionStatus; // 0x01: QWDS_PKT_DATAC_DISCONNECTED 206*4882a593Smuzhiyun // 0x02: QWDS_PKT_DATA_CONNECTED 207*4882a593Smuzhiyun // 0x03: QWDS_PKT_DATA_SUSPENDED 208*4882a593Smuzhiyun // 0x04: QWDS_PKT_DATA_AUTHENTICATING 209*4882a593Smuzhiyun } QMIWDS_GET_PKT_SRVC_STATUS_RESP_MSG, *PQMIWDS_GET_PKT_SRVC_STATUS_RESP_MSG; 210*4882a593Smuzhiyun 211*4882a593Smuzhiyun typedef struct _QMIWDS_GET_PKT_SRVC_STATUS_IND_MSG 212*4882a593Smuzhiyun { 213*4882a593Smuzhiyun USHORT Type; 214*4882a593Smuzhiyun USHORT Length; 215*4882a593Smuzhiyun UCHAR TLVType; 216*4882a593Smuzhiyun USHORT TLVLength; 217*4882a593Smuzhiyun UCHAR ConnectionStatus; // 0x01: QWDS_PKT_DATAC_DISCONNECTED 218*4882a593Smuzhiyun // 0x02: QWDS_PKT_DATA_CONNECTED 219*4882a593Smuzhiyun // 0x03: QWDS_PKT_DATA_SUSPENDED 220*4882a593Smuzhiyun UCHAR ReconfigRequired; // 0x00: No need to reconfigure 221*4882a593Smuzhiyun // 0x01: Reconfiguration required 222*4882a593Smuzhiyun } QMIWDS_GET_PKT_SRVC_STATUS_IND_MSG, *PQMIWDS_GET_PKT_SRVC_STATUS_IND_MSG; 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun typedef struct _WDS_PKT_SRVC_IP_FAMILY_TLV 225*4882a593Smuzhiyun { 226*4882a593Smuzhiyun UCHAR TLVType; // 0x12 227*4882a593Smuzhiyun USHORT TLVLength; // 1 228*4882a593Smuzhiyun UCHAR IpFamily; // IPV4-0x04, IPV6-0x06 229*4882a593Smuzhiyun } WDS_PKT_SRVC_IP_FAMILY_TLV, *PWDS_PKT_SRVC_IP_FAMILY_TLV; 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun typedef struct _QMIWDS_DUN_CALL_INFO_REQ_MSG 232*4882a593Smuzhiyun { 233*4882a593Smuzhiyun USHORT Type; 234*4882a593Smuzhiyun USHORT Length; 235*4882a593Smuzhiyun UCHAR TLVType; 236*4882a593Smuzhiyun USHORT TLVLength; 237*4882a593Smuzhiyun ULONG Mask; 238*4882a593Smuzhiyun UCHAR TLV2Type; 239*4882a593Smuzhiyun USHORT TLV2Length; 240*4882a593Smuzhiyun UCHAR ReportConnectionStatus; 241*4882a593Smuzhiyun } QMIWDS_DUN_CALL_INFO_REQ_MSG, *PQMIWDS_DUN_CALL_INFO_REQ_MSG; 242*4882a593Smuzhiyun 243*4882a593Smuzhiyun typedef struct _QMIWDS_DUN_CALL_INFO_RESP_MSG 244*4882a593Smuzhiyun { 245*4882a593Smuzhiyun USHORT Type; 246*4882a593Smuzhiyun USHORT Length; 247*4882a593Smuzhiyun UCHAR TLVType; 248*4882a593Smuzhiyun USHORT TLVLength; 249*4882a593Smuzhiyun USHORT QMUXResult; 250*4882a593Smuzhiyun USHORT QMUXError; 251*4882a593Smuzhiyun } QMIWDS_DUN_CALL_INFO_RESP_MSG, *PQMIWDS_DUN_CALL_INFO_RESP_MSG; 252*4882a593Smuzhiyun 253*4882a593Smuzhiyun typedef struct _QMIWDS_DUN_CALL_INFO_IND_MSG 254*4882a593Smuzhiyun { 255*4882a593Smuzhiyun UCHAR TLVType; 256*4882a593Smuzhiyun USHORT TLVLength; 257*4882a593Smuzhiyun UCHAR ConnectionStatus; 258*4882a593Smuzhiyun } QMIWDS_DUN_CALL_INFO_IND_MSG, *PQMIWDS_DUN_CALL_INFO_IND_MSG; 259*4882a593Smuzhiyun 260*4882a593Smuzhiyun typedef struct _QMIWDS_GET_CURRENT_CHANNEL_RATE_REQ_MSG 261*4882a593Smuzhiyun { 262*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0040 263*4882a593Smuzhiyun USHORT Length; 264*4882a593Smuzhiyun } QMIWDS_GET_CURRENT_CHANNEL_RATE_REQ_MSG, *PQMIWDS_GET_CURRENT_CHANNEL_RATE_REQ_MSG; 265*4882a593Smuzhiyun 266*4882a593Smuzhiyun typedef struct _QMIWDS_GET_CURRENT_CHANNEL_RATE_RESP_MSG 267*4882a593Smuzhiyun { 268*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0040 269*4882a593Smuzhiyun USHORT Length; 270*4882a593Smuzhiyun UCHAR TLVType; // 0x02 271*4882a593Smuzhiyun USHORT TLVLength; // 4 272*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 273*4882a593Smuzhiyun // QMI_RESULT_FAILURE 274*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 275*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 276*4882a593Smuzhiyun // QMI_ERR_INTERNAL 277*4882a593Smuzhiyun // QMI_ERR_FAULT 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun UCHAR TLV2Type; // 0x01 280*4882a593Smuzhiyun USHORT TLV2Length; // 16 281*4882a593Smuzhiyun //ULONG CallHandle; // Context corresponding to reported channel 282*4882a593Smuzhiyun ULONG CurrentTxRate; // bps 283*4882a593Smuzhiyun ULONG CurrentRxRate; // bps 284*4882a593Smuzhiyun ULONG ServingSystemTxRate; // bps 285*4882a593Smuzhiyun ULONG ServingSystemRxRate; // bps 286*4882a593Smuzhiyun 287*4882a593Smuzhiyun } QMIWDS_GET_CURRENT_CHANNEL_RATE_RESP_MSG, *PQMIWDS_GET_CURRENT_CHANNEL_RATE_RESP; 288*4882a593Smuzhiyun 289*4882a593Smuzhiyun #define QWDS_EVENT_REPORT_MASK_RATES 0x01 290*4882a593Smuzhiyun #define QWDS_EVENT_REPORT_MASK_STATS 0x02 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun #ifdef QCUSB_MUX_PROTOCOL 293*4882a593Smuzhiyun #error code not present 294*4882a593Smuzhiyun #endif // QCUSB_MUX_PROTOCOL 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun typedef struct _QMIWDS_SET_EVENT_REPORT_REQ_MSG 297*4882a593Smuzhiyun { 298*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0042 299*4882a593Smuzhiyun USHORT Length; 300*4882a593Smuzhiyun 301*4882a593Smuzhiyun UCHAR TLVType; // 0x10 -- current channel rate indicator 302*4882a593Smuzhiyun USHORT TLVLength; // 1 303*4882a593Smuzhiyun UCHAR Mode; // 0-do not report; 1-report when rate changes 304*4882a593Smuzhiyun 305*4882a593Smuzhiyun UCHAR TLV2Type; // 0x11 306*4882a593Smuzhiyun USHORT TLV2Length; // 5 307*4882a593Smuzhiyun UCHAR StatsPeriod; // seconds between reports; 0-do not report 308*4882a593Smuzhiyun ULONG StatsMask; // 309*4882a593Smuzhiyun 310*4882a593Smuzhiyun UCHAR TLV3Type; // 0x12 -- current data bearer indicator 311*4882a593Smuzhiyun USHORT TLV3Length; // 1 312*4882a593Smuzhiyun UCHAR Mode3; // 0-do not report; 1-report when changes 313*4882a593Smuzhiyun 314*4882a593Smuzhiyun UCHAR TLV4Type; // 0x13 -- dormancy status indicator 315*4882a593Smuzhiyun USHORT TLV4Length; // 1 316*4882a593Smuzhiyun UCHAR DormancyStatus; // 0-do not report; 1-report when changes 317*4882a593Smuzhiyun } QMIWDS_SET_EVENT_REPORT_REQ_MSG, *PQMIWDS_SET_EVENT_REPORT_REQ_MSG; 318*4882a593Smuzhiyun 319*4882a593Smuzhiyun typedef struct _QMIWDS_SET_EVENT_REPORT_RESP_MSG 320*4882a593Smuzhiyun { 321*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0042 322*4882a593Smuzhiyun USHORT Length; 323*4882a593Smuzhiyun 324*4882a593Smuzhiyun UCHAR TLVType; // 0x02 result code 325*4882a593Smuzhiyun USHORT TLVLength; // 4 326*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 327*4882a593Smuzhiyun // QMI_RESULT_FAILURE 328*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 329*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 330*4882a593Smuzhiyun // QMI_ERR_INTERNAL 331*4882a593Smuzhiyun // QMI_ERR_NO_BATTERY 332*4882a593Smuzhiyun // QMI_ERR_FAULT 333*4882a593Smuzhiyun } QMIWDS_SET_EVENT_REPORT_RESP_MSG, *PQMIWDS_SET_EVENT_REPORT_RESP_MSG; 334*4882a593Smuzhiyun 335*4882a593Smuzhiyun typedef struct _QMIWDS_EVENT_REPORT_IND_MSG 336*4882a593Smuzhiyun { 337*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0001 338*4882a593Smuzhiyun USHORT Length; 339*4882a593Smuzhiyun } QMIWDS_EVENT_REPORT_IND_MSG, *PQMIWDS_EVENT_REPORT_IND_MSG; 340*4882a593Smuzhiyun 341*4882a593Smuzhiyun // PQCTLV_PKT_STATISTICS 342*4882a593Smuzhiyun 343*4882a593Smuzhiyun typedef struct _QMIWDS_EVENT_REPORT_IND_CHAN_RATE_TLV 344*4882a593Smuzhiyun { 345*4882a593Smuzhiyun UCHAR Type; 346*4882a593Smuzhiyun USHORT Length; // 8 347*4882a593Smuzhiyun ULONG TxRate; 348*4882a593Smuzhiyun ULONG RxRate; 349*4882a593Smuzhiyun } QMIWDS_EVENT_REPORT_IND_CHAN_RATE_TLV, *PQMIWDS_EVENT_REPORT_IND_CHAN_RATE_TLV; 350*4882a593Smuzhiyun 351*4882a593Smuzhiyun #ifdef QCUSB_MUX_PROTOCOL 352*4882a593Smuzhiyun #error code not present 353*4882a593Smuzhiyun #endif // QCUSB_MUX_PROTOCOL 354*4882a593Smuzhiyun 355*4882a593Smuzhiyun typedef struct _QMIWDS_GET_PKT_STATISTICS_REQ_MSG 356*4882a593Smuzhiyun { 357*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0041 358*4882a593Smuzhiyun USHORT Length; 359*4882a593Smuzhiyun UCHAR TLVType; // 0x01 360*4882a593Smuzhiyun USHORT TLVLength; // 4 361*4882a593Smuzhiyun ULONG StateMask; // 0x00000001 tx success packets 362*4882a593Smuzhiyun // 0x00000002 rx success packets 363*4882a593Smuzhiyun // 0x00000004 rx packet errors (checksum) 364*4882a593Smuzhiyun // 0x00000008 rx packets dropped (memory) 365*4882a593Smuzhiyun 366*4882a593Smuzhiyun } QMIWDS_GET_PKT_STATISTICS_REQ_MSG, *PQMIWDS_GET_PKT_STATISTICS_REQ_MSG; 367*4882a593Smuzhiyun 368*4882a593Smuzhiyun typedef struct _QMIWDS_GET_PKT_STATISTICS_RESP_MSG 369*4882a593Smuzhiyun { 370*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0041 371*4882a593Smuzhiyun USHORT Length; 372*4882a593Smuzhiyun UCHAR TLVType; // 0x02 373*4882a593Smuzhiyun USHORT TLVLength; // 4 374*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 375*4882a593Smuzhiyun // QMI_RESULT_FAILURE 376*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 377*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 378*4882a593Smuzhiyun // QMI_ERR_INTERNAL 379*4882a593Smuzhiyun // QMI_ERR_FAULT 380*4882a593Smuzhiyun } QMIWDS_GET_PKT_STATISTICS_RESP_MSG, *PQMIWDS_GET_PKT_STATISTICS_RESP_MSG; 381*4882a593Smuzhiyun 382*4882a593Smuzhiyun // optional TLV for stats 383*4882a593Smuzhiyun typedef struct _QCTLV_PKT_STATISTICS 384*4882a593Smuzhiyun { 385*4882a593Smuzhiyun UCHAR TLVType; // see above definitions for TLV types 386*4882a593Smuzhiyun USHORT TLVLength; // 4 387*4882a593Smuzhiyun ULONG Count; 388*4882a593Smuzhiyun } QCTLV_PKT_STATISTICS, *PQCTLV_PKT_STATISTICS; 389*4882a593Smuzhiyun #endif 390*4882a593Smuzhiyun 391*4882a593Smuzhiyun //#ifdef QC_IP_MODE 392*4882a593Smuzhiyun 393*4882a593Smuzhiyun /* 394*4882a593Smuzhiyun • Bit 0 – Profile identifier 395*4882a593Smuzhiyun • Bit 1 – Profile name 396*4882a593Smuzhiyun • Bit 2 – PDP type 397*4882a593Smuzhiyun • Bit 3 – APN name 398*4882a593Smuzhiyun • Bit 4 – DNS address 399*4882a593Smuzhiyun • Bit 5 – UMTS/GPRS granted QoS 400*4882a593Smuzhiyun • Bit 6 – Username 401*4882a593Smuzhiyun • Bit 7 – Authentication Protocol 402*4882a593Smuzhiyun • Bit 8 – IP address 403*4882a593Smuzhiyun • Bit 9 – Gateway information (address and subnet mask) 404*4882a593Smuzhiyun • Bit 10 – PCSCF address using a PCO flag 405*4882a593Smuzhiyun • Bit 11 – PCSCF server address list 406*4882a593Smuzhiyun • Bit 12 – PCSCF domain name list 407*4882a593Smuzhiyun • Bit 13 – MTU 408*4882a593Smuzhiyun • Bit 14 – Domain name list 409*4882a593Smuzhiyun • Bit 15 – IP family 410*4882a593Smuzhiyun • Bit 16 – IM_CM flag 411*4882a593Smuzhiyun • Bit 17 – Technology name 412*4882a593Smuzhiyun • Bit 18 – Operator reserved PCO 413*4882a593Smuzhiyun */ 414*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_MASK_IPV4DNS_ADDR (1 << 4) 415*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_MASK_IPV4_ADDR (1 << 8) 416*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_MASK_IPV4GATEWAY_ADDR (1 << 9) 417*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_MASK_MTU (1 << 13) 418*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_MASK_PCSCF_SV_ADDR (1 << 11) 419*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_MASK_PCSCF_DOM_NAME (1 << 14) 420*4882a593Smuzhiyun 421*4882a593Smuzhiyun typedef struct _QMIWDS_GET_RUNTIME_SETTINGS_REQ_MSG 422*4882a593Smuzhiyun { 423*4882a593Smuzhiyun USHORT Type; // QMIWDS_GET_RUNTIME_SETTINGS_REQ 424*4882a593Smuzhiyun USHORT Length; 425*4882a593Smuzhiyun UCHAR TLVType; // 0x10 426*4882a593Smuzhiyun USHORT TLVLength; // 0x0004 427*4882a593Smuzhiyun ULONG Mask; // mask, bit 8: IP addr -- 0x0100 428*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_GET_RUNTIME_SETTINGS_REQ_MSG, *PQMIWDS_GET_RUNTIME_SETTINGS_REQ_MSG; 429*4882a593Smuzhiyun 430*4882a593Smuzhiyun typedef struct _QMIWDS_BIND_MUX_DATA_PORT_REQ_MSG 431*4882a593Smuzhiyun { 432*4882a593Smuzhiyun USHORT Type; 433*4882a593Smuzhiyun USHORT Length; 434*4882a593Smuzhiyun UCHAR TLVType; 435*4882a593Smuzhiyun USHORT TLVLength; 436*4882a593Smuzhiyun ULONG ep_type; 437*4882a593Smuzhiyun ULONG iface_id; 438*4882a593Smuzhiyun UCHAR TLV2Type; 439*4882a593Smuzhiyun USHORT TLV2Length; 440*4882a593Smuzhiyun UCHAR MuxId; 441*4882a593Smuzhiyun UCHAR TLV3Type; 442*4882a593Smuzhiyun USHORT TLV3Length; 443*4882a593Smuzhiyun ULONG client_type; 444*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_BIND_MUX_DATA_PORT_REQ_MSG, *PQMIWDS_BIND_MUX_DATA_PORT_REQ_MSG; 445*4882a593Smuzhiyun 446*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV4PRIMARYDNS 0x15 447*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV4SECONDARYDNS 0x16 448*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV4 0x1E 449*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV4GATEWAY 0x20 450*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV4SUBNET 0x21 451*4882a593Smuzhiyun 452*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV6 0x25 453*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV6GATEWAY 0x26 454*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV6PRIMARYDNS 0x27 455*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV6SECONDARYDNS 0x28 456*4882a593Smuzhiyun #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_MTU 0x29 457*4882a593Smuzhiyun 458*4882a593Smuzhiyun typedef struct _QMIWDS_GET_RUNTIME_SETTINGS_TLV_MTU 459*4882a593Smuzhiyun { 460*4882a593Smuzhiyun UCHAR TLVType; // QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_MTU 461*4882a593Smuzhiyun USHORT TLVLength; // 4 462*4882a593Smuzhiyun ULONG Mtu; // MTU 463*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_GET_RUNTIME_SETTINGS_TLV_MTU, *PQMIWDS_GET_RUNTIME_SETTINGS_TLV_MTU; 464*4882a593Smuzhiyun 465*4882a593Smuzhiyun typedef struct _QMIWDS_GET_RUNTIME_SETTINGS_TLV_IPV4_ADDR 466*4882a593Smuzhiyun { 467*4882a593Smuzhiyun UCHAR TLVType; // QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV4 468*4882a593Smuzhiyun USHORT TLVLength; // 4 469*4882a593Smuzhiyun ULONG IPV4Address; // address 470*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_GET_RUNTIME_SETTINGS_TLV_IPV4_ADDR, *PQMIWDS_GET_RUNTIME_SETTINGS_TLV_IPV4_ADDR; 471*4882a593Smuzhiyun 472*4882a593Smuzhiyun typedef struct _QMIWDS_GET_RUNTIME_SETTINGS_TLV_IPV6_ADDR 473*4882a593Smuzhiyun { 474*4882a593Smuzhiyun UCHAR TLVType; // QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV6 475*4882a593Smuzhiyun USHORT TLVLength; // 16 476*4882a593Smuzhiyun UCHAR IPV6Address[16]; // address 477*4882a593Smuzhiyun UCHAR PrefixLength; // prefix length 478*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_GET_RUNTIME_SETTINGS_TLV_IPV6_ADDR, *PQMIWDS_GET_RUNTIME_SETTINGS_TLV_IPV6_ADDR; 479*4882a593Smuzhiyun 480*4882a593Smuzhiyun typedef struct _QMIWDS_GET_RUNNING_SETTINGS_PCSCF_IPV6_ADDR 481*4882a593Smuzhiyun { 482*4882a593Smuzhiyun UCHAR TLVType; 483*4882a593Smuzhiyun USHORT TLVLength; 484*4882a593Smuzhiyun UCHAR PCSCFNumber; 485*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_GET_RUNNING_SETTINGS_PCSCF_IPV6_ADDR, *PQMIWDS_GET_RUNNING_SETTINGS_PCSCF_IPV6_ADDR; 486*4882a593Smuzhiyun 487*4882a593Smuzhiyun typedef struct _QMIWDS_GET_RUNNING_SETTINGS_PCSCF_IPV4_ADDR 488*4882a593Smuzhiyun { 489*4882a593Smuzhiyun UCHAR TLVType; 490*4882a593Smuzhiyun USHORT TLVLength; 491*4882a593Smuzhiyun UCHAR PCSCFNumber; 492*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_GET_RUNNING_SETTINGS_PCSCF_IPV4_ADDR, *PQMIWDS_GET_RUNNING_SETTINGS_PCSCF_IPV4_ADDR; 493*4882a593Smuzhiyun 494*4882a593Smuzhiyun typedef struct _QMIWDS_GET_RUNTIME_SETTINGS_RESP_MSG 495*4882a593Smuzhiyun { 496*4882a593Smuzhiyun USHORT Type; // QMIWDS_GET_RUNTIME_SETTINGS_RESP 497*4882a593Smuzhiyun USHORT Length; 498*4882a593Smuzhiyun UCHAR TLVType; // QCTLV_TYPE_RESULT_CODE 499*4882a593Smuzhiyun USHORT TLVLength; // 0x0004 500*4882a593Smuzhiyun USHORT QMUXResult; // result code 501*4882a593Smuzhiyun USHORT QMUXError; // error code 502*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_GET_RUNTIME_SETTINGS_RESP_MSG, *PQMIWDS_GET_RUNTIME_SETTINGS_RESP_MSG; 503*4882a593Smuzhiyun 504*4882a593Smuzhiyun //#endif // QC_IP_MODE 505*4882a593Smuzhiyun 506*4882a593Smuzhiyun typedef struct _QMIWDS_IP_FAMILY_TLV 507*4882a593Smuzhiyun { 508*4882a593Smuzhiyun UCHAR TLVType; // 0x12 509*4882a593Smuzhiyun USHORT TLVLength; // 1 510*4882a593Smuzhiyun UCHAR IpFamily; // IPV4-0x04, IPV6-0x06 511*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_IP_FAMILY_TLV, *PQMIWDS_IP_FAMILY_TLV; 512*4882a593Smuzhiyun 513*4882a593Smuzhiyun typedef struct _QMIWDS_PKT_SRVC_TLV 514*4882a593Smuzhiyun { 515*4882a593Smuzhiyun UCHAR TLVType; 516*4882a593Smuzhiyun USHORT TLVLength; 517*4882a593Smuzhiyun UCHAR ConnectionStatus; 518*4882a593Smuzhiyun UCHAR ReconfigReqd; 519*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_PKT_SRVC_TLV, *PQMIWDS_PKT_SRVC_TLV; 520*4882a593Smuzhiyun 521*4882a593Smuzhiyun typedef struct _QMIWDS_CALL_END_REASON_TLV 522*4882a593Smuzhiyun { 523*4882a593Smuzhiyun UCHAR TLVType; 524*4882a593Smuzhiyun USHORT TLVLength; 525*4882a593Smuzhiyun USHORT CallEndReason; 526*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_CALL_END_REASON_TLV, *PQMIWDS_CALL_END_REASON_TLV; 527*4882a593Smuzhiyun 528*4882a593Smuzhiyun typedef struct _QMIWDS_CALL_END_REASON_V_TLV 529*4882a593Smuzhiyun { 530*4882a593Smuzhiyun UCHAR TLVType; 531*4882a593Smuzhiyun USHORT TLVLength; 532*4882a593Smuzhiyun USHORT CallEndReasonType; 533*4882a593Smuzhiyun USHORT CallEndReason; 534*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_CALL_END_REASON_V_TLV, *PQMIWDS_CALL_END_REASON_V_TLV; 535*4882a593Smuzhiyun 536*4882a593Smuzhiyun typedef struct _QMIWDS_SET_CLIENT_IP_FAMILY_PREF_REQ_MSG 537*4882a593Smuzhiyun { 538*4882a593Smuzhiyun USHORT Type; // QMUX type 0x004D 539*4882a593Smuzhiyun USHORT Length; 540*4882a593Smuzhiyun UCHAR TLVType; // 0x01 541*4882a593Smuzhiyun USHORT TLVLength; // 1 542*4882a593Smuzhiyun UCHAR IpPreference; // IPV4-0x04, IPV6-0x06 543*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_SET_CLIENT_IP_FAMILY_PREF_REQ_MSG, *PQMIWDS_SET_CLIENT_IP_FAMILY_PREF_REQ_MSG; 544*4882a593Smuzhiyun 545*4882a593Smuzhiyun typedef struct _QMIWDS_SET_CLIENT_IP_FAMILY_PREF_RESP_MSG 546*4882a593Smuzhiyun { 547*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0037 548*4882a593Smuzhiyun USHORT Length; 549*4882a593Smuzhiyun UCHAR TLVType; // 0x02 550*4882a593Smuzhiyun USHORT TLVLength; // 4 551*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS, QMI_RESULT_FAILURE 552*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INTERNAL, QMI_ERR_MALFORMED_MSG, QMI_ERR_INVALID_ARG 553*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_SET_CLIENT_IP_FAMILY_PREF_RESP_MSG, *PQMIWDS_SET_CLIENT_IP_FAMILY_PREF_RESP_MSG; 554*4882a593Smuzhiyun 555*4882a593Smuzhiyun typedef struct _QMIWDS_SET_AUTO_CONNECT_REQ_MSG 556*4882a593Smuzhiyun { 557*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0051 558*4882a593Smuzhiyun USHORT Length; 559*4882a593Smuzhiyun UCHAR TLVType; // 0x01 560*4882a593Smuzhiyun USHORT TLVLength; // 1 561*4882a593Smuzhiyun UCHAR autoconnect_setting; // 0x00 ?C Disabled, 0x01 ?C Enabled, 0x02 ?C Paused (resume on power cycle) 562*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_SET_AUTO_CONNECT_REQ_MSG, *PQMIWDS_SET_AUTO_CONNECT_REQ_MSG; 563*4882a593Smuzhiyun 564*4882a593Smuzhiyun #if 0 565*4882a593Smuzhiyun typedef struct _QMIWDS_GET_MIP_MODE_REQ_MSG 566*4882a593Smuzhiyun { 567*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0040 568*4882a593Smuzhiyun USHORT Length; 569*4882a593Smuzhiyun } QMIWDS_GET_MIP_MODE_REQ_MSG, *PQMIWDS_GET_MIP_MODE_REQ_MSG; 570*4882a593Smuzhiyun 571*4882a593Smuzhiyun typedef struct _QMIWDS_GET_MIP_MODE_RESP_MSG 572*4882a593Smuzhiyun { 573*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0040 574*4882a593Smuzhiyun USHORT Length; 575*4882a593Smuzhiyun UCHAR TLVType; // 0x02 576*4882a593Smuzhiyun USHORT TLVLength; // 4 577*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 578*4882a593Smuzhiyun // QMI_RESULT_FAILURE 579*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 580*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 581*4882a593Smuzhiyun // QMI_ERR_INTERNAL 582*4882a593Smuzhiyun // QMI_ERR_FAULT 583*4882a593Smuzhiyun 584*4882a593Smuzhiyun UCHAR TLV2Type; // 0x01 585*4882a593Smuzhiyun USHORT TLV2Length; // 20 586*4882a593Smuzhiyun UCHAR MipMode; // 587*4882a593Smuzhiyun } QMIWDS_GET_MIP_MODE_RESP_MSG, *PQMIWDS_GET_MIP_MODE_RESP_MSG; 588*4882a593Smuzhiyun #endif 589*4882a593Smuzhiyun 590*4882a593Smuzhiyun typedef struct _QMIWDS_TECHNOLOGY_PREFERECE 591*4882a593Smuzhiyun { 592*4882a593Smuzhiyun UCHAR TLVType; 593*4882a593Smuzhiyun USHORT TLVLength; 594*4882a593Smuzhiyun UCHAR TechPreference; 595*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_TECHNOLOGY_PREFERECE, *PQMIWDS_TECHNOLOGY_PREFERECE; 596*4882a593Smuzhiyun 597*4882a593Smuzhiyun typedef struct _QMIWDS_PROFILE_IDENTIFIER 598*4882a593Smuzhiyun { 599*4882a593Smuzhiyun UCHAR TLVType; 600*4882a593Smuzhiyun USHORT TLVLength; 601*4882a593Smuzhiyun UCHAR ProfileIndex; 602*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_PROFILE_IDENTIFIER, *PQMIWDS_PROFILE_IDENTIFIER; 603*4882a593Smuzhiyun 604*4882a593Smuzhiyun #if 0 605*4882a593Smuzhiyun typedef struct _QMIWDS_IPADDRESS 606*4882a593Smuzhiyun { 607*4882a593Smuzhiyun UCHAR TLVType; 608*4882a593Smuzhiyun USHORT TLVLength; 609*4882a593Smuzhiyun ULONG IPv4Address; 610*4882a593Smuzhiyun }QMIWDS_IPADDRESS, *PQMIWDS_IPADDRESS; 611*4882a593Smuzhiyun 612*4882a593Smuzhiyun /* 613*4882a593Smuzhiyun typedef struct _QMIWDS_UMTS_QOS 614*4882a593Smuzhiyun { 615*4882a593Smuzhiyun UCHAR TLVType; 616*4882a593Smuzhiyun USHORT TLVLength; 617*4882a593Smuzhiyun UCHAR TrafficClass; 618*4882a593Smuzhiyun ULONG MaxUplinkBitRate; 619*4882a593Smuzhiyun ULONG MaxDownlinkBitRate; 620*4882a593Smuzhiyun ULONG GuarUplinkBitRate; 621*4882a593Smuzhiyun ULONG GuarDownlinkBitRate; 622*4882a593Smuzhiyun UCHAR QOSDevOrder; 623*4882a593Smuzhiyun ULONG MAXSDUSize; 624*4882a593Smuzhiyun UCHAR SDUErrorRatio; 625*4882a593Smuzhiyun UCHAR ResidualBerRatio; 626*4882a593Smuzhiyun UCHAR DeliveryErrorSDUs; 627*4882a593Smuzhiyun ULONG TransferDelay; 628*4882a593Smuzhiyun ULONG TrafficHndPri; 629*4882a593Smuzhiyun }QMIWDS_UMTS_QOS, *PQMIWDS_UMTS_QOS; 630*4882a593Smuzhiyun 631*4882a593Smuzhiyun typedef struct _QMIWDS_GPRS_QOS 632*4882a593Smuzhiyun { 633*4882a593Smuzhiyun UCHAR TLVType; 634*4882a593Smuzhiyun USHORT TLVLength; 635*4882a593Smuzhiyun ULONG PrecedenceClass; 636*4882a593Smuzhiyun ULONG DelayClass; 637*4882a593Smuzhiyun ULONG ReliabilityClass; 638*4882a593Smuzhiyun ULONG PeekThroClass; 639*4882a593Smuzhiyun ULONG MeanThroClass; 640*4882a593Smuzhiyun }QMIWDS_GPRS_QOS, *PQMIWDS_GPRS_QOS; 641*4882a593Smuzhiyun */ 642*4882a593Smuzhiyun #endif 643*4882a593Smuzhiyun 644*4882a593Smuzhiyun typedef struct _QMIWDS_PROFILENAME 645*4882a593Smuzhiyun { 646*4882a593Smuzhiyun UCHAR TLVType; 647*4882a593Smuzhiyun USHORT TLVLength; 648*4882a593Smuzhiyun UCHAR ProfileName; 649*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_PROFILENAME, *PQMIWDS_PROFILENAME; 650*4882a593Smuzhiyun 651*4882a593Smuzhiyun typedef struct _QMIWDS_PDPTYPE 652*4882a593Smuzhiyun { 653*4882a593Smuzhiyun UCHAR TLVType; 654*4882a593Smuzhiyun USHORT TLVLength; 655*4882a593Smuzhiyun // 0 ?C PDP-IP (IPv4) 656*4882a593Smuzhiyun // 1 ?C PDP-PPP 657*4882a593Smuzhiyun // 2 ?C PDP-IPv6 658*4882a593Smuzhiyun // 3 ?C PDP-IPv4v6 659*4882a593Smuzhiyun UCHAR PdpType; 660*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_PDPTYPE, *PQMIWDS_PDPTYPE; 661*4882a593Smuzhiyun 662*4882a593Smuzhiyun typedef struct _QMIWDS_USERNAME 663*4882a593Smuzhiyun { 664*4882a593Smuzhiyun UCHAR TLVType; 665*4882a593Smuzhiyun USHORT TLVLength; 666*4882a593Smuzhiyun UCHAR UserName; 667*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_USERNAME, *PQMIWDS_USERNAME; 668*4882a593Smuzhiyun 669*4882a593Smuzhiyun typedef struct _QMIWDS_PASSWD 670*4882a593Smuzhiyun { 671*4882a593Smuzhiyun UCHAR TLVType; 672*4882a593Smuzhiyun USHORT TLVLength; 673*4882a593Smuzhiyun UCHAR Passwd; 674*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_PASSWD, *PQMIWDS_PASSWD; 675*4882a593Smuzhiyun 676*4882a593Smuzhiyun typedef struct _QMIWDS_AUTH_PREFERENCE 677*4882a593Smuzhiyun { 678*4882a593Smuzhiyun UCHAR TLVType; 679*4882a593Smuzhiyun USHORT TLVLength; 680*4882a593Smuzhiyun UCHAR AuthPreference; 681*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_AUTH_PREFERENCE, *PQMIWDS_AUTH_PREFERENCE; 682*4882a593Smuzhiyun 683*4882a593Smuzhiyun typedef struct _QMIWDS_APNNAME 684*4882a593Smuzhiyun { 685*4882a593Smuzhiyun UCHAR TLVType; 686*4882a593Smuzhiyun USHORT TLVLength; 687*4882a593Smuzhiyun UCHAR ApnName; 688*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_APNNAME, *PQMIWDS_APNNAME; 689*4882a593Smuzhiyun 690*4882a593Smuzhiyun typedef struct _QMIWDS_AUTOCONNECT 691*4882a593Smuzhiyun { 692*4882a593Smuzhiyun UCHAR TLVType; 693*4882a593Smuzhiyun USHORT TLVLength; 694*4882a593Smuzhiyun UCHAR AutoConnect; 695*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_AUTOCONNECT, *PQMIWDS_AUTOCONNECT; 696*4882a593Smuzhiyun 697*4882a593Smuzhiyun typedef struct _QMIWDS_START_NETWORK_INTERFACE_REQ_MSG 698*4882a593Smuzhiyun { 699*4882a593Smuzhiyun USHORT Type; 700*4882a593Smuzhiyun USHORT Length; 701*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_START_NETWORK_INTERFACE_REQ_MSG, *PQMIWDS_START_NETWORK_INTERFACE_REQ_MSG; 702*4882a593Smuzhiyun 703*4882a593Smuzhiyun typedef struct _QMIWDS_CALLENDREASON 704*4882a593Smuzhiyun { 705*4882a593Smuzhiyun UCHAR TLVType; 706*4882a593Smuzhiyun USHORT TLVLength; 707*4882a593Smuzhiyun USHORT Reason; 708*4882a593Smuzhiyun }__attribute__ ((packed)) QMIWDS_CALLENDREASON, *PQMIWDS_CALLENDREASON; 709*4882a593Smuzhiyun 710*4882a593Smuzhiyun typedef struct _QMIWDS_START_NETWORK_INTERFACE_RESP_MSG 711*4882a593Smuzhiyun { 712*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0040 713*4882a593Smuzhiyun USHORT Length; 714*4882a593Smuzhiyun UCHAR TLVType; // 0x02 715*4882a593Smuzhiyun USHORT TLVLength; // 4 716*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 717*4882a593Smuzhiyun // QMI_RESULT_FAILURE 718*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 719*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 720*4882a593Smuzhiyun // QMI_ERR_INTERNAL 721*4882a593Smuzhiyun // QMI_ERR_FAULT 722*4882a593Smuzhiyun 723*4882a593Smuzhiyun UCHAR TLV2Type; // 0x01 724*4882a593Smuzhiyun USHORT TLV2Length; // 20 725*4882a593Smuzhiyun ULONG Handle; // 726*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_START_NETWORK_INTERFACE_RESP_MSG, *PQMIWDS_START_NETWORK_INTERFACE_RESP_MSG; 727*4882a593Smuzhiyun 728*4882a593Smuzhiyun typedef struct _QMIWDS_STOP_NETWORK_INTERFACE_REQ_MSG 729*4882a593Smuzhiyun { 730*4882a593Smuzhiyun USHORT Type; 731*4882a593Smuzhiyun USHORT Length; 732*4882a593Smuzhiyun UCHAR TLVType; 733*4882a593Smuzhiyun USHORT TLVLength; 734*4882a593Smuzhiyun ULONG Handle; 735*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_STOP_NETWORK_INTERFACE_REQ_MSG, *PQMIWDS_STOP_NETWORK_INTERFACE_REQ_MSG; 736*4882a593Smuzhiyun 737*4882a593Smuzhiyun typedef struct _QMIWDS_STOP_NETWORK_INTERFACE_RESP_MSG 738*4882a593Smuzhiyun { 739*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0040 740*4882a593Smuzhiyun USHORT Length; 741*4882a593Smuzhiyun UCHAR TLVType; // 0x02 742*4882a593Smuzhiyun USHORT TLVLength; // 4 743*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 744*4882a593Smuzhiyun // QMI_RESULT_FAILURE 745*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 746*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 747*4882a593Smuzhiyun // QMI_ERR_INTERNAL 748*4882a593Smuzhiyun // QMI_ERR_FAULT 749*4882a593Smuzhiyun 750*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_STOP_NETWORK_INTERFACE_RESP_MSG, *PQMIWDS_STOP_NETWORK_INTERFACE_RESP_MSG; 751*4882a593Smuzhiyun 752*4882a593Smuzhiyun typedef struct _QMIWDS_GET_DEFAULT_SETTINGS_REQ_MSG 753*4882a593Smuzhiyun { 754*4882a593Smuzhiyun USHORT Type; 755*4882a593Smuzhiyun USHORT Length; 756*4882a593Smuzhiyun UCHAR TLVType; 757*4882a593Smuzhiyun USHORT TLVLength; 758*4882a593Smuzhiyun UCHAR ProfileType; 759*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_GET_DEFAULT_SETTINGS_REQ_MSG, *PQMIWDS_GET_DEFAULT_SETTINGS_REQ_MSG; 760*4882a593Smuzhiyun 761*4882a593Smuzhiyun typedef struct _QMIWDS_GET_DEFAULT_SETTINGS_RESP_MSG 762*4882a593Smuzhiyun { 763*4882a593Smuzhiyun USHORT Type; 764*4882a593Smuzhiyun USHORT Length; 765*4882a593Smuzhiyun UCHAR TLVType; 766*4882a593Smuzhiyun USHORT TLVLength; 767*4882a593Smuzhiyun USHORT QMUXResult; 768*4882a593Smuzhiyun USHORT QMUXError; 769*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_GET_DEFAULT_SETTINGS_RESP_MSG, *PQMIWDS_GET_DEFAULT_SETTINGS_RESP_MSG; 770*4882a593Smuzhiyun 771*4882a593Smuzhiyun typedef struct _QMIWDS_MODIFY_PROFILE_SETTINGS_REQ_MSG 772*4882a593Smuzhiyun { 773*4882a593Smuzhiyun USHORT Type; 774*4882a593Smuzhiyun USHORT Length; 775*4882a593Smuzhiyun UCHAR TLVType; 776*4882a593Smuzhiyun USHORT TLVLength; 777*4882a593Smuzhiyun UCHAR ProfileType; 778*4882a593Smuzhiyun UCHAR ProfileIndex; 779*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_MODIFY_PROFILE_SETTINGS_REQ_MSG, *PQMIWDS_MODIFY_PROFILE_SETTINGS_REQ_MSG; 780*4882a593Smuzhiyun 781*4882a593Smuzhiyun typedef struct _QMIWDS_MODIFY_PROFILE_SETTINGS_RESP_MSG 782*4882a593Smuzhiyun { 783*4882a593Smuzhiyun USHORT Type; 784*4882a593Smuzhiyun USHORT Length; 785*4882a593Smuzhiyun UCHAR TLVType; 786*4882a593Smuzhiyun USHORT TLVLength; 787*4882a593Smuzhiyun USHORT QMUXResult; 788*4882a593Smuzhiyun USHORT QMUXError; 789*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_MODIFY_PROFILE_SETTINGS_RESP_MSG, *PQMIWDS_MODIFY_PROFILE_SETTINGS_RESP_MSG; 790*4882a593Smuzhiyun 791*4882a593Smuzhiyun typedef struct _QMIWDS_GET_PROFILE_SETTINGS_REQ_MSG 792*4882a593Smuzhiyun { 793*4882a593Smuzhiyun USHORT Type; 794*4882a593Smuzhiyun USHORT Length; 795*4882a593Smuzhiyun UCHAR TLVType; 796*4882a593Smuzhiyun USHORT TLVLength; 797*4882a593Smuzhiyun UCHAR ProfileType; 798*4882a593Smuzhiyun UCHAR ProfileIndex; 799*4882a593Smuzhiyun } __attribute__ ((packed)) QMIWDS_GET_PROFILE_SETTINGS_REQ_MSG, *PQMIWDS_GET_PROFILE_SETTINGS_REQ_MSG; 800*4882a593Smuzhiyun 801*4882a593Smuzhiyun #if 0 802*4882a593Smuzhiyun typedef struct _QMIWDS_EVENT_REPORT_IND_DATA_BEARER_TLV 803*4882a593Smuzhiyun { 804*4882a593Smuzhiyun UCHAR Type; 805*4882a593Smuzhiyun USHORT Length; 806*4882a593Smuzhiyun UCHAR DataBearer; 807*4882a593Smuzhiyun } QMIWDS_EVENT_REPORT_IND_DATA_BEARER_TLV, *PQMIWDS_EVENT_REPORT_IND_DATA_BEARER_TLV; 808*4882a593Smuzhiyun 809*4882a593Smuzhiyun typedef struct _QMIWDS_EVENT_REPORT_IND_DORMANCY_STATUS_TLV 810*4882a593Smuzhiyun { 811*4882a593Smuzhiyun UCHAR Type; 812*4882a593Smuzhiyun USHORT Length; 813*4882a593Smuzhiyun UCHAR DormancyStatus; 814*4882a593Smuzhiyun } QMIWDS_EVENT_REPORT_IND_DORMANCY_STATUS_TLV, *PQMIWDS_EVENT_REPORT_IND_DORMANCY_STATUS_TLV; 815*4882a593Smuzhiyun 816*4882a593Smuzhiyun 817*4882a593Smuzhiyun typedef struct _QMIWDS_GET_DATA_BEARER_REQ_MSG 818*4882a593Smuzhiyun { 819*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0037 820*4882a593Smuzhiyun USHORT Length; 821*4882a593Smuzhiyun } QMIWDS_GET_DATA_BEARER_REQ_MSG, *PQMIWDS_GET_DATA_BEARER_REQ_MSG; 822*4882a593Smuzhiyun 823*4882a593Smuzhiyun typedef struct _QMIWDS_GET_DATA_BEARER_RESP_MSG 824*4882a593Smuzhiyun { 825*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0037 826*4882a593Smuzhiyun USHORT Length; 827*4882a593Smuzhiyun UCHAR TLVType; // 0x02 828*4882a593Smuzhiyun USHORT TLVLength; // 4 829*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 830*4882a593Smuzhiyun // QMI_RESULT_FAILURE 831*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INTERNAL 832*4882a593Smuzhiyun // QMI_ERR_MALFORMED_MSG 833*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 834*4882a593Smuzhiyun // QMI_ERR_OUT_OF_CALL 835*4882a593Smuzhiyun // QMI_ERR_INFO_UNAVAILABLE 836*4882a593Smuzhiyun UCHAR TLV2Type; // 0x01 837*4882a593Smuzhiyun USHORT TLV2Length; // 838*4882a593Smuzhiyun UCHAR Technology; // 839*4882a593Smuzhiyun } QMIWDS_GET_DATA_BEARER_RESP_MSG, *PQMIWDS_GET_DATA_BEARER_RESP_MSG; 840*4882a593Smuzhiyun #endif 841*4882a593Smuzhiyun 842*4882a593Smuzhiyun // ======================= DMS ============================== 843*4882a593Smuzhiyun #define QMIDMS_SET_EVENT_REPORT_REQ 0x0001 844*4882a593Smuzhiyun #define QMIDMS_SET_EVENT_REPORT_RESP 0x0001 845*4882a593Smuzhiyun #define QMIDMS_EVENT_REPORT_IND 0x0001 846*4882a593Smuzhiyun #define QMIDMS_GET_DEVICE_CAP_REQ 0x0020 847*4882a593Smuzhiyun #define QMIDMS_GET_DEVICE_CAP_RESP 0x0020 848*4882a593Smuzhiyun #define QMIDMS_GET_DEVICE_MFR_REQ 0x0021 849*4882a593Smuzhiyun #define QMIDMS_GET_DEVICE_MFR_RESP 0x0021 850*4882a593Smuzhiyun #define QMIDMS_GET_DEVICE_MODEL_ID_REQ 0x0022 851*4882a593Smuzhiyun #define QMIDMS_GET_DEVICE_MODEL_ID_RESP 0x0022 852*4882a593Smuzhiyun #define QMIDMS_GET_DEVICE_REV_ID_REQ 0x0023 853*4882a593Smuzhiyun #define QMIDMS_GET_DEVICE_REV_ID_RESP 0x0023 854*4882a593Smuzhiyun #define QMIDMS_GET_MSISDN_REQ 0x0024 855*4882a593Smuzhiyun #define QMIDMS_GET_MSISDN_RESP 0x0024 856*4882a593Smuzhiyun #define QMIDMS_GET_DEVICE_SERIAL_NUMBERS_REQ 0x0025 857*4882a593Smuzhiyun #define QMIDMS_GET_DEVICE_SERIAL_NUMBERS_RESP 0x0025 858*4882a593Smuzhiyun #define QMIDMS_UIM_SET_PIN_PROTECTION_REQ 0x0027 859*4882a593Smuzhiyun #define QMIDMS_UIM_SET_PIN_PROTECTION_RESP 0x0027 860*4882a593Smuzhiyun #define QMIDMS_UIM_VERIFY_PIN_REQ 0x0028 861*4882a593Smuzhiyun #define QMIDMS_UIM_VERIFY_PIN_RESP 0x0028 862*4882a593Smuzhiyun #define QMIDMS_UIM_UNBLOCK_PIN_REQ 0x0029 863*4882a593Smuzhiyun #define QMIDMS_UIM_UNBLOCK_PIN_RESP 0x0029 864*4882a593Smuzhiyun #define QMIDMS_UIM_CHANGE_PIN_REQ 0x002A 865*4882a593Smuzhiyun #define QMIDMS_UIM_CHANGE_PIN_RESP 0x002A 866*4882a593Smuzhiyun #define QMIDMS_UIM_GET_PIN_STATUS_REQ 0x002B 867*4882a593Smuzhiyun #define QMIDMS_UIM_GET_PIN_STATUS_RESP 0x002B 868*4882a593Smuzhiyun #define QMIDMS_GET_DEVICE_HARDWARE_REV_REQ 0x002C 869*4882a593Smuzhiyun #define QMIDMS_GET_DEVICE_HARDWARE_REV_RESP 0x002C 870*4882a593Smuzhiyun #define QMIDMS_GET_OPERATING_MODE_REQ 0x002D 871*4882a593Smuzhiyun #define QMIDMS_GET_OPERATING_MODE_RESP 0x002D 872*4882a593Smuzhiyun #define QMIDMS_SET_OPERATING_MODE_REQ 0x002E 873*4882a593Smuzhiyun #define QMIDMS_SET_OPERATING_MODE_RESP 0x002E 874*4882a593Smuzhiyun #define QMIDMS_GET_ACTIVATED_STATUS_REQ 0x0031 875*4882a593Smuzhiyun #define QMIDMS_GET_ACTIVATED_STATUS_RESP 0x0031 876*4882a593Smuzhiyun #define QMIDMS_ACTIVATE_AUTOMATIC_REQ 0x0032 877*4882a593Smuzhiyun #define QMIDMS_ACTIVATE_AUTOMATIC_RESP 0x0032 878*4882a593Smuzhiyun #define QMIDMS_ACTIVATE_MANUAL_REQ 0x0033 879*4882a593Smuzhiyun #define QMIDMS_ACTIVATE_MANUAL_RESP 0x0033 880*4882a593Smuzhiyun #define QMIDMS_UIM_GET_ICCID_REQ 0x003C 881*4882a593Smuzhiyun #define QMIDMS_UIM_GET_ICCID_RESP 0x003C 882*4882a593Smuzhiyun #define QMIDMS_UIM_GET_CK_STATUS_REQ 0x0040 883*4882a593Smuzhiyun #define QMIDMS_UIM_GET_CK_STATUS_RESP 0x0040 884*4882a593Smuzhiyun #define QMIDMS_UIM_SET_CK_PROTECTION_REQ 0x0041 885*4882a593Smuzhiyun #define QMIDMS_UIM_SET_CK_PROTECTION_RESP 0x0041 886*4882a593Smuzhiyun #define QMIDMS_UIM_UNBLOCK_CK_REQ 0x0042 887*4882a593Smuzhiyun #define QMIDMS_UIM_UNBLOCK_CK_RESP 0x0042 888*4882a593Smuzhiyun #define QMIDMS_UIM_GET_IMSI_REQ 0x0043 889*4882a593Smuzhiyun #define QMIDMS_UIM_GET_IMSI_RESP 0x0043 890*4882a593Smuzhiyun #define QMIDMS_UIM_GET_STATE_REQ 0x0044 891*4882a593Smuzhiyun #define QMIDMS_UIM_GET_STATE_RESP 0x0044 892*4882a593Smuzhiyun #define QMIDMS_GET_BAND_CAP_REQ 0x0045 893*4882a593Smuzhiyun #define QMIDMS_GET_BAND_CAP_RESP 0x0045 894*4882a593Smuzhiyun 895*4882a593Smuzhiyun #if 0 896*4882a593Smuzhiyun typedef struct _QMIDMS_GET_DEVICE_MFR_REQ_MSG 897*4882a593Smuzhiyun { 898*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 899*4882a593Smuzhiyun USHORT Length; 900*4882a593Smuzhiyun } QMIDMS_GET_DEVICE_MFR_REQ_MSG, *PQMIDMS_GET_DEVICE_MFR_REQ_MSG; 901*4882a593Smuzhiyun 902*4882a593Smuzhiyun typedef struct _QMIDMS_GET_DEVICE_MFR_RESP_MSG 903*4882a593Smuzhiyun { 904*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 905*4882a593Smuzhiyun USHORT Length; 906*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 907*4882a593Smuzhiyun USHORT TLVLength; // 4 908*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 909*4882a593Smuzhiyun // QMI_RESULT_FAILURE 910*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 911*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 912*4882a593Smuzhiyun // QMI_ERR_INTERNAL 913*4882a593Smuzhiyun // QMI_ERR_FAULT 914*4882a593Smuzhiyun UCHAR TLV2Type; // 0x01 - required parameter 915*4882a593Smuzhiyun USHORT TLV2Length; // length of the mfr string 916*4882a593Smuzhiyun UCHAR DeviceManufacturer; // first byte of string 917*4882a593Smuzhiyun } QMIDMS_GET_DEVICE_MFR_RESP_MSG, *PQMIDMS_GET_DEVICE_MFR_RESP_MSG; 918*4882a593Smuzhiyun 919*4882a593Smuzhiyun typedef struct _QMIDMS_GET_DEVICE_MODEL_ID_REQ_MSG 920*4882a593Smuzhiyun { 921*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0004 922*4882a593Smuzhiyun USHORT Length; 923*4882a593Smuzhiyun } QMIDMS_GET_DEVICE_MODEL_ID_REQ_MSG, *PQMIDMS_GET_DEVICE_MODEL_ID_REQ_MSG; 924*4882a593Smuzhiyun 925*4882a593Smuzhiyun typedef struct _QMIDMS_GET_DEVICE_MODEL_ID_RESP_MSG 926*4882a593Smuzhiyun { 927*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0004 928*4882a593Smuzhiyun USHORT Length; 929*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 930*4882a593Smuzhiyun USHORT TLVLength; // 4 931*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 932*4882a593Smuzhiyun // QMI_RESULT_FAILURE 933*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 934*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 935*4882a593Smuzhiyun // QMI_ERR_INTERNAL 936*4882a593Smuzhiyun // QMI_ERR_FAULT 937*4882a593Smuzhiyun UCHAR TLV2Type; // 0x01 - required parameter 938*4882a593Smuzhiyun USHORT TLV2Length; // length of the modem id string 939*4882a593Smuzhiyun UCHAR DeviceModelID; // device model id 940*4882a593Smuzhiyun } QMIDMS_GET_DEVICE_MODEL_ID_RESP_MSG, *PQMIDMS_GET_DEVICE_MODEL_ID_RESP_MSG; 941*4882a593Smuzhiyun #endif 942*4882a593Smuzhiyun 943*4882a593Smuzhiyun typedef struct _QMIDMS_GET_DEVICE_REV_ID_REQ_MSG 944*4882a593Smuzhiyun { 945*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0005 946*4882a593Smuzhiyun USHORT Length; 947*4882a593Smuzhiyun } __attribute__ ((packed)) QMIDMS_GET_DEVICE_REV_ID_REQ_MSG, *PQMIDMS_GET_DEVICE_REV_ID_REQ_MSG; 948*4882a593Smuzhiyun 949*4882a593Smuzhiyun typedef struct _DEVICE_REV_ID 950*4882a593Smuzhiyun { 951*4882a593Smuzhiyun UCHAR TLVType; 952*4882a593Smuzhiyun USHORT TLVLength; 953*4882a593Smuzhiyun UCHAR RevisionID; 954*4882a593Smuzhiyun } __attribute__ ((packed)) DEVICE_REV_ID, *PDEVICE_REV_ID; 955*4882a593Smuzhiyun 956*4882a593Smuzhiyun #if 0 957*4882a593Smuzhiyun typedef struct _QMIDMS_GET_DEVICE_REV_ID_RESP_MSG 958*4882a593Smuzhiyun { 959*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0023 960*4882a593Smuzhiyun USHORT Length; 961*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 962*4882a593Smuzhiyun USHORT TLVLength; // 4 963*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 964*4882a593Smuzhiyun // QMI_RESULT_FAILURE 965*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 966*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 967*4882a593Smuzhiyun // QMI_ERR_INTERNAL 968*4882a593Smuzhiyun // QMI_ERR_FAULT 969*4882a593Smuzhiyun } QMIDMS_GET_DEVICE_REV_ID_RESP_MSG, *PQMIDMS_GET_DEVICE_REV_ID_RESP_MSG; 970*4882a593Smuzhiyun 971*4882a593Smuzhiyun typedef struct _QMIDMS_GET_MSISDN_REQ_MSG 972*4882a593Smuzhiyun { 973*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 974*4882a593Smuzhiyun USHORT Length; 975*4882a593Smuzhiyun } QMIDMS_GET_MSISDN_REQ_MSG, *PQMIDMS_GET_MSISDN_REQ_MSG; 976*4882a593Smuzhiyun 977*4882a593Smuzhiyun typedef struct _QCTLV_DEVICE_VOICE_NUMBERS 978*4882a593Smuzhiyun { 979*4882a593Smuzhiyun UCHAR TLVType; // as defined above 980*4882a593Smuzhiyun USHORT TLVLength; // 4/7/7 981*4882a593Smuzhiyun UCHAR VoideNumberString; // ESN, IMEI, or MEID 982*4882a593Smuzhiyun 983*4882a593Smuzhiyun } QCTLV_DEVICE_VOICE_NUMBERS, *PQCTLV_DEVICE_VOICE_NUMBERS; 984*4882a593Smuzhiyun 985*4882a593Smuzhiyun 986*4882a593Smuzhiyun typedef struct _QMIDMS_GET_MSISDN_RESP_MSG 987*4882a593Smuzhiyun { 988*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 989*4882a593Smuzhiyun USHORT Length; 990*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 991*4882a593Smuzhiyun USHORT TLVLength; // 4 992*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 993*4882a593Smuzhiyun // QMI_RESULT_FAILURE 994*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 995*4882a593Smuzhiyun } QMIDMS_GET_MSISDN_RESP_MSG, *PQMIDMS_GET_MSISDN_RESP_MSG; 996*4882a593Smuzhiyun #endif 997*4882a593Smuzhiyun 998*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_GET_IMSI_REQ_MSG 999*4882a593Smuzhiyun { 1000*4882a593Smuzhiyun USHORT Type; 1001*4882a593Smuzhiyun USHORT Length; 1002*4882a593Smuzhiyun } __attribute__ ((packed)) QMIDMS_UIM_GET_IMSI_REQ_MSG, *PQMIDMS_UIM_GET_IMSI_REQ_MSG; 1003*4882a593Smuzhiyun 1004*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_GET_IMSI_RESP_MSG 1005*4882a593Smuzhiyun { 1006*4882a593Smuzhiyun USHORT Type; 1007*4882a593Smuzhiyun USHORT Length; 1008*4882a593Smuzhiyun UCHAR TLVType; 1009*4882a593Smuzhiyun USHORT TLVLength; 1010*4882a593Smuzhiyun USHORT QMUXResult; 1011*4882a593Smuzhiyun USHORT QMUXError; 1012*4882a593Smuzhiyun UCHAR TLV2Type; 1013*4882a593Smuzhiyun USHORT TLV2Length; 1014*4882a593Smuzhiyun UCHAR IMSI; 1015*4882a593Smuzhiyun } __attribute__ ((packed)) QMIDMS_UIM_GET_IMSI_RESP_MSG, *PQMIDMS_UIM_GET_IMSI_RESP_MSG; 1016*4882a593Smuzhiyun 1017*4882a593Smuzhiyun #if 0 1018*4882a593Smuzhiyun typedef struct _QMIDMS_GET_DEVICE_SERIAL_NUMBERS_REQ_MSG 1019*4882a593Smuzhiyun { 1020*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0007 1021*4882a593Smuzhiyun USHORT Length; 1022*4882a593Smuzhiyun } QMIDMS_GET_DEVICE_SERIAL_NUMBERS_REQ_MSG, *PQMIDMS_GET_DEVICE_SERIAL_NUMBERS_REQ_MSG; 1023*4882a593Smuzhiyun 1024*4882a593Smuzhiyun #define QCTLV_TYPE_SER_NUM_ESN 0x10 1025*4882a593Smuzhiyun #define QCTLV_TYPE_SER_NUM_IMEI 0x11 1026*4882a593Smuzhiyun #define QCTLV_TYPE_SER_NUM_MEID 0x12 1027*4882a593Smuzhiyun 1028*4882a593Smuzhiyun typedef struct _QCTLV_DEVICE_SERIAL_NUMBER 1029*4882a593Smuzhiyun { 1030*4882a593Smuzhiyun UCHAR TLVType; // as defined above 1031*4882a593Smuzhiyun USHORT TLVLength; // 4/7/7 1032*4882a593Smuzhiyun UCHAR SerialNumberString; // ESN, IMEI, or MEID 1033*4882a593Smuzhiyun 1034*4882a593Smuzhiyun } QCTLV_DEVICE_SERIAL_NUMBER, *PQCTLV_DEVICE_SERIAL_NUMBER; 1035*4882a593Smuzhiyun 1036*4882a593Smuzhiyun typedef struct _QMIDMS_GET_DEVICE_SERIAL_NUMBERS_RESP_MSG 1037*4882a593Smuzhiyun { 1038*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0007 1039*4882a593Smuzhiyun USHORT Length; 1040*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1041*4882a593Smuzhiyun USHORT TLVLength; // 4 1042*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 1043*4882a593Smuzhiyun // QMI_RESULT_FAILURE 1044*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 1045*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 1046*4882a593Smuzhiyun // QMI_ERR_INTERNAL 1047*4882a593Smuzhiyun // QMI_ERR_FAULT 1048*4882a593Smuzhiyun // followed by optional TLV 1049*4882a593Smuzhiyun } QMIDMS_GET_DEVICE_SERIAL_NUMBERS_RESP_MSG, *PQMIDMS_GET_DEVICE_SERIAL_NUMBERS_RESP; 1050*4882a593Smuzhiyun 1051*4882a593Smuzhiyun typedef struct _QMIDMS_GET_DMS_BAND_CAP 1052*4882a593Smuzhiyun { 1053*4882a593Smuzhiyun USHORT Type; 1054*4882a593Smuzhiyun USHORT Length; 1055*4882a593Smuzhiyun } QMIDMS_GET_BAND_CAP_REQ_MSG, *PQMIDMS_GET_BAND_CAP_REQ_MSG; 1056*4882a593Smuzhiyun 1057*4882a593Smuzhiyun typedef struct _QMIDMS_GET_BAND_CAP_RESP_MSG 1058*4882a593Smuzhiyun { 1059*4882a593Smuzhiyun USHORT Type; 1060*4882a593Smuzhiyun USHORT Length; 1061*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1062*4882a593Smuzhiyun USHORT TLVLength; // 4 1063*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 1064*4882a593Smuzhiyun // QMI_RESULT_FAILURE 1065*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_NONE 1066*4882a593Smuzhiyun // QMI_ERR_INTERNAL 1067*4882a593Smuzhiyun // QMI_ERR_MALFORMED_MSG 1068*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 1069*4882a593Smuzhiyun 1070*4882a593Smuzhiyun UCHAR TLV2Type; // 0x01 1071*4882a593Smuzhiyun USHORT TLV2Length; // 2 1072*4882a593Smuzhiyun ULONG64 BandCap; 1073*4882a593Smuzhiyun } QMIDMS_GET_BAND_CAP_RESP_MSG, *PQMIDMS_GET_BAND_CAP_RESP; 1074*4882a593Smuzhiyun 1075*4882a593Smuzhiyun typedef struct _QMIDMS_GET_DEVICE_CAP_REQ_MSG 1076*4882a593Smuzhiyun { 1077*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0002 1078*4882a593Smuzhiyun USHORT Length; 1079*4882a593Smuzhiyun } QMIDMS_GET_DEVICE_CAP_REQ_MSG, *PQMIDMS_GET_DEVICE_CAP_REQ_MSG; 1080*4882a593Smuzhiyun 1081*4882a593Smuzhiyun typedef struct _QMIDMS_GET_DEVICE_CAP_RESP_MSG 1082*4882a593Smuzhiyun { 1083*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0002 1084*4882a593Smuzhiyun USHORT Length; 1085*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1086*4882a593Smuzhiyun USHORT TLVLength; // 4 1087*4882a593Smuzhiyun USHORT QMUXResult; // QMUX_RESULT_SUCCESS 1088*4882a593Smuzhiyun // QMUX_RESULT_FAILURE 1089*4882a593Smuzhiyun USHORT QMUXError; // QMUX_ERR_INVALID_ARG 1090*4882a593Smuzhiyun // QMUX_ERR_NO_MEMORY 1091*4882a593Smuzhiyun // QMUX_ERR_INTERNAL 1092*4882a593Smuzhiyun // QMUX_ERR_FAULT 1093*4882a593Smuzhiyun UCHAR TLV2Type; // 0x01 1094*4882a593Smuzhiyun USHORT TLV2Length; // 2 1095*4882a593Smuzhiyun 1096*4882a593Smuzhiyun ULONG MaxTxChannelRate; 1097*4882a593Smuzhiyun ULONG MaxRxChannelRate; 1098*4882a593Smuzhiyun UCHAR VoiceCap; 1099*4882a593Smuzhiyun UCHAR SimCap; 1100*4882a593Smuzhiyun 1101*4882a593Smuzhiyun UCHAR RadioIfListCnt; // #elements in radio interface list 1102*4882a593Smuzhiyun UCHAR RadioIfList; // N 1-byte elements 1103*4882a593Smuzhiyun } QMIDMS_GET_DEVICE_CAP_RESP_MSG, *PQMIDMS_GET_DEVICE_CAP_RESP_MSG; 1104*4882a593Smuzhiyun 1105*4882a593Smuzhiyun typedef struct _QMIDMS_GET_ACTIVATED_STATUS_REQ_MSG 1106*4882a593Smuzhiyun { 1107*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0002 1108*4882a593Smuzhiyun USHORT Length; 1109*4882a593Smuzhiyun } QMIDMS_GET_ACTIVATED_STATUS_REQ_MSG, *PQMIDMS_GET_ACTIVATES_STATUD_REQ_MSG; 1110*4882a593Smuzhiyun 1111*4882a593Smuzhiyun typedef struct _QMIDMS_GET_ACTIVATED_STATUS_RESP_MSG 1112*4882a593Smuzhiyun { 1113*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0002 1114*4882a593Smuzhiyun USHORT Length; 1115*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1116*4882a593Smuzhiyun USHORT TLVLength; // 4 1117*4882a593Smuzhiyun USHORT QMUXResult; // QMUX_RESULT_SUCCESS 1118*4882a593Smuzhiyun // QMUX_RESULT_FAILURE 1119*4882a593Smuzhiyun USHORT QMUXError; // QMUX_ERR_INVALID_ARG 1120*4882a593Smuzhiyun // QMUX_ERR_NO_MEMORY 1121*4882a593Smuzhiyun // QMUX_ERR_INTERNAL 1122*4882a593Smuzhiyun // QMUX_ERR_FAULT 1123*4882a593Smuzhiyun UCHAR TLV2Type; // 0x01 1124*4882a593Smuzhiyun USHORT TLV2Length; // 2 1125*4882a593Smuzhiyun 1126*4882a593Smuzhiyun USHORT ActivatedStatus; 1127*4882a593Smuzhiyun } QMIDMS_GET_ACTIVATED_STATUS_RESP_MSG, *PQMIDMS_GET_ACTIVATED_STATUS_RESP_MSG; 1128*4882a593Smuzhiyun 1129*4882a593Smuzhiyun typedef struct _QMIDMS_GET_OPERATING_MODE_REQ_MSG 1130*4882a593Smuzhiyun { 1131*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0002 1132*4882a593Smuzhiyun USHORT Length; 1133*4882a593Smuzhiyun } QMIDMS_GET_OPERATING_MODE_REQ_MSG, *PQMIDMS_GET_OPERATING_MODE_REQ_MSG; 1134*4882a593Smuzhiyun 1135*4882a593Smuzhiyun typedef struct _OFFLINE_REASON 1136*4882a593Smuzhiyun { 1137*4882a593Smuzhiyun UCHAR TLVType; 1138*4882a593Smuzhiyun USHORT TLVLength; 1139*4882a593Smuzhiyun USHORT OfflineReason; 1140*4882a593Smuzhiyun } OFFLINE_REASON, *POFFLINE_REASON; 1141*4882a593Smuzhiyun 1142*4882a593Smuzhiyun typedef struct _HARDWARE_RESTRICTED_MODE 1143*4882a593Smuzhiyun { 1144*4882a593Smuzhiyun UCHAR TLVType; 1145*4882a593Smuzhiyun USHORT TLVLength; 1146*4882a593Smuzhiyun UCHAR HardwareControlledMode; 1147*4882a593Smuzhiyun } HARDWARE_RESTRICTED_MODE, *PHARDWARE_RESTRICTED_MODE; 1148*4882a593Smuzhiyun 1149*4882a593Smuzhiyun typedef struct _QMIDMS_GET_OPERATING_MODE_RESP_MSG 1150*4882a593Smuzhiyun { 1151*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0002 1152*4882a593Smuzhiyun USHORT Length; 1153*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1154*4882a593Smuzhiyun USHORT TLVLength; // 4 1155*4882a593Smuzhiyun USHORT QMUXResult; // QMUX_RESULT_SUCCESS 1156*4882a593Smuzhiyun // QMUX_RESULT_FAILURE 1157*4882a593Smuzhiyun USHORT QMUXError; // QMUX_ERR_INVALID_ARG 1158*4882a593Smuzhiyun // QMUX_ERR_NO_MEMORY 1159*4882a593Smuzhiyun // QMUX_ERR_INTERNAL 1160*4882a593Smuzhiyun // QMUX_ERR_FAULT 1161*4882a593Smuzhiyun UCHAR TLV2Type; // 0x01 1162*4882a593Smuzhiyun USHORT TLV2Length; // 2 1163*4882a593Smuzhiyun 1164*4882a593Smuzhiyun UCHAR OperatingMode; 1165*4882a593Smuzhiyun } QMIDMS_GET_OPERATING_MODE_RESP_MSG, *PQMIDMS_GET_OPERATING_MODE_RESP_MSG; 1166*4882a593Smuzhiyun 1167*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_GET_ICCID_REQ_MSG 1168*4882a593Smuzhiyun { 1169*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1170*4882a593Smuzhiyun USHORT Length; 1171*4882a593Smuzhiyun } QMIDMS_UIM_GET_ICCID_REQ_MSG, *PQMIDMS_UIM_GET_ICCID_REQ_MSG; 1172*4882a593Smuzhiyun 1173*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_GET_ICCID_RESP_MSG 1174*4882a593Smuzhiyun { 1175*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1176*4882a593Smuzhiyun USHORT Length; 1177*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1178*4882a593Smuzhiyun USHORT TLVLength; // 4 1179*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 1180*4882a593Smuzhiyun // QMI_RESULT_FAILURE 1181*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 1182*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 1183*4882a593Smuzhiyun // QMI_ERR_INTERNAL 1184*4882a593Smuzhiyun // QMI_ERR_FAULT 1185*4882a593Smuzhiyun UCHAR TLV2Type; // 0x01 - required parameter 1186*4882a593Smuzhiyun USHORT TLV2Length; // var 1187*4882a593Smuzhiyun UCHAR ICCID; // String of voice number 1188*4882a593Smuzhiyun } QMIDMS_UIM_GET_ICCID_RESP_MSG, *PQMIDMS_UIM_GET_ICCID_RESP_MSG; 1189*4882a593Smuzhiyun #endif 1190*4882a593Smuzhiyun 1191*4882a593Smuzhiyun typedef struct _QMIDMS_SET_OPERATING_MODE_REQ_MSG 1192*4882a593Smuzhiyun { 1193*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0002 1194*4882a593Smuzhiyun USHORT Length; 1195*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1196*4882a593Smuzhiyun USHORT TLVLength; // 4 1197*4882a593Smuzhiyun UCHAR OperatingMode; 1198*4882a593Smuzhiyun } __attribute__ ((packed)) QMIDMS_SET_OPERATING_MODE_REQ_MSG, *PQMIDMS_SET_OPERATING_MODE_REQ_MSG; 1199*4882a593Smuzhiyun 1200*4882a593Smuzhiyun typedef struct _QMIDMS_SET_OPERATING_MODE_RESP_MSG 1201*4882a593Smuzhiyun { 1202*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0002 1203*4882a593Smuzhiyun USHORT Length; 1204*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1205*4882a593Smuzhiyun USHORT TLVLength; // 4 1206*4882a593Smuzhiyun USHORT QMUXResult; // QMUX_RESULT_SUCCESS 1207*4882a593Smuzhiyun // QMUX_RESULT_FAILURE 1208*4882a593Smuzhiyun USHORT QMUXError; // QMUX_ERR_INVALID_ARG 1209*4882a593Smuzhiyun // QMUX_ERR_NO_MEMORY 1210*4882a593Smuzhiyun // QMUX_ERR_INTERNAL 1211*4882a593Smuzhiyun // QMUX_ERR_FAULT 1212*4882a593Smuzhiyun } __attribute__ ((packed)) QMIDMS_SET_OPERATING_MODE_RESP_MSG, *PQMIDMS_SET_OPERATING_MODE_RESP_MSG; 1213*4882a593Smuzhiyun 1214*4882a593Smuzhiyun #if 0 1215*4882a593Smuzhiyun typedef struct _QMIDMS_ACTIVATE_AUTOMATIC_REQ_MSG 1216*4882a593Smuzhiyun { 1217*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1218*4882a593Smuzhiyun USHORT Length; 1219*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1220*4882a593Smuzhiyun USHORT TLVLength; // 1221*4882a593Smuzhiyun UCHAR ActivateCodelen; 1222*4882a593Smuzhiyun UCHAR ActivateCode; 1223*4882a593Smuzhiyun } QMIDMS_ACTIVATE_AUTOMATIC_REQ_MSG, *PQMIDMS_ACTIVATE_AUTOMATIC_REQ_MSG; 1224*4882a593Smuzhiyun 1225*4882a593Smuzhiyun typedef struct _QMIDMS_ACTIVATE_AUTOMATIC_RESP_MSG 1226*4882a593Smuzhiyun { 1227*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1228*4882a593Smuzhiyun USHORT Length; 1229*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1230*4882a593Smuzhiyun USHORT TLVLength; // 4 1231*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 1232*4882a593Smuzhiyun // QMI_RESULT_FAILURE 1233*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 1234*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 1235*4882a593Smuzhiyun // QMI_ERR_INTERNAL 1236*4882a593Smuzhiyun // QMI_ERR_FAULT 1237*4882a593Smuzhiyun } QMIDMS_ACTIVATE_AUTOMATIC_RESP_MSG, *PQMIDMS_ACTIVATE_AUTOMATIC_RESP_MSG; 1238*4882a593Smuzhiyun 1239*4882a593Smuzhiyun 1240*4882a593Smuzhiyun typedef struct _SPC_MSG 1241*4882a593Smuzhiyun { 1242*4882a593Smuzhiyun UCHAR SPC[6]; 1243*4882a593Smuzhiyun USHORT SID; 1244*4882a593Smuzhiyun } SPC_MSG, *PSPC_MSG; 1245*4882a593Smuzhiyun 1246*4882a593Smuzhiyun typedef struct _MDN_MSG 1247*4882a593Smuzhiyun { 1248*4882a593Smuzhiyun UCHAR MDNLEN; 1249*4882a593Smuzhiyun UCHAR MDN; 1250*4882a593Smuzhiyun } MDN_MSG, *PMDN_MSG; 1251*4882a593Smuzhiyun 1252*4882a593Smuzhiyun typedef struct _MIN_MSG 1253*4882a593Smuzhiyun { 1254*4882a593Smuzhiyun UCHAR MINLEN; 1255*4882a593Smuzhiyun UCHAR MIN; 1256*4882a593Smuzhiyun } MIN_MSG, *PMIN_MSG; 1257*4882a593Smuzhiyun 1258*4882a593Smuzhiyun typedef struct _PRL_MSG 1259*4882a593Smuzhiyun { 1260*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1261*4882a593Smuzhiyun USHORT TLVLength; // 1262*4882a593Smuzhiyun USHORT PRLLEN; 1263*4882a593Smuzhiyun UCHAR PRL; 1264*4882a593Smuzhiyun } PRL_MSG, *PPRL_MSG; 1265*4882a593Smuzhiyun 1266*4882a593Smuzhiyun typedef struct _MN_HA_KEY_MSG 1267*4882a593Smuzhiyun { 1268*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1269*4882a593Smuzhiyun USHORT TLVLength; // 1270*4882a593Smuzhiyun UCHAR MN_HA_KEY_LEN; 1271*4882a593Smuzhiyun UCHAR MN_HA_KEY; 1272*4882a593Smuzhiyun } MN_HA_KEY_MSG, *PMN_HA_KEY_MSG; 1273*4882a593Smuzhiyun 1274*4882a593Smuzhiyun typedef struct _MN_AAA_KEY_MSG 1275*4882a593Smuzhiyun { 1276*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1277*4882a593Smuzhiyun USHORT TLVLength; // 1278*4882a593Smuzhiyun UCHAR MN_AAA_KEY_LEN; 1279*4882a593Smuzhiyun UCHAR MN_AAA_KEY; 1280*4882a593Smuzhiyun } MN_AAA_KEY_MSG, *PMN_AAA_KEY_MSG; 1281*4882a593Smuzhiyun 1282*4882a593Smuzhiyun typedef struct _QMIDMS_ACTIVATE_MANUAL_REQ_MSG 1283*4882a593Smuzhiyun { 1284*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1285*4882a593Smuzhiyun USHORT Length; 1286*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1287*4882a593Smuzhiyun USHORT TLVLength; // 1288*4882a593Smuzhiyun UCHAR Value; 1289*4882a593Smuzhiyun } QMIDMS_ACTIVATE_MANUAL_REQ_MSG, *PQMIDMS_ACTIVATE_MANUAL_REQ_MSG; 1290*4882a593Smuzhiyun 1291*4882a593Smuzhiyun typedef struct _QMIDMS_ACTIVATE_MANUAL_RESP_MSG 1292*4882a593Smuzhiyun { 1293*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1294*4882a593Smuzhiyun USHORT Length; 1295*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1296*4882a593Smuzhiyun USHORT TLVLength; // 4 1297*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 1298*4882a593Smuzhiyun // QMI_RESULT_FAILURE 1299*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 1300*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 1301*4882a593Smuzhiyun // QMI_ERR_INTERNAL 1302*4882a593Smuzhiyun // QMI_ERR_FAULT 1303*4882a593Smuzhiyun } QMIDMS_ACTIVATE_MANUAL_RESP_MSG, *PQMIDMS_ACTIVATE_MANUAL_RESP_MSG; 1304*4882a593Smuzhiyun #endif 1305*4882a593Smuzhiyun 1306*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_GET_STATE_REQ_MSG 1307*4882a593Smuzhiyun { 1308*4882a593Smuzhiyun USHORT Type; 1309*4882a593Smuzhiyun USHORT Length; 1310*4882a593Smuzhiyun } __attribute__ ((packed)) QMIDMS_UIM_GET_STATE_REQ_MSG, *PQMIDMS_UIM_GET_STATE_REQ_MSG; 1311*4882a593Smuzhiyun 1312*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_GET_STATE_RESP_MSG 1313*4882a593Smuzhiyun { 1314*4882a593Smuzhiyun USHORT Type; 1315*4882a593Smuzhiyun USHORT Length; 1316*4882a593Smuzhiyun UCHAR TLVType; 1317*4882a593Smuzhiyun USHORT TLVLength; 1318*4882a593Smuzhiyun USHORT QMUXResult; 1319*4882a593Smuzhiyun USHORT QMUXError; 1320*4882a593Smuzhiyun UCHAR TLV2Type; 1321*4882a593Smuzhiyun USHORT TLV2Length; 1322*4882a593Smuzhiyun UCHAR UIMState; 1323*4882a593Smuzhiyun } __attribute__ ((packed)) QMIDMS_UIM_GET_STATE_RESP_MSG, *PQMIDMS_UIM_GET_STATE_RESP_MSG; 1324*4882a593Smuzhiyun 1325*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_GET_PIN_STATUS_REQ_MSG 1326*4882a593Smuzhiyun { 1327*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1328*4882a593Smuzhiyun USHORT Length; 1329*4882a593Smuzhiyun } __attribute__ ((packed)) QMIDMS_UIM_GET_PIN_STATUS_REQ_MSG, *PQMIDMS_UIM_GET_PIN_STATUS_REQ_MSG; 1330*4882a593Smuzhiyun 1331*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_PIN_STATUS 1332*4882a593Smuzhiyun { 1333*4882a593Smuzhiyun UCHAR TLVType; 1334*4882a593Smuzhiyun USHORT TLVLength; 1335*4882a593Smuzhiyun UCHAR PINStatus; 1336*4882a593Smuzhiyun UCHAR PINVerifyRetriesLeft; 1337*4882a593Smuzhiyun UCHAR PINUnblockRetriesLeft; 1338*4882a593Smuzhiyun } __attribute__ ((packed)) QMIDMS_UIM_PIN_STATUS, *PQMIDMS_UIM_PIN_STATUS; 1339*4882a593Smuzhiyun 1340*4882a593Smuzhiyun #define QMI_PIN_STATUS_NOT_INIT 0 1341*4882a593Smuzhiyun #define QMI_PIN_STATUS_NOT_VERIF 1 1342*4882a593Smuzhiyun #define QMI_PIN_STATUS_VERIFIED 2 1343*4882a593Smuzhiyun #define QMI_PIN_STATUS_DISABLED 3 1344*4882a593Smuzhiyun #define QMI_PIN_STATUS_BLOCKED 4 1345*4882a593Smuzhiyun #define QMI_PIN_STATUS_PERM_BLOCKED 5 1346*4882a593Smuzhiyun #define QMI_PIN_STATUS_UNBLOCKED 6 1347*4882a593Smuzhiyun #define QMI_PIN_STATUS_CHANGED 7 1348*4882a593Smuzhiyun 1349*4882a593Smuzhiyun 1350*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_GET_PIN_STATUS_RESP_MSG 1351*4882a593Smuzhiyun { 1352*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1353*4882a593Smuzhiyun USHORT Length; 1354*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1355*4882a593Smuzhiyun USHORT TLVLength; // 4 1356*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 1357*4882a593Smuzhiyun // QMI_RESULT_FAILURE 1358*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 1359*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 1360*4882a593Smuzhiyun // QMI_ERR_INTERNAL 1361*4882a593Smuzhiyun // QMI_ERR_FAULT 1362*4882a593Smuzhiyun UCHAR PinStatus; 1363*4882a593Smuzhiyun } __attribute__ ((packed)) QMIDMS_UIM_GET_PIN_STATUS_RESP_MSG, *PQMIDMS_UIM_GET_PIN_STATUS_RESP_MSG; 1364*4882a593Smuzhiyun 1365*4882a593Smuzhiyun #if 0 1366*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_GET_CK_STATUS_REQ_MSG 1367*4882a593Smuzhiyun { 1368*4882a593Smuzhiyun USHORT Type; 1369*4882a593Smuzhiyun USHORT Length; 1370*4882a593Smuzhiyun UCHAR TLVType; 1371*4882a593Smuzhiyun USHORT TLVLength; 1372*4882a593Smuzhiyun UCHAR Facility; 1373*4882a593Smuzhiyun } QMIDMS_UIM_GET_CK_STATUS_REQ_MSG, *PQMIDMS_UIM_GET_CK_STATUS_REQ_MSG; 1374*4882a593Smuzhiyun 1375*4882a593Smuzhiyun 1376*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_CK_STATUS 1377*4882a593Smuzhiyun { 1378*4882a593Smuzhiyun UCHAR TLVType; 1379*4882a593Smuzhiyun USHORT TLVLength; 1380*4882a593Smuzhiyun UCHAR FacilityStatus; 1381*4882a593Smuzhiyun UCHAR FacilityVerifyRetriesLeft; 1382*4882a593Smuzhiyun UCHAR FacilityUnblockRetriesLeft; 1383*4882a593Smuzhiyun } QMIDMS_UIM_CK_STATUS, *PQMIDMS_UIM_CK_STATUS; 1384*4882a593Smuzhiyun 1385*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_CK_OPERATION_STATUS 1386*4882a593Smuzhiyun { 1387*4882a593Smuzhiyun UCHAR TLVType; 1388*4882a593Smuzhiyun USHORT TLVLength; 1389*4882a593Smuzhiyun UCHAR OperationBlocking; 1390*4882a593Smuzhiyun } QMIDMS_UIM_CK_OPERATION_STATUS, *PQMIDMS_UIM_CK_OPERATION_STATUS; 1391*4882a593Smuzhiyun 1392*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_GET_CK_STATUS_RESP_MSG 1393*4882a593Smuzhiyun { 1394*4882a593Smuzhiyun USHORT Type; 1395*4882a593Smuzhiyun USHORT Length; 1396*4882a593Smuzhiyun UCHAR TLVType; 1397*4882a593Smuzhiyun USHORT TLVLength; 1398*4882a593Smuzhiyun USHORT QMUXResult; 1399*4882a593Smuzhiyun USHORT QMUXError; 1400*4882a593Smuzhiyun UCHAR CkStatus; 1401*4882a593Smuzhiyun } QMIDMS_UIM_GET_CK_STATUS_RESP_MSG, *PQMIDMS_UIM_GET_CK_STATUS_RESP_MSG; 1402*4882a593Smuzhiyun #endif 1403*4882a593Smuzhiyun 1404*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_VERIFY_PIN_REQ_MSG 1405*4882a593Smuzhiyun { 1406*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1407*4882a593Smuzhiyun USHORT Length; 1408*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1409*4882a593Smuzhiyun USHORT TLVLength; // 4 1410*4882a593Smuzhiyun UCHAR PINID; 1411*4882a593Smuzhiyun UCHAR PINLen; 1412*4882a593Smuzhiyun UCHAR PINValue; 1413*4882a593Smuzhiyun } __attribute__ ((packed)) QMIDMS_UIM_VERIFY_PIN_REQ_MSG, *PQMIDMS_UIM_VERIFY_PIN_REQ_MSG; 1414*4882a593Smuzhiyun 1415*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_VERIFY_PIN_RESP_MSG 1416*4882a593Smuzhiyun { 1417*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1418*4882a593Smuzhiyun USHORT Length; 1419*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1420*4882a593Smuzhiyun USHORT TLVLength; // 4 1421*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 1422*4882a593Smuzhiyun // QMI_RESULT_FAILURE 1423*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 1424*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 1425*4882a593Smuzhiyun // QMI_ERR_INTERNAL 1426*4882a593Smuzhiyun // QMI_ERR_FAULT 1427*4882a593Smuzhiyun UCHAR TLV2Type; 1428*4882a593Smuzhiyun USHORT TLV2Length; 1429*4882a593Smuzhiyun UCHAR PINVerifyRetriesLeft; 1430*4882a593Smuzhiyun UCHAR PINUnblockRetriesLeft; 1431*4882a593Smuzhiyun } __attribute__ ((packed)) QMIDMS_UIM_VERIFY_PIN_RESP_MSG, *PQMIDMS_UIM_VERIFY_PIN_RESP_MSG; 1432*4882a593Smuzhiyun 1433*4882a593Smuzhiyun #if 0 1434*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_SET_PIN_PROTECTION_REQ_MSG 1435*4882a593Smuzhiyun { 1436*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1437*4882a593Smuzhiyun USHORT Length; 1438*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1439*4882a593Smuzhiyun USHORT TLVLength; // 4 1440*4882a593Smuzhiyun UCHAR PINID; 1441*4882a593Smuzhiyun UCHAR ProtectionSetting; 1442*4882a593Smuzhiyun UCHAR PINLen; 1443*4882a593Smuzhiyun UCHAR PINValue; 1444*4882a593Smuzhiyun } QMIDMS_UIM_SET_PIN_PROTECTION_REQ_MSG, *PQMIDMS_UIM_SET_PIN_PROTECTION_REQ_MSG; 1445*4882a593Smuzhiyun 1446*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_SET_PIN_PROTECTION_RESP_MSG 1447*4882a593Smuzhiyun { 1448*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1449*4882a593Smuzhiyun USHORT Length; 1450*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1451*4882a593Smuzhiyun USHORT TLVLength; // 4 1452*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 1453*4882a593Smuzhiyun // QMI_RESULT_FAILURE 1454*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 1455*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 1456*4882a593Smuzhiyun // QMI_ERR_INTERNAL 1457*4882a593Smuzhiyun // QMI_ERR_FAULT 1458*4882a593Smuzhiyun UCHAR TLV2Type; 1459*4882a593Smuzhiyun USHORT TLV2Length; 1460*4882a593Smuzhiyun UCHAR PINVerifyRetriesLeft; 1461*4882a593Smuzhiyun UCHAR PINUnblockRetriesLeft; 1462*4882a593Smuzhiyun } QMIDMS_UIM_SET_PIN_PROTECTION_RESP_MSG, *PQMIDMS_UIM_SET_PIN_PROTECTION_RESP_MSG; 1463*4882a593Smuzhiyun 1464*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_SET_CK_PROTECTION_REQ_MSG 1465*4882a593Smuzhiyun { 1466*4882a593Smuzhiyun USHORT Type; 1467*4882a593Smuzhiyun USHORT Length; 1468*4882a593Smuzhiyun UCHAR TLVType; 1469*4882a593Smuzhiyun USHORT TLVLength; 1470*4882a593Smuzhiyun UCHAR Facility; 1471*4882a593Smuzhiyun UCHAR FacilityState; 1472*4882a593Smuzhiyun UCHAR FacliltyLen; 1473*4882a593Smuzhiyun UCHAR FacliltyValue; 1474*4882a593Smuzhiyun } QMIDMS_UIM_SET_CK_PROTECTION_REQ_MSG, *PQMIDMS_UIM_SET_CK_PROTECTION_REQ_MSG; 1475*4882a593Smuzhiyun 1476*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_SET_CK_PROTECTION_RESP_MSG 1477*4882a593Smuzhiyun { 1478*4882a593Smuzhiyun USHORT Type; 1479*4882a593Smuzhiyun USHORT Length; 1480*4882a593Smuzhiyun UCHAR TLVType; 1481*4882a593Smuzhiyun USHORT TLVLength; 1482*4882a593Smuzhiyun USHORT QMUXResult; 1483*4882a593Smuzhiyun USHORT QMUXError; 1484*4882a593Smuzhiyun UCHAR TLV2Type; 1485*4882a593Smuzhiyun USHORT TLV2Length; 1486*4882a593Smuzhiyun UCHAR FacilityRetriesLeft; 1487*4882a593Smuzhiyun } QMIDMS_UIM_SET_CK_PROTECTION_RESP_MSG, *PQMIDMS_UIM_SET_CK_PROTECTION_RESP_MSG; 1488*4882a593Smuzhiyun 1489*4882a593Smuzhiyun 1490*4882a593Smuzhiyun typedef struct _UIM_PIN 1491*4882a593Smuzhiyun { 1492*4882a593Smuzhiyun UCHAR PinLength; 1493*4882a593Smuzhiyun UCHAR PinValue; 1494*4882a593Smuzhiyun } UIM_PIN, *PUIM_PIN; 1495*4882a593Smuzhiyun 1496*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_CHANGE_PIN_REQ_MSG 1497*4882a593Smuzhiyun { 1498*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1499*4882a593Smuzhiyun USHORT Length; 1500*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1501*4882a593Smuzhiyun USHORT TLVLength; // 4 1502*4882a593Smuzhiyun UCHAR PINID; 1503*4882a593Smuzhiyun UCHAR PinDetails; 1504*4882a593Smuzhiyun } QMIDMS_UIM_CHANGE_PIN_REQ_MSG, *PQMIDMS_UIM_CHANGE_PIN_REQ_MSG; 1505*4882a593Smuzhiyun 1506*4882a593Smuzhiyun typedef struct QMIDMS_UIM_CHANGE_PIN_RESP_MSG 1507*4882a593Smuzhiyun { 1508*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1509*4882a593Smuzhiyun USHORT Length; 1510*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1511*4882a593Smuzhiyun USHORT TLVLength; // 4 1512*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 1513*4882a593Smuzhiyun // QMI_RESULT_FAILURE 1514*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 1515*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 1516*4882a593Smuzhiyun // QMI_ERR_INTERNAL 1517*4882a593Smuzhiyun // QMI_ERR_FAULT 1518*4882a593Smuzhiyun UCHAR TLV2Type; 1519*4882a593Smuzhiyun USHORT TLV2Length; 1520*4882a593Smuzhiyun UCHAR PINVerifyRetriesLeft; 1521*4882a593Smuzhiyun UCHAR PINUnblockRetriesLeft; 1522*4882a593Smuzhiyun } QMIDMS_UIM_CHANGE_PIN_RESP_MSG, *PQMIDMS_UIM_CHANGE_PIN_RESP_MSG; 1523*4882a593Smuzhiyun 1524*4882a593Smuzhiyun typedef struct _UIM_PUK 1525*4882a593Smuzhiyun { 1526*4882a593Smuzhiyun UCHAR PukLength; 1527*4882a593Smuzhiyun UCHAR PukValue; 1528*4882a593Smuzhiyun } UIM_PUK, *PUIM_PUK; 1529*4882a593Smuzhiyun 1530*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_UNBLOCK_PIN_REQ_MSG 1531*4882a593Smuzhiyun { 1532*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1533*4882a593Smuzhiyun USHORT Length; 1534*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1535*4882a593Smuzhiyun USHORT TLVLength; // 4 1536*4882a593Smuzhiyun UCHAR PINID; 1537*4882a593Smuzhiyun UCHAR PinDetails; 1538*4882a593Smuzhiyun } QMIDMS_UIM_UNBLOCK_PIN_REQ_MSG, *PQMIDMS_UIM_BLOCK_PIN_REQ_MSG; 1539*4882a593Smuzhiyun 1540*4882a593Smuzhiyun typedef struct QMIDMS_UIM_UNBLOCK_PIN_RESP_MSG 1541*4882a593Smuzhiyun { 1542*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0024 1543*4882a593Smuzhiyun USHORT Length; 1544*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1545*4882a593Smuzhiyun USHORT TLVLength; // 4 1546*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 1547*4882a593Smuzhiyun // QMI_RESULT_FAILURE 1548*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 1549*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 1550*4882a593Smuzhiyun // QMI_ERR_INTERNAL 1551*4882a593Smuzhiyun // QMI_ERR_FAULT 1552*4882a593Smuzhiyun UCHAR TLV2Type; 1553*4882a593Smuzhiyun USHORT TLV2Length; 1554*4882a593Smuzhiyun UCHAR PINVerifyRetriesLeft; 1555*4882a593Smuzhiyun UCHAR PINUnblockRetriesLeft; 1556*4882a593Smuzhiyun } QMIDMS_UIM_UNBLOCK_PIN_RESP_MSG, *PQMIDMS_UIM_UNBLOCK_PIN_RESP_MSG; 1557*4882a593Smuzhiyun 1558*4882a593Smuzhiyun typedef struct _QMIDMS_UIM_UNBLOCK_CK_REQ_MSG 1559*4882a593Smuzhiyun { 1560*4882a593Smuzhiyun USHORT Type; 1561*4882a593Smuzhiyun USHORT Length; 1562*4882a593Smuzhiyun UCHAR TLVType; 1563*4882a593Smuzhiyun USHORT TLVLength; 1564*4882a593Smuzhiyun UCHAR Facility; 1565*4882a593Smuzhiyun UCHAR FacliltyUnblockLen; 1566*4882a593Smuzhiyun UCHAR FacliltyUnblockValue; 1567*4882a593Smuzhiyun } QMIDMS_UIM_UNBLOCK_CK_REQ_MSG, *PQMIDMS_UIM_BLOCK_CK_REQ_MSG; 1568*4882a593Smuzhiyun 1569*4882a593Smuzhiyun typedef struct QMIDMS_UIM_UNBLOCK_CK_RESP_MSG 1570*4882a593Smuzhiyun { 1571*4882a593Smuzhiyun USHORT Type; 1572*4882a593Smuzhiyun USHORT Length; 1573*4882a593Smuzhiyun UCHAR TLVType; 1574*4882a593Smuzhiyun USHORT TLVLength; 1575*4882a593Smuzhiyun USHORT QMUXResult; 1576*4882a593Smuzhiyun USHORT QMUXError; 1577*4882a593Smuzhiyun UCHAR TLV2Type; 1578*4882a593Smuzhiyun USHORT TLV2Length; 1579*4882a593Smuzhiyun UCHAR FacilityUnblockRetriesLeft; 1580*4882a593Smuzhiyun } QMIDMS_UIM_UNBLOCK_CK_RESP_MSG, *PQMIDMS_UIM_UNBLOCK_CK_RESP_MSG; 1581*4882a593Smuzhiyun 1582*4882a593Smuzhiyun typedef struct _QMIDMS_SET_EVENT_REPORT_REQ_MSG 1583*4882a593Smuzhiyun { 1584*4882a593Smuzhiyun USHORT Type; 1585*4882a593Smuzhiyun USHORT Length; 1586*4882a593Smuzhiyun } QMIDMS_SET_EVENT_REPORT_REQ_MSG, *PQMIDMS_SET_EVENT_REPORT_REQ_MSG; 1587*4882a593Smuzhiyun 1588*4882a593Smuzhiyun typedef struct _QMIDMS_SET_EVENT_REPORT_RESP_MSG 1589*4882a593Smuzhiyun { 1590*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 1591*4882a593Smuzhiyun USHORT Length; 1592*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1593*4882a593Smuzhiyun USHORT TLVLength; // 4 1594*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 1595*4882a593Smuzhiyun // QMI_RESULT_FAILURE 1596*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 1597*4882a593Smuzhiyun } QMIDMS_SET_EVENT_REPORT_RESP_MSG, *PQMIDMS_SET_EVENT_REPORT_RESP_MSG; 1598*4882a593Smuzhiyun 1599*4882a593Smuzhiyun typedef struct _PIN_STATUS 1600*4882a593Smuzhiyun { 1601*4882a593Smuzhiyun UCHAR TLVType; 1602*4882a593Smuzhiyun USHORT TLVLength; 1603*4882a593Smuzhiyun UCHAR ReportPinState; 1604*4882a593Smuzhiyun } PIN_STATUS, *PPIN_STATUS; 1605*4882a593Smuzhiyun 1606*4882a593Smuzhiyun typedef struct _POWER_STATUS 1607*4882a593Smuzhiyun { 1608*4882a593Smuzhiyun UCHAR TLVType; 1609*4882a593Smuzhiyun USHORT TLVLength; 1610*4882a593Smuzhiyun UCHAR PowerStatus; 1611*4882a593Smuzhiyun UCHAR BatteryLvl; 1612*4882a593Smuzhiyun } POWER_STATUS, *PPOWER_STATUS; 1613*4882a593Smuzhiyun 1614*4882a593Smuzhiyun typedef struct _ACTIVATION_STATE 1615*4882a593Smuzhiyun { 1616*4882a593Smuzhiyun UCHAR TLVType; 1617*4882a593Smuzhiyun USHORT TLVLength; 1618*4882a593Smuzhiyun USHORT ActivationState; 1619*4882a593Smuzhiyun } ACTIVATION_STATE, *PACTIVATION_STATE; 1620*4882a593Smuzhiyun 1621*4882a593Smuzhiyun typedef struct _ACTIVATION_STATE_REQ 1622*4882a593Smuzhiyun { 1623*4882a593Smuzhiyun UCHAR TLVType; 1624*4882a593Smuzhiyun USHORT TLVLength; 1625*4882a593Smuzhiyun UCHAR ActivationState; 1626*4882a593Smuzhiyun } ACTIVATION_STATE_REQ, *PACTIVATION_STATE_REQ; 1627*4882a593Smuzhiyun 1628*4882a593Smuzhiyun typedef struct _OPERATING_MODE 1629*4882a593Smuzhiyun { 1630*4882a593Smuzhiyun UCHAR TLVType; 1631*4882a593Smuzhiyun USHORT TLVLength; 1632*4882a593Smuzhiyun UCHAR OperatingMode; 1633*4882a593Smuzhiyun } OPERATING_MODE, *POPERATING_MODE; 1634*4882a593Smuzhiyun 1635*4882a593Smuzhiyun typedef struct _UIM_STATE 1636*4882a593Smuzhiyun { 1637*4882a593Smuzhiyun UCHAR TLVType; 1638*4882a593Smuzhiyun USHORT TLVLength; 1639*4882a593Smuzhiyun UCHAR UIMState; 1640*4882a593Smuzhiyun } UIM_STATE, *PUIM_STATE; 1641*4882a593Smuzhiyun 1642*4882a593Smuzhiyun typedef struct _WIRELESS_DISABLE_STATE 1643*4882a593Smuzhiyun { 1644*4882a593Smuzhiyun UCHAR TLVType; 1645*4882a593Smuzhiyun USHORT TLVLength; 1646*4882a593Smuzhiyun UCHAR WirelessDisableState; 1647*4882a593Smuzhiyun } WIRELESS_DISABLE_STATE, *PWIRELESS_DISABLE_STATE; 1648*4882a593Smuzhiyun 1649*4882a593Smuzhiyun typedef struct _QMIDMS_EVENT_REPORT_IND_MSG 1650*4882a593Smuzhiyun { 1651*4882a593Smuzhiyun USHORT Type; 1652*4882a593Smuzhiyun USHORT Length; 1653*4882a593Smuzhiyun } QMIDMS_EVENT_REPORT_IND_MSG, *PQMIDMS_EVENT_REPORT_IND_MSG; 1654*4882a593Smuzhiyun #endif 1655*4882a593Smuzhiyun 1656*4882a593Smuzhiyun // ============================ END OF DMS =============================== 1657*4882a593Smuzhiyun 1658*4882a593Smuzhiyun // ======================= QOS ============================== 1659*4882a593Smuzhiyun typedef struct _MPIOC_DEV_INFO MPIOC_DEV_INFO, *PMPIOC_DEV_INFO; 1660*4882a593Smuzhiyun 1661*4882a593Smuzhiyun #define QMI_QOS_SET_EVENT_REPORT_REQ 0x0001 1662*4882a593Smuzhiyun #define QMI_QOS_SET_EVENT_REPORT_RESP 0x0001 1663*4882a593Smuzhiyun #define QMI_QOS_EVENT_REPORT_IND 0x0001 1664*4882a593Smuzhiyun 1665*4882a593Smuzhiyun #if 0 1666*4882a593Smuzhiyun typedef struct _QMI_QOS_SET_EVENT_REPORT_REQ_MSG 1667*4882a593Smuzhiyun { 1668*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0001 1669*4882a593Smuzhiyun USHORT Length; 1670*4882a593Smuzhiyun // UCHAR TLVType; // 0x01 - physical link state 1671*4882a593Smuzhiyun // USHORT TLVLength; // 1 1672*4882a593Smuzhiyun // UCHAR PhyLinkStatusRpt; // 0-enable; 1-disable 1673*4882a593Smuzhiyun UCHAR TLVType2; // 0x02 = global flow reporting 1674*4882a593Smuzhiyun USHORT TLVLength2; // 1 1675*4882a593Smuzhiyun UCHAR GlobalFlowRpt; // 1-enable; 0-disable 1676*4882a593Smuzhiyun } QMI_QOS_SET_EVENT_REPORT_REQ_MSG, *PQMI_QOS_SET_EVENT_REPORT_REQ_MSG; 1677*4882a593Smuzhiyun 1678*4882a593Smuzhiyun typedef struct _QMI_QOS_SET_EVENT_REPORT_RESP_MSG 1679*4882a593Smuzhiyun { 1680*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0010 1681*4882a593Smuzhiyun USHORT Length; 1682*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 1683*4882a593Smuzhiyun USHORT TLVLength; // 4 1684*4882a593Smuzhiyun USHORT QMUXResult; // QMUX_RESULT_SUCCESS 1685*4882a593Smuzhiyun // QMUX_RESULT_FAILURE 1686*4882a593Smuzhiyun USHORT QMUXError; // QMUX_ERR_INVALID_ARG 1687*4882a593Smuzhiyun // QMUX_ERR_NO_MEMORY 1688*4882a593Smuzhiyun // QMUX_ERR_INTERNAL 1689*4882a593Smuzhiyun // QMUX_ERR_FAULT 1690*4882a593Smuzhiyun } QMI_QOS_SET_EVENT_REPORT_RESP_MSG, *PQMI_QOS_SET_EVENT_REPORT_RESP_MSG; 1691*4882a593Smuzhiyun 1692*4882a593Smuzhiyun typedef struct _QMI_QOS_EVENT_REPORT_IND_MSG 1693*4882a593Smuzhiyun { 1694*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0001 1695*4882a593Smuzhiyun USHORT Length; 1696*4882a593Smuzhiyun UCHAR TLVs; 1697*4882a593Smuzhiyun } QMI_QOS_EVENT_REPORT_IND_MSG, *PQMI_QOS_EVENT_REPORT_IND_MSG; 1698*4882a593Smuzhiyun 1699*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_FLOW_ACTIVATED 0x01 1700*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_FLOW_MODIFIED 0x02 1701*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_FLOW_DELETED 0x03 1702*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_FLOW_SUSPENDED 0x04 1703*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_FLOW_ENABLED 0x05 1704*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_FLOW_DISABLED 0x06 1705*4882a593Smuzhiyun 1706*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_TLV_PHY_LINK_STATE_TYPE 0x01 1707*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_TLV_GLOBAL_FL_RPT_STATE 0x10 1708*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_TLV_GLOBAL_FL_RPT_TYPE 0x10 1709*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_TLV_TX_FLOW_TYPE 0x11 1710*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_TLV_RX_FLOW_TYPE 0x12 1711*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_TLV_TX_FILTER_TYPE 0x13 1712*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_TLV_RX_FILTER_TYPE 0x14 1713*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_TLV_FLOW_SPEC 0x10 1714*4882a593Smuzhiyun #define QOS_EVENT_RPT_IND_TLV_FILTER_SPEC 0x10 1715*4882a593Smuzhiyun 1716*4882a593Smuzhiyun typedef struct _QOS_EVENT_RPT_IND_TLV_PHY_LINK_STATE 1717*4882a593Smuzhiyun { 1718*4882a593Smuzhiyun UCHAR TLVType; // 0x01 1719*4882a593Smuzhiyun USHORT TLVLength; // 1 1720*4882a593Smuzhiyun UCHAR PhyLinkState; // 0-dormant, 1-active 1721*4882a593Smuzhiyun } QOS_EVENT_RPT_IND_TLV_PHY_LINK_STATE, *PQOS_EVENT_RPT_IND_TLV_PHY_LINK_STATE; 1722*4882a593Smuzhiyun 1723*4882a593Smuzhiyun typedef struct _QOS_EVENT_RPT_IND_TLV_GLOBAL_FL_RPT 1724*4882a593Smuzhiyun { 1725*4882a593Smuzhiyun UCHAR TLVType; // 0x10 1726*4882a593Smuzhiyun USHORT TLVLength; // 6 1727*4882a593Smuzhiyun ULONG QosId; 1728*4882a593Smuzhiyun UCHAR NewFlow; // 1: newly added flow; 0: existing flow 1729*4882a593Smuzhiyun UCHAR StateChange; // 1: activated; 2: modified; 3: deleted; 1730*4882a593Smuzhiyun // 4: suspended(delete); 5: enabled; 6: disabled 1731*4882a593Smuzhiyun } QOS_EVENT_RPT_IND_TLV_GLOBAL_FL_RPT, *PQOS_EVENT_RPT_IND_TLV_GLOBAL_FL_RPT; 1732*4882a593Smuzhiyun 1733*4882a593Smuzhiyun // QOS Flow 1734*4882a593Smuzhiyun 1735*4882a593Smuzhiyun typedef struct _QOS_EVENT_RPT_IND_TLV_FLOW 1736*4882a593Smuzhiyun { 1737*4882a593Smuzhiyun UCHAR TLVType; // 0x10-TX flow; 0x11-RX flow 1738*4882a593Smuzhiyun USHORT TLVLength; // var 1739*4882a593Smuzhiyun // embedded TLV's 1740*4882a593Smuzhiyun } QOS_EVENT_RPT_IND_TLV_TX_FLOW, *PQOS_EVENT_RPT_IND_TLV_TX_FLOW; 1741*4882a593Smuzhiyun 1742*4882a593Smuzhiyun #define QOS_FLOW_TLV_IP_FLOW_IDX_TYPE 0x10 1743*4882a593Smuzhiyun #define QOS_FLOW_TLV_IP_FLOW_TRAFFIC_CLASS_TYPE 0x11 1744*4882a593Smuzhiyun #define QOS_FLOW_TLV_IP_FLOW_DATA_RATE_MIN_MAX_TYPE 0x12 1745*4882a593Smuzhiyun #define QOS_FLOW_TLV_IP_FLOW_DATA_RATE_TOKEN_BUCKET_TYPE 0x13 1746*4882a593Smuzhiyun #define QOS_FLOW_TLV_IP_FLOW_LATENCY_TYPE 0x14 1747*4882a593Smuzhiyun #define QOS_FLOW_TLV_IP_FLOW_JITTER_TYPE 0x15 1748*4882a593Smuzhiyun #define QOS_FLOW_TLV_IP_FLOW_PKT_ERR_RATE_TYPE 0x16 1749*4882a593Smuzhiyun #define QOS_FLOW_TLV_IP_FLOW_MIN_PKT_SIZE_TYPE 0x17 1750*4882a593Smuzhiyun #define QOS_FLOW_TLV_IP_FLOW_MAX_PKT_SIZE_TYPE 0x18 1751*4882a593Smuzhiyun #define QOS_FLOW_TLV_IP_FLOW_3GPP_BIT_ERR_RATE_TYPE 0x19 1752*4882a593Smuzhiyun #define QOS_FLOW_TLV_IP_FLOW_3GPP_TRAF_PRIORITY_TYPE 0x1A 1753*4882a593Smuzhiyun #define QOS_FLOW_TLV_IP_FLOW_3GPP2_PROFILE_ID_TYPE 0x1B 1754*4882a593Smuzhiyun 1755*4882a593Smuzhiyun typedef struct _QOS_FLOW_TLV_IP_FLOW_IDX 1756*4882a593Smuzhiyun { 1757*4882a593Smuzhiyun UCHAR TLVType; // 0x10 1758*4882a593Smuzhiyun USHORT TLVLength; // 1 1759*4882a593Smuzhiyun UCHAR IpFlowIndex; 1760*4882a593Smuzhiyun } QOS_FLOW_TLV_IP_FLOW_IDX, *PQOS_FLOW_TLV_IP_FLOW_IDX; 1761*4882a593Smuzhiyun 1762*4882a593Smuzhiyun typedef struct _QOS_FLOW_TLV_IP_FLOW_TRAFFIC_CLASS 1763*4882a593Smuzhiyun { 1764*4882a593Smuzhiyun UCHAR TLVType; // 0x11 1765*4882a593Smuzhiyun USHORT TLVLength; // 1 1766*4882a593Smuzhiyun UCHAR TrafficClass; 1767*4882a593Smuzhiyun } QOS_FLOW_TLV_IP_FLOW_TRAFFIC_CLASS, *PQOS_FLOW_TLV_IP_FLOW_TRAFFIC_CLASS; 1768*4882a593Smuzhiyun 1769*4882a593Smuzhiyun typedef struct _QOS_FLOW_TLV_IP_FLOW_DATA_RATE_MIN_MAX 1770*4882a593Smuzhiyun { 1771*4882a593Smuzhiyun UCHAR TLVType; // 0x12 1772*4882a593Smuzhiyun USHORT TLVLength; // 8 1773*4882a593Smuzhiyun ULONG DataRateMax; 1774*4882a593Smuzhiyun ULONG GuaranteedRate; 1775*4882a593Smuzhiyun } QOS_FLOW_TLV_IP_FLOW_DATA_RATE_MIN_MAX, *PQOS_FLOW_TLV_IP_FLOW_DATA_RATE_MIN_MAX; 1776*4882a593Smuzhiyun 1777*4882a593Smuzhiyun typedef struct _QOS_FLOW_TLV_IP_FLOW_DATA_RATE_TOKEN_BUCKET 1778*4882a593Smuzhiyun { 1779*4882a593Smuzhiyun UCHAR TLVType; // 0x13 1780*4882a593Smuzhiyun USHORT TLVLength; // 12 1781*4882a593Smuzhiyun ULONG PeakRate; 1782*4882a593Smuzhiyun ULONG TokenRate; 1783*4882a593Smuzhiyun ULONG BucketSize; 1784*4882a593Smuzhiyun } QOS_FLOW_TLV_IP_FLOW_DATA_RATE_TOKEN_BUCKET, *PQOS_FLOW_TLV_IP_FLOW_DATA_RATE_TOKEN_BUCKET; 1785*4882a593Smuzhiyun 1786*4882a593Smuzhiyun typedef struct _QOS_FLOW_TLV_IP_FLOW_LATENCY 1787*4882a593Smuzhiyun { 1788*4882a593Smuzhiyun UCHAR TLVType; // 0x14 1789*4882a593Smuzhiyun USHORT TLVLength; // 4 1790*4882a593Smuzhiyun ULONG IpFlowLatency; 1791*4882a593Smuzhiyun } QOS_FLOW_TLV_IP_FLOW_LATENCY, *PQOS_FLOW_TLV_IP_FLOW_LATENCY; 1792*4882a593Smuzhiyun 1793*4882a593Smuzhiyun typedef struct _QOS_FLOW_TLV_IP_FLOW_JITTER 1794*4882a593Smuzhiyun { 1795*4882a593Smuzhiyun UCHAR TLVType; // 0x15 1796*4882a593Smuzhiyun USHORT TLVLength; // 4 1797*4882a593Smuzhiyun ULONG IpFlowJitter; 1798*4882a593Smuzhiyun } QOS_FLOW_TLV_IP_FLOW_JITTER, *PQOS_FLOW_TLV_IP_FLOW_JITTER; 1799*4882a593Smuzhiyun 1800*4882a593Smuzhiyun typedef struct _QOS_FLOW_TLV_IP_FLOW_PKT_ERR_RATE 1801*4882a593Smuzhiyun { 1802*4882a593Smuzhiyun UCHAR TLVType; // 0x16 1803*4882a593Smuzhiyun USHORT TLVLength; // 4 1804*4882a593Smuzhiyun USHORT ErrRateMultiplier; 1805*4882a593Smuzhiyun USHORT ErrRateExponent; 1806*4882a593Smuzhiyun } QOS_FLOW_TLV_IP_FLOW_PKT_ERR_RATE, *PQOS_FLOW_TLV_IP_FLOW_PKT_ERR_RATE; 1807*4882a593Smuzhiyun 1808*4882a593Smuzhiyun typedef struct _QOS_FLOW_TLV_IP_FLOW_MIN_PKT_SIZE 1809*4882a593Smuzhiyun { 1810*4882a593Smuzhiyun UCHAR TLVType; // 0x17 1811*4882a593Smuzhiyun USHORT TLVLength; // 4 1812*4882a593Smuzhiyun ULONG MinPolicedPktSize; 1813*4882a593Smuzhiyun } QOS_FLOW_TLV_IP_FLOW_MIN_PKT_SIZE, *PQOS_FLOW_TLV_IP_FLOW_MIN_PKT_SIZE; 1814*4882a593Smuzhiyun 1815*4882a593Smuzhiyun typedef struct _QOS_FLOW_TLV_IP_FLOW_MAX_PKT_SIZE 1816*4882a593Smuzhiyun { 1817*4882a593Smuzhiyun UCHAR TLVType; // 0x18 1818*4882a593Smuzhiyun USHORT TLVLength; // 4 1819*4882a593Smuzhiyun ULONG MaxAllowedPktSize; 1820*4882a593Smuzhiyun } QOS_FLOW_TLV_IP_FLOW_MAX_PKT_SIZE, *PQOS_FLOW_TLV_IP_FLOW_MAX_PKT_SIZE; 1821*4882a593Smuzhiyun 1822*4882a593Smuzhiyun typedef struct _QOS_FLOW_TLV_IP_FLOW_3GPP_BIT_ERR_RATE 1823*4882a593Smuzhiyun { 1824*4882a593Smuzhiyun UCHAR TLVType; // 0x19 1825*4882a593Smuzhiyun USHORT TLVLength; // 1 1826*4882a593Smuzhiyun UCHAR ResidualBitErrorRate; 1827*4882a593Smuzhiyun } QOS_FLOW_TLV_IP_FLOW_3GPP_BIT_ERR_RATE, *PQOS_FLOW_TLV_IP_FLOW_3GPP_BIT_ERR_RATE; 1828*4882a593Smuzhiyun 1829*4882a593Smuzhiyun typedef struct _QOS_FLOW_TLV_IP_FLOW_3GPP_TRAF_PRIORITY 1830*4882a593Smuzhiyun { 1831*4882a593Smuzhiyun UCHAR TLVType; // 0x1A 1832*4882a593Smuzhiyun USHORT TLVLength; // 1 1833*4882a593Smuzhiyun UCHAR TrafficHandlingPriority; 1834*4882a593Smuzhiyun } QOS_FLOW_TLV_IP_FLOW_3GPP_TRAF_PRIORITY, *PQOS_FLOW_TLV_IP_FLOW_3GPP_TRAF_PRIORITY; 1835*4882a593Smuzhiyun 1836*4882a593Smuzhiyun typedef struct _QOS_FLOW_TLV_IP_FLOW_3GPP2_PROFILE_ID 1837*4882a593Smuzhiyun { 1838*4882a593Smuzhiyun UCHAR TLVType; // 0x1B 1839*4882a593Smuzhiyun USHORT TLVLength; // 2 1840*4882a593Smuzhiyun USHORT ProfileId; 1841*4882a593Smuzhiyun } QOS_FLOW_TLV_IP_FLOW_3GPP2_PROFILE_ID, *PQOS_FLOW_TLV_IP_FLOW_3GPP2_PROFILE_ID; 1842*4882a593Smuzhiyun 1843*4882a593Smuzhiyun // QOS Filter 1844*4882a593Smuzhiyun 1845*4882a593Smuzhiyun #define QOS_FILTER_TLV_IP_FILTER_IDX_TYPE 0x10 1846*4882a593Smuzhiyun #define QOS_FILTER_TLV_IP_VERSION_TYPE 0x11 1847*4882a593Smuzhiyun #define QOS_FILTER_TLV_IPV4_SRC_ADDR_TYPE 0x12 1848*4882a593Smuzhiyun #define QOS_FILTER_TLV_IPV4_DEST_ADDR_TYPE 0x13 1849*4882a593Smuzhiyun #define QOS_FILTER_TLV_NEXT_HDR_PROTOCOL_TYPE 0x14 1850*4882a593Smuzhiyun #define QOS_FILTER_TLV_IPV4_TYPE_OF_SERVICE_TYPE 0x15 1851*4882a593Smuzhiyun #define QOS_FILTER_TLV_TCP_UDP_PORT_SRC_TCP_TYPE 0x1B 1852*4882a593Smuzhiyun #define QOS_FILTER_TLV_TCP_UDP_PORT_DEST_TCP_TYPE 0x1C 1853*4882a593Smuzhiyun #define QOS_FILTER_TLV_TCP_UDP_PORT_SRC_UDP_TYPE 0x1D 1854*4882a593Smuzhiyun #define QOS_FILTER_TLV_TCP_UDP_PORT_DEST_UDP_TYPE 0x1E 1855*4882a593Smuzhiyun #define QOS_FILTER_TLV_ICMP_FILTER_MSG_TYPE_TYPE 0x1F 1856*4882a593Smuzhiyun #define QOS_FILTER_TLV_ICMP_FILTER_MSG_CODE_TYPE 0x20 1857*4882a593Smuzhiyun #define QOS_FILTER_TLV_TCP_UDP_PORT_SRC_TYPE 0x24 1858*4882a593Smuzhiyun #define QOS_FILTER_TLV_TCP_UDP_PORT_DEST_TYPE 0x25 1859*4882a593Smuzhiyun 1860*4882a593Smuzhiyun typedef struct _QOS_EVENT_RPT_IND_TLV_FILTER 1861*4882a593Smuzhiyun { 1862*4882a593Smuzhiyun UCHAR TLVType; // 0x12-TX filter; 0x13-RX filter 1863*4882a593Smuzhiyun USHORT TLVLength; // var 1864*4882a593Smuzhiyun // embedded TLV's 1865*4882a593Smuzhiyun } QOS_EVENT_RPT_IND_TLV_RX_FILTER, *PQOS_EVENT_RPT_IND_TLV_RX_FILTER; 1866*4882a593Smuzhiyun 1867*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_IP_FILTER_IDX 1868*4882a593Smuzhiyun { 1869*4882a593Smuzhiyun UCHAR TLVType; // 0x10 1870*4882a593Smuzhiyun USHORT TLVLength; // 1 1871*4882a593Smuzhiyun UCHAR IpFilterIndex; 1872*4882a593Smuzhiyun } QOS_FILTER_TLV_IP_FILTER_IDX, *PQOS_FILTER_TLV_IP_FILTER_IDX; 1873*4882a593Smuzhiyun 1874*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_IP_VERSION 1875*4882a593Smuzhiyun { 1876*4882a593Smuzhiyun UCHAR TLVType; // 0x11 1877*4882a593Smuzhiyun USHORT TLVLength; // 1 1878*4882a593Smuzhiyun UCHAR IpVersion; 1879*4882a593Smuzhiyun } QOS_FILTER_TLV_IP_VERSION, *PQOS_FILTER_TLV_IP_VERSION; 1880*4882a593Smuzhiyun 1881*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_IPV4_SRC_ADDR 1882*4882a593Smuzhiyun { 1883*4882a593Smuzhiyun UCHAR TLVType; // 0x12 1884*4882a593Smuzhiyun USHORT TLVLength; // 8 1885*4882a593Smuzhiyun ULONG IpSrcAddr; 1886*4882a593Smuzhiyun ULONG IpSrcSubnetMask; 1887*4882a593Smuzhiyun } QOS_FILTER_TLV_IPV4_SRC_ADDR, *PQOS_FILTER_TLV_IPV4_SRC_ADDR; 1888*4882a593Smuzhiyun 1889*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_IPV4_DEST_ADDR 1890*4882a593Smuzhiyun { 1891*4882a593Smuzhiyun UCHAR TLVType; // 0x13 1892*4882a593Smuzhiyun USHORT TLVLength; // 8 1893*4882a593Smuzhiyun ULONG IpDestAddr; 1894*4882a593Smuzhiyun ULONG IpDestSubnetMask; 1895*4882a593Smuzhiyun } QOS_FILTER_TLV_IPV4_DEST_ADDR, *PQOS_FILTER_TLV_IPV4_DEST_ADDR; 1896*4882a593Smuzhiyun 1897*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_NEXT_HDR_PROTOCOL 1898*4882a593Smuzhiyun { 1899*4882a593Smuzhiyun UCHAR TLVType; // 0x14 1900*4882a593Smuzhiyun USHORT TLVLength; // 1 1901*4882a593Smuzhiyun UCHAR NextHdrProtocol; 1902*4882a593Smuzhiyun } QOS_FILTER_TLV_NEXT_HDR_PROTOCOL, *PQOS_FILTER_TLV_NEXT_HDR_PROTOCOL; 1903*4882a593Smuzhiyun 1904*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_IPV4_TYPE_OF_SERVICE 1905*4882a593Smuzhiyun { 1906*4882a593Smuzhiyun UCHAR TLVType; // 0x15 1907*4882a593Smuzhiyun USHORT TLVLength; // 2 1908*4882a593Smuzhiyun UCHAR Ipv4TypeOfService; 1909*4882a593Smuzhiyun UCHAR Ipv4TypeOfServiceMask; 1910*4882a593Smuzhiyun } QOS_FILTER_TLV_IPV4_TYPE_OF_SERVICE, *PQOS_FILTER_TLV_IPV4_TYPE_OF_SERVICE; 1911*4882a593Smuzhiyun 1912*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_TCP_UDP_PORT 1913*4882a593Smuzhiyun { 1914*4882a593Smuzhiyun UCHAR TLVType; // source port: 0x1B-TCP; 0x1D-UDP 1915*4882a593Smuzhiyun // dest port: 0x1C-TCP; 0x1E-UDP 1916*4882a593Smuzhiyun USHORT TLVLength; // 4 1917*4882a593Smuzhiyun USHORT FilterPort; 1918*4882a593Smuzhiyun USHORT FilterPortRange; 1919*4882a593Smuzhiyun } QOS_FILTER_TLV_TCP_UDP_PORT, *PQOS_FILTER_TLV_TCP_UDP_PORT; 1920*4882a593Smuzhiyun 1921*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_ICMP_FILTER_MSG_TYPE 1922*4882a593Smuzhiyun { 1923*4882a593Smuzhiyun UCHAR TLVType; // 0x1F 1924*4882a593Smuzhiyun USHORT TLVLength; // 1 1925*4882a593Smuzhiyun UCHAR IcmpFilterMsgType; 1926*4882a593Smuzhiyun } QOS_FILTER_TLV_ICMP_FILTER_MSG_TYPE, *PQOS_FILTER_TLV_ICMP_FILTER_MSG_TYPE; 1927*4882a593Smuzhiyun 1928*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_ICMP_FILTER_MSG_CODE 1929*4882a593Smuzhiyun { 1930*4882a593Smuzhiyun UCHAR TLVType; // 0x20 1931*4882a593Smuzhiyun USHORT TLVLength; // 1 1932*4882a593Smuzhiyun UCHAR IcmpFilterMsgCode; 1933*4882a593Smuzhiyun } QOS_FILTER_TLV_ICMP_FILTER_MSG_CODE, *PQOS_FILTER_TLV_ICMP_FILTER_MSG_CODE; 1934*4882a593Smuzhiyun 1935*4882a593Smuzhiyun #define QOS_FILTER_PRECEDENCE_INVALID 256 1936*4882a593Smuzhiyun #define QOS_FILTER_TLV_PRECEDENCE_TYPE 0x22 1937*4882a593Smuzhiyun #define QOS_FILTER_TLV_ID_TYPE 0x23 1938*4882a593Smuzhiyun 1939*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_PRECEDENCE 1940*4882a593Smuzhiyun { 1941*4882a593Smuzhiyun UCHAR TLVType; // 0x22 1942*4882a593Smuzhiyun USHORT TLVLength; // 2 1943*4882a593Smuzhiyun USHORT Precedence; // precedence of the filter 1944*4882a593Smuzhiyun } QOS_FILTER_TLV_PRECEDENCE, *PQOS_FILTER_TLV_PRECEDENCE; 1945*4882a593Smuzhiyun 1946*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_ID 1947*4882a593Smuzhiyun { 1948*4882a593Smuzhiyun UCHAR TLVType; // 0x23 1949*4882a593Smuzhiyun USHORT TLVLength; // 2 1950*4882a593Smuzhiyun USHORT FilterId; // filter ID 1951*4882a593Smuzhiyun } QOS_FILTER_TLV_ID, *PQOS_FILTER_TLV_ID; 1952*4882a593Smuzhiyun 1953*4882a593Smuzhiyun #ifdef QCQOS_IPV6 1954*4882a593Smuzhiyun 1955*4882a593Smuzhiyun #define QOS_FILTER_TLV_IPV6_SRC_ADDR_TYPE 0x16 1956*4882a593Smuzhiyun #define QOS_FILTER_TLV_IPV6_DEST_ADDR_TYPE 0x17 1957*4882a593Smuzhiyun #define QOS_FILTER_TLV_IPV6_NEXT_HDR_PROTOCOL_TYPE 0x14 // same as IPV4 1958*4882a593Smuzhiyun #define QOS_FILTER_TLV_IPV6_TRAFFIC_CLASS_TYPE 0x19 1959*4882a593Smuzhiyun #define QOS_FILTER_TLV_IPV6_FLOW_LABEL_TYPE 0x1A 1960*4882a593Smuzhiyun 1961*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_IPV6_SRC_ADDR 1962*4882a593Smuzhiyun { 1963*4882a593Smuzhiyun UCHAR TLVType; // 0x16 1964*4882a593Smuzhiyun USHORT TLVLength; // 17 1965*4882a593Smuzhiyun UCHAR IpSrcAddr[16]; 1966*4882a593Smuzhiyun UCHAR IpSrcAddrPrefixLen; // [0..128] 1967*4882a593Smuzhiyun } QOS_FILTER_TLV_IPV6_SRC_ADDR, *PQOS_FILTER_TLV_IPV6_SRC_ADDR; 1968*4882a593Smuzhiyun 1969*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_IPV6_DEST_ADDR 1970*4882a593Smuzhiyun { 1971*4882a593Smuzhiyun UCHAR TLVType; // 0x17 1972*4882a593Smuzhiyun USHORT TLVLength; // 17 1973*4882a593Smuzhiyun UCHAR IpDestAddr[16]; 1974*4882a593Smuzhiyun UCHAR IpDestAddrPrefixLen; // [0..128] 1975*4882a593Smuzhiyun } QOS_FILTER_TLV_IPV6_DEST_ADDR, *PQOS_FILTER_TLV_IPV6_DEST_ADDR; 1976*4882a593Smuzhiyun 1977*4882a593Smuzhiyun #define QOS_FILTER_IPV6_NEXT_HDR_PROTOCOL_TCP 0x06 1978*4882a593Smuzhiyun #define QOS_FILTER_IPV6_NEXT_HDR_PROTOCOL_UDP 0x11 1979*4882a593Smuzhiyun 1980*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_IPV6_TRAFFIC_CLASS 1981*4882a593Smuzhiyun { 1982*4882a593Smuzhiyun UCHAR TLVType; // 0x19 1983*4882a593Smuzhiyun USHORT TLVLength; // 2 1984*4882a593Smuzhiyun UCHAR TrafficClass; 1985*4882a593Smuzhiyun UCHAR TrafficClassMask; // compare the first 6 bits only 1986*4882a593Smuzhiyun } QOS_FILTER_TLV_IPV6_TRAFFIC_CLASS, *PQOS_FILTER_TLV_IPV6_TRAFFIC_CLASS; 1987*4882a593Smuzhiyun 1988*4882a593Smuzhiyun typedef struct _QOS_FILTER_TLV_IPV6_FLOW_LABEL 1989*4882a593Smuzhiyun { 1990*4882a593Smuzhiyun UCHAR TLVType; // 0x1A 1991*4882a593Smuzhiyun USHORT TLVLength; // 4 1992*4882a593Smuzhiyun ULONG FlowLabel; 1993*4882a593Smuzhiyun } QOS_FILTER_TLV_IPV6_FLOW_LABEL, *PQOS_FILTER_TLV_IPV6_FLOW_LABEL; 1994*4882a593Smuzhiyun 1995*4882a593Smuzhiyun #endif // QCQOS_IPV6 1996*4882a593Smuzhiyun #endif 1997*4882a593Smuzhiyun 1998*4882a593Smuzhiyun // ======================= WMS ============================== 1999*4882a593Smuzhiyun #define QMIWMS_SET_EVENT_REPORT_REQ 0x0001 2000*4882a593Smuzhiyun #define QMIWMS_SET_EVENT_REPORT_RESP 0x0001 2001*4882a593Smuzhiyun #define QMIWMS_EVENT_REPORT_IND 0x0001 2002*4882a593Smuzhiyun #define QMIWMS_RAW_SEND_REQ 0x0020 2003*4882a593Smuzhiyun #define QMIWMS_RAW_SEND_RESP 0x0020 2004*4882a593Smuzhiyun #define QMIWMS_RAW_WRITE_REQ 0x0021 2005*4882a593Smuzhiyun #define QMIWMS_RAW_WRITE_RESP 0x0021 2006*4882a593Smuzhiyun #define QMIWMS_RAW_READ_REQ 0x0022 2007*4882a593Smuzhiyun #define QMIWMS_RAW_READ_RESP 0x0022 2008*4882a593Smuzhiyun #define QMIWMS_MODIFY_TAG_REQ 0x0023 2009*4882a593Smuzhiyun #define QMIWMS_MODIFY_TAG_RESP 0x0023 2010*4882a593Smuzhiyun #define QMIWMS_DELETE_REQ 0x0024 2011*4882a593Smuzhiyun #define QMIWMS_DELETE_RESP 0x0024 2012*4882a593Smuzhiyun #define QMIWMS_GET_MESSAGE_PROTOCOL_REQ 0x0030 2013*4882a593Smuzhiyun #define QMIWMS_GET_MESSAGE_PROTOCOL_RESP 0x0030 2014*4882a593Smuzhiyun #define QMIWMS_LIST_MESSAGES_REQ 0x0031 2015*4882a593Smuzhiyun #define QMIWMS_LIST_MESSAGES_RESP 0x0031 2016*4882a593Smuzhiyun #define QMIWMS_GET_SMSC_ADDRESS_REQ 0x0034 2017*4882a593Smuzhiyun #define QMIWMS_GET_SMSC_ADDRESS_RESP 0x0034 2018*4882a593Smuzhiyun #define QMIWMS_SET_SMSC_ADDRESS_REQ 0x0035 2019*4882a593Smuzhiyun #define QMIWMS_SET_SMSC_ADDRESS_RESP 0x0035 2020*4882a593Smuzhiyun #define QMIWMS_GET_STORE_MAX_SIZE_REQ 0x0036 2021*4882a593Smuzhiyun #define QMIWMS_GET_STORE_MAX_SIZE_RESP 0x0036 2022*4882a593Smuzhiyun 2023*4882a593Smuzhiyun 2024*4882a593Smuzhiyun #define WMS_MESSAGE_PROTOCOL_CDMA 0x00 2025*4882a593Smuzhiyun #define WMS_MESSAGE_PROTOCOL_WCDMA 0x01 2026*4882a593Smuzhiyun 2027*4882a593Smuzhiyun #if 0 2028*4882a593Smuzhiyun typedef struct _QMIWMS_GET_MESSAGE_PROTOCOL_REQ_MSG 2029*4882a593Smuzhiyun { 2030*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2031*4882a593Smuzhiyun USHORT Length; 2032*4882a593Smuzhiyun } QMIWMS_GET_MESSAGE_PROTOCOL_REQ_MSG, *PQMIWMS_GET_MESSAGE_PROTOCOL_REQ_MSG; 2033*4882a593Smuzhiyun 2034*4882a593Smuzhiyun typedef struct _QMIWMS_GET_MESSAGE_PROTOCOL_RESP_MSG 2035*4882a593Smuzhiyun { 2036*4882a593Smuzhiyun USHORT Type; 2037*4882a593Smuzhiyun USHORT Length; 2038*4882a593Smuzhiyun UCHAR TLVType; 2039*4882a593Smuzhiyun USHORT TLVLength; 2040*4882a593Smuzhiyun USHORT QMUXResult; 2041*4882a593Smuzhiyun USHORT QMUXError; 2042*4882a593Smuzhiyun UCHAR TLV2Type; 2043*4882a593Smuzhiyun USHORT TLV2Length; 2044*4882a593Smuzhiyun UCHAR MessageProtocol; 2045*4882a593Smuzhiyun } QMIWMS_GET_MESSAGE_PROTOCOL_RESP_MSG, *PQMIWMS_GET_MESSAGE_PROTOCOL_RESP_MSG; 2046*4882a593Smuzhiyun 2047*4882a593Smuzhiyun typedef struct _QMIWMS_GET_STORE_MAX_SIZE_REQ_MSG 2048*4882a593Smuzhiyun { 2049*4882a593Smuzhiyun USHORT Type; 2050*4882a593Smuzhiyun USHORT Length; 2051*4882a593Smuzhiyun UCHAR TLVType; 2052*4882a593Smuzhiyun USHORT TLVLength; 2053*4882a593Smuzhiyun UCHAR StorageType; 2054*4882a593Smuzhiyun } QMIWMS_GET_STORE_MAX_SIZE_REQ_MSG, *PQMIWMS_GET_STORE_MAX_SIZE_REQ_MSG; 2055*4882a593Smuzhiyun 2056*4882a593Smuzhiyun typedef struct _QMIWMS_GET_STORE_MAX_SIZE_RESP_MSG 2057*4882a593Smuzhiyun { 2058*4882a593Smuzhiyun USHORT Type; 2059*4882a593Smuzhiyun USHORT Length; 2060*4882a593Smuzhiyun UCHAR TLVType; 2061*4882a593Smuzhiyun USHORT TLVLength; 2062*4882a593Smuzhiyun USHORT QMUXResult; 2063*4882a593Smuzhiyun USHORT QMUXError; 2064*4882a593Smuzhiyun UCHAR TLV2Type; 2065*4882a593Smuzhiyun USHORT TLV2Length; 2066*4882a593Smuzhiyun ULONG MemStoreMaxSize; 2067*4882a593Smuzhiyun } QMIWMS_GET_STORE_MAX_SIZE_RESP_MSG, *PQMIWMS_GET_STORE_MAX_SIZE_RESP_MSG; 2068*4882a593Smuzhiyun 2069*4882a593Smuzhiyun typedef struct _REQUEST_TAG 2070*4882a593Smuzhiyun { 2071*4882a593Smuzhiyun UCHAR TLVType; 2072*4882a593Smuzhiyun USHORT TLVLength; 2073*4882a593Smuzhiyun UCHAR TagType; 2074*4882a593Smuzhiyun } REQUEST_TAG, *PREQUEST_TAG; 2075*4882a593Smuzhiyun 2076*4882a593Smuzhiyun typedef struct _QMIWMS_LIST_MESSAGES_REQ_MSG 2077*4882a593Smuzhiyun { 2078*4882a593Smuzhiyun USHORT Type; 2079*4882a593Smuzhiyun USHORT Length; 2080*4882a593Smuzhiyun UCHAR TLVType; 2081*4882a593Smuzhiyun USHORT TLVLength; 2082*4882a593Smuzhiyun UCHAR StorageType; 2083*4882a593Smuzhiyun } QMIWMS_LIST_MESSAGES_REQ_MSG, *PQMIWMS_LIST_MESSAGES_REQ_MSG; 2084*4882a593Smuzhiyun 2085*4882a593Smuzhiyun typedef struct _QMIWMS_MESSAGE 2086*4882a593Smuzhiyun { 2087*4882a593Smuzhiyun ULONG MessageIndex; 2088*4882a593Smuzhiyun UCHAR TagType; 2089*4882a593Smuzhiyun } QMIWMS_MESSAGE, *PQMIWMS_MESSAGE; 2090*4882a593Smuzhiyun 2091*4882a593Smuzhiyun typedef struct _QMIWMS_LIST_MESSAGES_RESP_MSG 2092*4882a593Smuzhiyun { 2093*4882a593Smuzhiyun USHORT Type; 2094*4882a593Smuzhiyun USHORT Length; 2095*4882a593Smuzhiyun UCHAR TLVType; 2096*4882a593Smuzhiyun USHORT TLVLength; 2097*4882a593Smuzhiyun USHORT QMUXResult; 2098*4882a593Smuzhiyun USHORT QMUXError; 2099*4882a593Smuzhiyun UCHAR TLV2Type; 2100*4882a593Smuzhiyun USHORT TLV2Length; 2101*4882a593Smuzhiyun ULONG NumMessages; 2102*4882a593Smuzhiyun } QMIWMS_LIST_MESSAGES_RESP_MSG, *PQMIWMS_LIST_MESSAGES_RESP_MSG; 2103*4882a593Smuzhiyun 2104*4882a593Smuzhiyun typedef struct _QMIWMS_RAW_READ_REQ_MSG 2105*4882a593Smuzhiyun { 2106*4882a593Smuzhiyun USHORT Type; 2107*4882a593Smuzhiyun USHORT Length; 2108*4882a593Smuzhiyun UCHAR TLVType; 2109*4882a593Smuzhiyun USHORT TLVLength; 2110*4882a593Smuzhiyun UCHAR StorageType; 2111*4882a593Smuzhiyun ULONG MemoryIndex; 2112*4882a593Smuzhiyun } QMIWMS_RAW_READ_REQ_MSG, *PQMIWMS_RAW_READ_REQ_MSG; 2113*4882a593Smuzhiyun 2114*4882a593Smuzhiyun typedef struct _QMIWMS_RAW_READ_RESP_MSG 2115*4882a593Smuzhiyun { 2116*4882a593Smuzhiyun USHORT Type; 2117*4882a593Smuzhiyun USHORT Length; 2118*4882a593Smuzhiyun UCHAR TLVType; 2119*4882a593Smuzhiyun USHORT TLVLength; 2120*4882a593Smuzhiyun USHORT QMUXResult; 2121*4882a593Smuzhiyun USHORT QMUXError; 2122*4882a593Smuzhiyun UCHAR TLV2Type; 2123*4882a593Smuzhiyun USHORT TLV2Length; 2124*4882a593Smuzhiyun UCHAR TagType; 2125*4882a593Smuzhiyun UCHAR Format; 2126*4882a593Smuzhiyun USHORT MessageLength; 2127*4882a593Smuzhiyun UCHAR Message; 2128*4882a593Smuzhiyun } QMIWMS_RAW_READ_RESP_MSG, *PQMIWMS_RAW_READ_RESP_MSG; 2129*4882a593Smuzhiyun 2130*4882a593Smuzhiyun typedef struct _QMIWMS_MODIFY_TAG_REQ_MSG 2131*4882a593Smuzhiyun { 2132*4882a593Smuzhiyun USHORT Type; 2133*4882a593Smuzhiyun USHORT Length; 2134*4882a593Smuzhiyun UCHAR TLVType; 2135*4882a593Smuzhiyun USHORT TLVLength; 2136*4882a593Smuzhiyun UCHAR StorageType; 2137*4882a593Smuzhiyun ULONG MemoryIndex; 2138*4882a593Smuzhiyun UCHAR TagType; 2139*4882a593Smuzhiyun } QMIWMS_MODIFY_TAG_REQ_MSG, *PQMIWMS_MODIFY_TAG_REQ_MSG; 2140*4882a593Smuzhiyun 2141*4882a593Smuzhiyun typedef struct _QMIWMS_MODIFY_TAG_RESP_MSG 2142*4882a593Smuzhiyun { 2143*4882a593Smuzhiyun USHORT Type; 2144*4882a593Smuzhiyun USHORT Length; 2145*4882a593Smuzhiyun UCHAR TLVType; 2146*4882a593Smuzhiyun USHORT TLVLength; 2147*4882a593Smuzhiyun USHORT QMUXResult; 2148*4882a593Smuzhiyun USHORT QMUXError; 2149*4882a593Smuzhiyun } QMIWMS_MODIFY_TAG_RESP_MSG, *PQMIWMS_MODIFY_TAG_RESP_MSG; 2150*4882a593Smuzhiyun 2151*4882a593Smuzhiyun typedef struct _QMIWMS_RAW_SEND_REQ_MSG 2152*4882a593Smuzhiyun { 2153*4882a593Smuzhiyun USHORT Type; 2154*4882a593Smuzhiyun USHORT Length; 2155*4882a593Smuzhiyun UCHAR TLVType; 2156*4882a593Smuzhiyun USHORT TLVLength; 2157*4882a593Smuzhiyun UCHAR SmsFormat; 2158*4882a593Smuzhiyun USHORT SmsLength; 2159*4882a593Smuzhiyun UCHAR SmsMessage; 2160*4882a593Smuzhiyun } QMIWMS_RAW_SEND_REQ_MSG, *PQMIWMS_RAW_SEND_REQ_MSG; 2161*4882a593Smuzhiyun 2162*4882a593Smuzhiyun typedef struct _RAW_SEND_CAUSE_CODE 2163*4882a593Smuzhiyun { 2164*4882a593Smuzhiyun UCHAR TLVType; 2165*4882a593Smuzhiyun USHORT TLVLength; 2166*4882a593Smuzhiyun USHORT CauseCode; 2167*4882a593Smuzhiyun } RAW_SEND_CAUSE_CODE, *PRAW_SEND_CAUSE_CODE; 2168*4882a593Smuzhiyun 2169*4882a593Smuzhiyun 2170*4882a593Smuzhiyun typedef struct _QMIWMS_RAW_SEND_RESP_MSG 2171*4882a593Smuzhiyun { 2172*4882a593Smuzhiyun USHORT Type; 2173*4882a593Smuzhiyun USHORT Length; 2174*4882a593Smuzhiyun UCHAR TLVType; 2175*4882a593Smuzhiyun USHORT TLVLength; 2176*4882a593Smuzhiyun USHORT QMUXResult; 2177*4882a593Smuzhiyun USHORT QMUXError; 2178*4882a593Smuzhiyun } QMIWMS_RAW_SEND_RESP_MSG, *PQMIWMS_RAW_SEND_RESP_MSG; 2179*4882a593Smuzhiyun 2180*4882a593Smuzhiyun 2181*4882a593Smuzhiyun typedef struct _WMS_DELETE_MESSAGE_INDEX 2182*4882a593Smuzhiyun { 2183*4882a593Smuzhiyun UCHAR TLVType; 2184*4882a593Smuzhiyun USHORT TLVLength; 2185*4882a593Smuzhiyun ULONG MemoryIndex; 2186*4882a593Smuzhiyun } WMS_DELETE_MESSAGE_INDEX, *PWMS_DELETE_MESSAGE_INDEX; 2187*4882a593Smuzhiyun 2188*4882a593Smuzhiyun typedef struct _WMS_DELETE_MESSAGE_TAG 2189*4882a593Smuzhiyun { 2190*4882a593Smuzhiyun UCHAR TLVType; 2191*4882a593Smuzhiyun USHORT TLVLength; 2192*4882a593Smuzhiyun UCHAR MessageTag; 2193*4882a593Smuzhiyun } WMS_DELETE_MESSAGE_TAG, *PWMS_DELETE_MESSAGE_TAG; 2194*4882a593Smuzhiyun 2195*4882a593Smuzhiyun typedef struct _QMIWMS_DELETE_REQ_MSG 2196*4882a593Smuzhiyun { 2197*4882a593Smuzhiyun USHORT Type; 2198*4882a593Smuzhiyun USHORT Length; 2199*4882a593Smuzhiyun UCHAR TLVType; 2200*4882a593Smuzhiyun USHORT TLVLength; 2201*4882a593Smuzhiyun UCHAR StorageType; 2202*4882a593Smuzhiyun } QMIWMS_DELETE_REQ_MSG, *PQMIWMS_DELETE_REQ_MSG; 2203*4882a593Smuzhiyun 2204*4882a593Smuzhiyun typedef struct _QMIWMS_DELETE_RESP_MSG 2205*4882a593Smuzhiyun { 2206*4882a593Smuzhiyun USHORT Type; 2207*4882a593Smuzhiyun USHORT Length; 2208*4882a593Smuzhiyun UCHAR TLVType; 2209*4882a593Smuzhiyun USHORT TLVLength; 2210*4882a593Smuzhiyun USHORT QMUXResult; 2211*4882a593Smuzhiyun USHORT QMUXError; 2212*4882a593Smuzhiyun } QMIWMS_DELETE_RESP_MSG, *PQMIWMS_DELETE_RESP_MSG; 2213*4882a593Smuzhiyun 2214*4882a593Smuzhiyun 2215*4882a593Smuzhiyun typedef struct _QMIWMS_GET_SMSC_ADDRESS_REQ_MSG 2216*4882a593Smuzhiyun { 2217*4882a593Smuzhiyun USHORT Type; 2218*4882a593Smuzhiyun USHORT Length; 2219*4882a593Smuzhiyun } QMIWMS_GET_SMSC_ADDRESS_REQ_MSG, *PQMIWMS_GET_SMSC_ADDRESS_REQ_MSG; 2220*4882a593Smuzhiyun 2221*4882a593Smuzhiyun typedef struct _QMIWMS_SMSC_ADDRESS 2222*4882a593Smuzhiyun { 2223*4882a593Smuzhiyun UCHAR TLVType; 2224*4882a593Smuzhiyun USHORT TLVLength; 2225*4882a593Smuzhiyun UCHAR SMSCAddressType[3]; 2226*4882a593Smuzhiyun UCHAR SMSCAddressLength; 2227*4882a593Smuzhiyun UCHAR SMSCAddressDigits; 2228*4882a593Smuzhiyun } QMIWMS_SMSC_ADDRESS, *PQMIWMS_SMSC_ADDRESS; 2229*4882a593Smuzhiyun 2230*4882a593Smuzhiyun 2231*4882a593Smuzhiyun typedef struct _QMIWMS_GET_SMSC_ADDRESS_RESP_MSG 2232*4882a593Smuzhiyun { 2233*4882a593Smuzhiyun USHORT Type; 2234*4882a593Smuzhiyun USHORT Length; 2235*4882a593Smuzhiyun UCHAR TLVType; 2236*4882a593Smuzhiyun USHORT TLVLength; 2237*4882a593Smuzhiyun USHORT QMUXResult; 2238*4882a593Smuzhiyun USHORT QMUXError; 2239*4882a593Smuzhiyun UCHAR SMSCAddress; 2240*4882a593Smuzhiyun } QMIWMS_GET_SMSC_ADDRESS_RESP_MSG, *PQMIWMS_GET_SMSC_ADDRESS_RESP_MSG; 2241*4882a593Smuzhiyun 2242*4882a593Smuzhiyun typedef struct _QMIWMS_SET_SMSC_ADDRESS_REQ_MSG 2243*4882a593Smuzhiyun { 2244*4882a593Smuzhiyun USHORT Type; 2245*4882a593Smuzhiyun USHORT Length; 2246*4882a593Smuzhiyun UCHAR TLVType; 2247*4882a593Smuzhiyun USHORT TLVLength; 2248*4882a593Smuzhiyun UCHAR SMSCAddress; 2249*4882a593Smuzhiyun } QMIWMS_SET_SMSC_ADDRESS_REQ_MSG, *PQMIWMS_SET_SMSC_ADDRESS_REQ_MSG; 2250*4882a593Smuzhiyun 2251*4882a593Smuzhiyun typedef struct _QMIWMS_SET_SMSC_ADDRESS_RESP_MSG 2252*4882a593Smuzhiyun { 2253*4882a593Smuzhiyun USHORT Type; 2254*4882a593Smuzhiyun USHORT Length; 2255*4882a593Smuzhiyun UCHAR TLVType; 2256*4882a593Smuzhiyun USHORT TLVLength; 2257*4882a593Smuzhiyun USHORT QMUXResult; 2258*4882a593Smuzhiyun USHORT QMUXError; 2259*4882a593Smuzhiyun } QMIWMS_SET_SMSC_ADDRESS_RESP_MSG, *PQMIWMS_SET_SMSC_ADDRESS_RESP_MSG; 2260*4882a593Smuzhiyun 2261*4882a593Smuzhiyun typedef struct _QMIWMS_SET_EVENT_REPORT_REQ_MSG 2262*4882a593Smuzhiyun { 2263*4882a593Smuzhiyun USHORT Type; 2264*4882a593Smuzhiyun USHORT Length; 2265*4882a593Smuzhiyun UCHAR TLVType; 2266*4882a593Smuzhiyun USHORT TLVLength; 2267*4882a593Smuzhiyun UCHAR ReportNewMessage; 2268*4882a593Smuzhiyun } QMIWMS_SET_EVENT_REPORT_REQ_MSG, *PQMIWMS_SET_EVENT_REPORT_REQ_MSG; 2269*4882a593Smuzhiyun 2270*4882a593Smuzhiyun typedef struct _QMIWMS_SET_EVENT_REPORT_RESP_MSG 2271*4882a593Smuzhiyun { 2272*4882a593Smuzhiyun USHORT Type; 2273*4882a593Smuzhiyun USHORT Length; 2274*4882a593Smuzhiyun UCHAR TLVType; 2275*4882a593Smuzhiyun USHORT TLVLength; 2276*4882a593Smuzhiyun USHORT QMUXResult; 2277*4882a593Smuzhiyun USHORT QMUXError; 2278*4882a593Smuzhiyun } QMIWMS_SET_EVENT_REPORT_RESP_MSG, *PQMIWMS_SET_EVENT_REPORT_RESP_MSG; 2279*4882a593Smuzhiyun 2280*4882a593Smuzhiyun typedef struct _QMIWMS_EVENT_REPORT_IND_MSG 2281*4882a593Smuzhiyun { 2282*4882a593Smuzhiyun USHORT Type; 2283*4882a593Smuzhiyun USHORT Length; 2284*4882a593Smuzhiyun UCHAR TLVType; 2285*4882a593Smuzhiyun USHORT TLVLength; 2286*4882a593Smuzhiyun UCHAR StorageType; 2287*4882a593Smuzhiyun ULONG StorageIndex; 2288*4882a593Smuzhiyun } QMIWMS_EVENT_REPORT_IND_MSG, *PQMIWMS_EVENT_REPORT_IND_MSG; 2289*4882a593Smuzhiyun #endif 2290*4882a593Smuzhiyun 2291*4882a593Smuzhiyun // ======================= End of WMS ============================== 2292*4882a593Smuzhiyun 2293*4882a593Smuzhiyun 2294*4882a593Smuzhiyun // ======================= NAS ============================== 2295*4882a593Smuzhiyun #define QMINAS_SET_EVENT_REPORT_REQ 0x0002 2296*4882a593Smuzhiyun #define QMINAS_SET_EVENT_REPORT_RESP 0x0002 2297*4882a593Smuzhiyun #define QMINAS_EVENT_REPORT_IND 0x0002 2298*4882a593Smuzhiyun #define QMINAS_GET_SIGNAL_STRENGTH_REQ 0x0020 2299*4882a593Smuzhiyun #define QMINAS_GET_SIGNAL_STRENGTH_RESP 0x0020 2300*4882a593Smuzhiyun #define QMINAS_PERFORM_NETWORK_SCAN_REQ 0x0021 2301*4882a593Smuzhiyun #define QMINAS_PERFORM_NETWORK_SCAN_RESP 0x0021 2302*4882a593Smuzhiyun #define QMINAS_INITIATE_NW_REGISTER_REQ 0x0022 2303*4882a593Smuzhiyun #define QMINAS_INITIATE_NW_REGISTER_RESP 0x0022 2304*4882a593Smuzhiyun #define QMINAS_INITIATE_ATTACH_REQ 0x0023 2305*4882a593Smuzhiyun #define QMINAS_INITIATE_ATTACH_RESP 0x0023 2306*4882a593Smuzhiyun #define QMINAS_GET_SERVING_SYSTEM_REQ 0x0024 2307*4882a593Smuzhiyun #define QMINAS_GET_SERVING_SYSTEM_RESP 0x0024 2308*4882a593Smuzhiyun #define QMINAS_SERVING_SYSTEM_IND 0x0024 2309*4882a593Smuzhiyun #define QMINAS_GET_HOME_NETWORK_REQ 0x0025 2310*4882a593Smuzhiyun #define QMINAS_GET_HOME_NETWORK_RESP 0x0025 2311*4882a593Smuzhiyun #define QMINAS_GET_PREFERRED_NETWORK_REQ 0x0026 2312*4882a593Smuzhiyun #define QMINAS_GET_PREFERRED_NETWORK_RESP 0x0026 2313*4882a593Smuzhiyun #define QMINAS_SET_PREFERRED_NETWORK_REQ 0x0027 2314*4882a593Smuzhiyun #define QMINAS_SET_PREFERRED_NETWORK_RESP 0x0027 2315*4882a593Smuzhiyun #define QMINAS_GET_FORBIDDEN_NETWORK_REQ 0x0028 2316*4882a593Smuzhiyun #define QMINAS_GET_FORBIDDEN_NETWORK_RESP 0x0028 2317*4882a593Smuzhiyun #define QMINAS_SET_FORBIDDEN_NETWORK_REQ 0x0029 2318*4882a593Smuzhiyun #define QMINAS_SET_FORBIDDEN_NETWORK_RESP 0x0029 2319*4882a593Smuzhiyun #define QMINAS_SET_TECHNOLOGY_PREF_REQ 0x002A 2320*4882a593Smuzhiyun #define QMINAS_SET_TECHNOLOGY_PREF_RESP 0x002A 2321*4882a593Smuzhiyun #define QMINAS_GET_RF_BAND_INFO_REQ 0x0031 2322*4882a593Smuzhiyun #define QMINAS_GET_RF_BAND_INFO_RESP 0x0031 2323*4882a593Smuzhiyun #define QMINAS_GET_PLMN_NAME_REQ 0x0044 2324*4882a593Smuzhiyun #define QMINAS_GET_PLMN_NAME_RESP 0x0044 2325*4882a593Smuzhiyun #define QUECTEL_PACKET_TRANSFER_START_IND 0X100 2326*4882a593Smuzhiyun #define QUECTEL_PACKET_TRANSFER_END_IND 0X101 2327*4882a593Smuzhiyun #define QMINAS_GET_SYS_INFO_REQ 0x004D 2328*4882a593Smuzhiyun #define QMINAS_GET_SYS_INFO_RESP 0x004D 2329*4882a593Smuzhiyun #define QMINAS_SYS_INFO_IND 0x004D 2330*4882a593Smuzhiyun #define QMINAS_GET_SIG_INFO_REQ 0x004F 2331*4882a593Smuzhiyun #define QMINAS_GET_SIG_INFO_RESP 0x004F 2332*4882a593Smuzhiyun 2333*4882a593Smuzhiyun typedef struct _QMINAS_GET_HOME_NETWORK_REQ_MSG 2334*4882a593Smuzhiyun { 2335*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2336*4882a593Smuzhiyun USHORT Length; 2337*4882a593Smuzhiyun } __attribute__ ((packed)) QMINAS_GET_HOME_NETWORK_REQ_MSG, *PQMINAS_GET_HOME_NETWORK_REQ_MSG; 2338*4882a593Smuzhiyun 2339*4882a593Smuzhiyun typedef struct _HOME_NETWORK_SYSTEMID 2340*4882a593Smuzhiyun { 2341*4882a593Smuzhiyun UCHAR TLVType; 2342*4882a593Smuzhiyun USHORT TLVLength; 2343*4882a593Smuzhiyun USHORT SystemID; 2344*4882a593Smuzhiyun USHORT NetworkID; 2345*4882a593Smuzhiyun } __attribute__ ((packed)) HOME_NETWORK_SYSTEMID, *PHOME_NETWORK_SYSTEMID; 2346*4882a593Smuzhiyun 2347*4882a593Smuzhiyun typedef struct _HOME_NETWORK 2348*4882a593Smuzhiyun { 2349*4882a593Smuzhiyun UCHAR TLVType; 2350*4882a593Smuzhiyun USHORT TLVLength; 2351*4882a593Smuzhiyun USHORT MobileCountryCode; 2352*4882a593Smuzhiyun USHORT MobileNetworkCode; 2353*4882a593Smuzhiyun UCHAR NetworkDesclen; 2354*4882a593Smuzhiyun UCHAR NetworkDesc; 2355*4882a593Smuzhiyun } __attribute__ ((packed)) HOME_NETWORK, *PHOME_NETWORK; 2356*4882a593Smuzhiyun 2357*4882a593Smuzhiyun #if 0 2358*4882a593Smuzhiyun typedef struct _HOME_NETWORK_EXT 2359*4882a593Smuzhiyun { 2360*4882a593Smuzhiyun UCHAR TLVType; 2361*4882a593Smuzhiyun USHORT TLVLength; 2362*4882a593Smuzhiyun USHORT MobileCountryCode; 2363*4882a593Smuzhiyun USHORT MobileNetworkCode; 2364*4882a593Smuzhiyun UCHAR NetworkDescDisp; 2365*4882a593Smuzhiyun UCHAR NetworkDescEncoding; 2366*4882a593Smuzhiyun UCHAR NetworkDesclen; 2367*4882a593Smuzhiyun UCHAR NetworkDesc; 2368*4882a593Smuzhiyun } HOME_NETWORK_EXT, *PHOME_NETWORK_EXT; 2369*4882a593Smuzhiyun 2370*4882a593Smuzhiyun typedef struct _QMINAS_GET_HOME_NETWORK_RESP_MSG 2371*4882a593Smuzhiyun { 2372*4882a593Smuzhiyun USHORT Type; 2373*4882a593Smuzhiyun USHORT Length; 2374*4882a593Smuzhiyun UCHAR TLVType; 2375*4882a593Smuzhiyun USHORT TLVLength; 2376*4882a593Smuzhiyun USHORT QMUXResult; 2377*4882a593Smuzhiyun USHORT QMUXError; 2378*4882a593Smuzhiyun } QMINAS_GET_HOME_NETWORK_RESP_MSG, *PQMINAS_GET_HOME_NETWORK_RESP_MSG; 2379*4882a593Smuzhiyun 2380*4882a593Smuzhiyun typedef struct _QMINAS_GET_PREFERRED_NETWORK_REQ_MSG 2381*4882a593Smuzhiyun { 2382*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2383*4882a593Smuzhiyun USHORT Length; 2384*4882a593Smuzhiyun } QMINAS_GET_PREFERRED_NETWORK_REQ_MSG, *PQMINAS_GET_PREFERRED_NETWORK_REQ_MSG; 2385*4882a593Smuzhiyun 2386*4882a593Smuzhiyun 2387*4882a593Smuzhiyun typedef struct _PREFERRED_NETWORK 2388*4882a593Smuzhiyun { 2389*4882a593Smuzhiyun USHORT MobileCountryCode; 2390*4882a593Smuzhiyun USHORT MobileNetworkCode; 2391*4882a593Smuzhiyun USHORT RadioAccess; 2392*4882a593Smuzhiyun } PREFERRED_NETWORK, *PPREFERRED_NETWORK; 2393*4882a593Smuzhiyun 2394*4882a593Smuzhiyun typedef struct _QMINAS_GET_PREFERRED_NETWORK_RESP_MSG 2395*4882a593Smuzhiyun { 2396*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2397*4882a593Smuzhiyun USHORT Length; 2398*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 2399*4882a593Smuzhiyun USHORT TLVLength; // 4 2400*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 2401*4882a593Smuzhiyun // QMI_RESULT_FAILURE 2402*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 2403*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 2404*4882a593Smuzhiyun // QMI_ERR_INTERNAL 2405*4882a593Smuzhiyun // QMI_ERR_FAULT 2406*4882a593Smuzhiyun UCHAR TLV2Type; // 0x01 - required parameter 2407*4882a593Smuzhiyun USHORT TLV2Length; // length of the mfr string 2408*4882a593Smuzhiyun USHORT NumPreferredNetwork; 2409*4882a593Smuzhiyun } QMINAS_GET_PREFERRED_NETWORK_RESP_MSG, *PQMINAS_GET_PREFERRED_NETWORK_RESP_MSG; 2410*4882a593Smuzhiyun 2411*4882a593Smuzhiyun typedef struct _QMINAS_GET_FORBIDDEN_NETWORK_REQ_MSG 2412*4882a593Smuzhiyun { 2413*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2414*4882a593Smuzhiyun USHORT Length; 2415*4882a593Smuzhiyun } QMINAS_GET_FORBIDDEN_NETWORK_REQ_MSG, *PQMINAS_GET_FORBIDDEN_NETWORK_REQ_MSG; 2416*4882a593Smuzhiyun 2417*4882a593Smuzhiyun typedef struct _FORBIDDEN_NETWORK 2418*4882a593Smuzhiyun { 2419*4882a593Smuzhiyun USHORT MobileCountryCode; 2420*4882a593Smuzhiyun USHORT MobileNetworkCode; 2421*4882a593Smuzhiyun } FORBIDDEN_NETWORK, *PFORBIDDEN_NETWORK; 2422*4882a593Smuzhiyun 2423*4882a593Smuzhiyun typedef struct _QMINAS_GET_FORBIDDEN_NETWORK_RESP_MSG 2424*4882a593Smuzhiyun { 2425*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2426*4882a593Smuzhiyun USHORT Length; 2427*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 2428*4882a593Smuzhiyun USHORT TLVLength; // 4 2429*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 2430*4882a593Smuzhiyun // QMI_RESULT_FAILURE 2431*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 2432*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 2433*4882a593Smuzhiyun // QMI_ERR_INTERNAL 2434*4882a593Smuzhiyun // QMI_ERR_FAULT 2435*4882a593Smuzhiyun UCHAR TLV2Type; // 0x01 - required parameter 2436*4882a593Smuzhiyun USHORT TLV2Length; // length of the mfr string 2437*4882a593Smuzhiyun USHORT NumForbiddenNetwork; 2438*4882a593Smuzhiyun } QMINAS_GET_FORBIDDEN_NETWORK_RESP_MSG, *PQMINAS_GET_FORBIDDEN_NETWORK_RESP_MSG; 2439*4882a593Smuzhiyun 2440*4882a593Smuzhiyun typedef struct _QMINAS_GET_SERVING_SYSTEM_REQ_MSG 2441*4882a593Smuzhiyun { 2442*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2443*4882a593Smuzhiyun USHORT Length; 2444*4882a593Smuzhiyun } QMINAS_GET_SERVING_SYSTEM_REQ_MSG, *PQMINAS_GET_SERVING_SYSTEM_REQ_MSG; 2445*4882a593Smuzhiyun 2446*4882a593Smuzhiyun typedef struct _QMINAS_ROAMING_INDICATOR_MSG 2447*4882a593Smuzhiyun { 2448*4882a593Smuzhiyun UCHAR TLVType; // 0x01 - required parameter 2449*4882a593Smuzhiyun USHORT TLVLength; // length of the mfr string 2450*4882a593Smuzhiyun UCHAR RoamingIndicator; 2451*4882a593Smuzhiyun } QMINAS_ROAMING_INDICATOR_MSG, *PQMINAS_ROAMING_INDICATOR_MSG; 2452*4882a593Smuzhiyun #endif 2453*4882a593Smuzhiyun 2454*4882a593Smuzhiyun typedef struct _QMINAS_DATA_CAP 2455*4882a593Smuzhiyun { 2456*4882a593Smuzhiyun UCHAR TLVType; // 0x01 - required parameter 2457*4882a593Smuzhiyun USHORT TLVLength; // length of the mfr string 2458*4882a593Smuzhiyun UCHAR DataCapListLen; 2459*4882a593Smuzhiyun UCHAR DataCap; 2460*4882a593Smuzhiyun } __attribute__ ((packed)) QMINAS_DATA_CAP, *PQMINAS_DATA_CAP; 2461*4882a593Smuzhiyun 2462*4882a593Smuzhiyun typedef struct _QMINAS_CURRENT_PLMN_MSG 2463*4882a593Smuzhiyun { 2464*4882a593Smuzhiyun UCHAR TLVType; // 0x01 - required parameter 2465*4882a593Smuzhiyun USHORT TLVLength; // length of the mfr string 2466*4882a593Smuzhiyun USHORT MobileCountryCode; 2467*4882a593Smuzhiyun USHORT MobileNetworkCode; 2468*4882a593Smuzhiyun UCHAR NetworkDesclen; 2469*4882a593Smuzhiyun UCHAR NetworkDesc; 2470*4882a593Smuzhiyun } __attribute__ ((packed)) QMINAS_CURRENT_PLMN_MSG, *PQMINAS_CURRENT_PLMN_MSG; 2471*4882a593Smuzhiyun 2472*4882a593Smuzhiyun typedef struct _QMINAS_GET_SERVING_SYSTEM_RESP_MSG 2473*4882a593Smuzhiyun { 2474*4882a593Smuzhiyun USHORT Type; 2475*4882a593Smuzhiyun USHORT Length; 2476*4882a593Smuzhiyun UCHAR TLVType; 2477*4882a593Smuzhiyun USHORT TLVLength; 2478*4882a593Smuzhiyun USHORT QMUXResult; 2479*4882a593Smuzhiyun USHORT QMUXError; 2480*4882a593Smuzhiyun } __attribute__ ((packed)) QMINAS_GET_SERVING_SYSTEM_RESP_MSG, *PQMINAS_GET_SERVING_SYSTEM_RESP_MSG; 2481*4882a593Smuzhiyun 2482*4882a593Smuzhiyun typedef struct _SERVING_SYSTEM 2483*4882a593Smuzhiyun { 2484*4882a593Smuzhiyun UCHAR TLVType; 2485*4882a593Smuzhiyun USHORT TLVLength; 2486*4882a593Smuzhiyun UCHAR RegistrationState; 2487*4882a593Smuzhiyun UCHAR CSAttachedState; 2488*4882a593Smuzhiyun UCHAR PSAttachedState; 2489*4882a593Smuzhiyun UCHAR RegistredNetwork; 2490*4882a593Smuzhiyun UCHAR InUseRadioIF; 2491*4882a593Smuzhiyun UCHAR RadioIF; 2492*4882a593Smuzhiyun } __attribute__ ((packed)) SERVING_SYSTEM, *PSERVING_SYSTEM; 2493*4882a593Smuzhiyun 2494*4882a593Smuzhiyun typedef struct _QMINAS_GET_SYS_INFO_RESP_MSG 2495*4882a593Smuzhiyun { 2496*4882a593Smuzhiyun USHORT Type; 2497*4882a593Smuzhiyun USHORT Length; 2498*4882a593Smuzhiyun UCHAR TLVType; 2499*4882a593Smuzhiyun USHORT TLVLength; 2500*4882a593Smuzhiyun USHORT QMUXResult; 2501*4882a593Smuzhiyun USHORT QMUXError; 2502*4882a593Smuzhiyun } __attribute__ ((packed)) QMINAS_GET_SYS_INFO_RESP_MSG, *PQMINAS_GET_SYS_INFO_RESP_MSG; 2503*4882a593Smuzhiyun 2504*4882a593Smuzhiyun typedef struct _QMINAS_SYS_INFO_IND_MSG 2505*4882a593Smuzhiyun { 2506*4882a593Smuzhiyun USHORT Type; 2507*4882a593Smuzhiyun USHORT Length; 2508*4882a593Smuzhiyun } __attribute__ ((packed)) QMINAS_SYS_INFO_IND_MSG, *PQMINAS_SYS_INFO_IND_MSG; 2509*4882a593Smuzhiyun 2510*4882a593Smuzhiyun typedef struct _SERVICE_STATUS_INFO 2511*4882a593Smuzhiyun { 2512*4882a593Smuzhiyun UCHAR TLVType; 2513*4882a593Smuzhiyun USHORT TLVLength; 2514*4882a593Smuzhiyun UCHAR SrvStatus; 2515*4882a593Smuzhiyun UCHAR true_srv_status; 2516*4882a593Smuzhiyun UCHAR IsPrefDataPath; 2517*4882a593Smuzhiyun } __attribute__ ((packed)) SERVICE_STATUS_INFO, *PSERVICE_STATUS_INFO; 2518*4882a593Smuzhiyun 2519*4882a593Smuzhiyun typedef struct _CDMA_SYSTEM_INFO 2520*4882a593Smuzhiyun { 2521*4882a593Smuzhiyun UCHAR TLVType; 2522*4882a593Smuzhiyun USHORT TLVLength; 2523*4882a593Smuzhiyun UCHAR SrvDomainValid; 2524*4882a593Smuzhiyun UCHAR SrvDomain; 2525*4882a593Smuzhiyun UCHAR SrvCapabilityValid; 2526*4882a593Smuzhiyun UCHAR SrvCapability; 2527*4882a593Smuzhiyun UCHAR RoamStatusValid; 2528*4882a593Smuzhiyun UCHAR RoamStatus; 2529*4882a593Smuzhiyun UCHAR IsSysForbiddenValid; 2530*4882a593Smuzhiyun UCHAR IsSysForbidden; 2531*4882a593Smuzhiyun UCHAR IsSysPrlMatchValid; 2532*4882a593Smuzhiyun UCHAR IsSysPrlMatch; 2533*4882a593Smuzhiyun UCHAR PRevInUseValid; 2534*4882a593Smuzhiyun UCHAR PRevInUse; 2535*4882a593Smuzhiyun UCHAR BSPRevValid; 2536*4882a593Smuzhiyun UCHAR BSPRev; 2537*4882a593Smuzhiyun UCHAR CCSSupportedValid; 2538*4882a593Smuzhiyun UCHAR CCSSupported; 2539*4882a593Smuzhiyun UCHAR CDMASysIdValid; 2540*4882a593Smuzhiyun USHORT SID; 2541*4882a593Smuzhiyun USHORT NID; 2542*4882a593Smuzhiyun UCHAR BSInfoValid; 2543*4882a593Smuzhiyun USHORT BaseID; 2544*4882a593Smuzhiyun ULONG BaseLAT; 2545*4882a593Smuzhiyun ULONG BaseLONG; 2546*4882a593Smuzhiyun UCHAR PacketZoneValid; 2547*4882a593Smuzhiyun USHORT PacketZone; 2548*4882a593Smuzhiyun UCHAR NetworkIdValid; 2549*4882a593Smuzhiyun UCHAR MCC[3]; 2550*4882a593Smuzhiyun UCHAR MNC[3]; 2551*4882a593Smuzhiyun } __attribute__ ((packed)) CDMA_SYSTEM_INFO, *PCDMA_SYSTEM_INFO; 2552*4882a593Smuzhiyun 2553*4882a593Smuzhiyun typedef struct _HDR_SYSTEM_INFO 2554*4882a593Smuzhiyun { 2555*4882a593Smuzhiyun UCHAR TLVType; 2556*4882a593Smuzhiyun USHORT TLVLength; 2557*4882a593Smuzhiyun UCHAR SrvDomainValid; 2558*4882a593Smuzhiyun UCHAR SrvDomain; 2559*4882a593Smuzhiyun UCHAR SrvCapabilityValid; 2560*4882a593Smuzhiyun UCHAR SrvCapability; 2561*4882a593Smuzhiyun UCHAR RoamStatusValid; 2562*4882a593Smuzhiyun UCHAR RoamStatus; 2563*4882a593Smuzhiyun UCHAR IsSysForbiddenValid; 2564*4882a593Smuzhiyun UCHAR IsSysForbidden; 2565*4882a593Smuzhiyun UCHAR IsSysPrlMatchValid; 2566*4882a593Smuzhiyun UCHAR IsSysPrlMatch; 2567*4882a593Smuzhiyun UCHAR HdrPersonalityValid; 2568*4882a593Smuzhiyun UCHAR HdrPersonality; 2569*4882a593Smuzhiyun UCHAR HdrActiveProtValid; 2570*4882a593Smuzhiyun UCHAR HdrActiveProt; 2571*4882a593Smuzhiyun UCHAR is856SysIdValid; 2572*4882a593Smuzhiyun UCHAR is856SysId[16]; 2573*4882a593Smuzhiyun } __attribute__ ((packed)) HDR_SYSTEM_INFO, *PHDR_SYSTEM_INFO; 2574*4882a593Smuzhiyun 2575*4882a593Smuzhiyun typedef struct _GSM_SYSTEM_INFO 2576*4882a593Smuzhiyun { 2577*4882a593Smuzhiyun UCHAR TLVType; 2578*4882a593Smuzhiyun USHORT TLVLength; 2579*4882a593Smuzhiyun UCHAR SrvDomainValid; 2580*4882a593Smuzhiyun UCHAR SrvDomain; 2581*4882a593Smuzhiyun UCHAR SrvCapabilityValid; 2582*4882a593Smuzhiyun UCHAR SrvCapability; 2583*4882a593Smuzhiyun UCHAR RoamStatusValid; 2584*4882a593Smuzhiyun UCHAR RoamStatus; 2585*4882a593Smuzhiyun UCHAR IsSysForbiddenValid; 2586*4882a593Smuzhiyun UCHAR IsSysForbidden; 2587*4882a593Smuzhiyun UCHAR LacValid; 2588*4882a593Smuzhiyun USHORT Lac; 2589*4882a593Smuzhiyun UCHAR CellIdValid; 2590*4882a593Smuzhiyun ULONG CellId; 2591*4882a593Smuzhiyun UCHAR RegRejectInfoValid; 2592*4882a593Smuzhiyun UCHAR RejectSrvDomain; 2593*4882a593Smuzhiyun UCHAR RejCause; 2594*4882a593Smuzhiyun UCHAR NetworkIdValid; 2595*4882a593Smuzhiyun UCHAR MCC[3]; 2596*4882a593Smuzhiyun UCHAR MNC[3]; 2597*4882a593Smuzhiyun UCHAR EgprsSuppValid; 2598*4882a593Smuzhiyun UCHAR EgprsSupp; 2599*4882a593Smuzhiyun UCHAR DtmSuppValid; 2600*4882a593Smuzhiyun UCHAR DtmSupp; 2601*4882a593Smuzhiyun } __attribute__ ((packed)) GSM_SYSTEM_INFO, *PGSM_SYSTEM_INFO; 2602*4882a593Smuzhiyun 2603*4882a593Smuzhiyun typedef struct _WCDMA_SYSTEM_INFO 2604*4882a593Smuzhiyun { 2605*4882a593Smuzhiyun UCHAR TLVType; 2606*4882a593Smuzhiyun USHORT TLVLength; 2607*4882a593Smuzhiyun UCHAR SrvDomainValid; 2608*4882a593Smuzhiyun UCHAR SrvDomain; 2609*4882a593Smuzhiyun UCHAR SrvCapabilityValid; 2610*4882a593Smuzhiyun UCHAR SrvCapability; 2611*4882a593Smuzhiyun UCHAR RoamStatusValid; 2612*4882a593Smuzhiyun UCHAR RoamStatus; 2613*4882a593Smuzhiyun UCHAR IsSysForbiddenValid; 2614*4882a593Smuzhiyun UCHAR IsSysForbidden; 2615*4882a593Smuzhiyun UCHAR LacValid; 2616*4882a593Smuzhiyun USHORT Lac; 2617*4882a593Smuzhiyun UCHAR CellIdValid; 2618*4882a593Smuzhiyun ULONG CellId; 2619*4882a593Smuzhiyun UCHAR RegRejectInfoValid; 2620*4882a593Smuzhiyun UCHAR RejectSrvDomain; 2621*4882a593Smuzhiyun UCHAR RejCause; 2622*4882a593Smuzhiyun UCHAR NetworkIdValid; 2623*4882a593Smuzhiyun UCHAR MCC[3]; 2624*4882a593Smuzhiyun UCHAR MNC[3]; 2625*4882a593Smuzhiyun UCHAR HsCallStatusValid; 2626*4882a593Smuzhiyun UCHAR HsCallStatus; 2627*4882a593Smuzhiyun UCHAR HsIndValid; 2628*4882a593Smuzhiyun UCHAR HsInd; 2629*4882a593Smuzhiyun UCHAR PscValid; 2630*4882a593Smuzhiyun UCHAR Psc; 2631*4882a593Smuzhiyun } __attribute__ ((packed)) WCDMA_SYSTEM_INFO, *PWCDMA_SYSTEM_INFO; 2632*4882a593Smuzhiyun 2633*4882a593Smuzhiyun typedef struct _LTE_SYSTEM_INFO 2634*4882a593Smuzhiyun { 2635*4882a593Smuzhiyun UCHAR TLVType; 2636*4882a593Smuzhiyun USHORT TLVLength; 2637*4882a593Smuzhiyun UCHAR SrvDomainValid; 2638*4882a593Smuzhiyun UCHAR SrvDomain; 2639*4882a593Smuzhiyun UCHAR SrvCapabilityValid; 2640*4882a593Smuzhiyun UCHAR SrvCapability; 2641*4882a593Smuzhiyun UCHAR RoamStatusValid; 2642*4882a593Smuzhiyun UCHAR RoamStatus; 2643*4882a593Smuzhiyun UCHAR IsSysForbiddenValid; 2644*4882a593Smuzhiyun UCHAR IsSysForbidden; 2645*4882a593Smuzhiyun UCHAR LacValid; 2646*4882a593Smuzhiyun USHORT Lac; 2647*4882a593Smuzhiyun UCHAR CellIdValid; 2648*4882a593Smuzhiyun ULONG CellId; 2649*4882a593Smuzhiyun UCHAR RegRejectInfoValid; 2650*4882a593Smuzhiyun UCHAR RejectSrvDomain; 2651*4882a593Smuzhiyun UCHAR RejCause; 2652*4882a593Smuzhiyun UCHAR NetworkIdValid; 2653*4882a593Smuzhiyun UCHAR MCC[3]; 2654*4882a593Smuzhiyun UCHAR MNC[3]; 2655*4882a593Smuzhiyun UCHAR TacValid; 2656*4882a593Smuzhiyun USHORT Tac; 2657*4882a593Smuzhiyun } __attribute__ ((packed)) LTE_SYSTEM_INFO, *PLTE_SYSTEM_INFO; 2658*4882a593Smuzhiyun 2659*4882a593Smuzhiyun typedef struct _TDSCDMA_SYSTEM_INFO 2660*4882a593Smuzhiyun { 2661*4882a593Smuzhiyun UCHAR TLVType; 2662*4882a593Smuzhiyun USHORT TLVLength; 2663*4882a593Smuzhiyun UCHAR SrvDomainValid; 2664*4882a593Smuzhiyun UCHAR SrvDomain; 2665*4882a593Smuzhiyun UCHAR SrvCapabilityValid; 2666*4882a593Smuzhiyun UCHAR SrvCapability; 2667*4882a593Smuzhiyun UCHAR RoamStatusValid; 2668*4882a593Smuzhiyun UCHAR RoamStatus; 2669*4882a593Smuzhiyun UCHAR IsSysForbiddenValid; 2670*4882a593Smuzhiyun UCHAR IsSysForbidden; 2671*4882a593Smuzhiyun UCHAR LacValid; 2672*4882a593Smuzhiyun USHORT Lac; 2673*4882a593Smuzhiyun UCHAR CellIdValid; 2674*4882a593Smuzhiyun ULONG CellId; 2675*4882a593Smuzhiyun UCHAR RegRejectInfoValid; 2676*4882a593Smuzhiyun UCHAR RejectSrvDomain; 2677*4882a593Smuzhiyun UCHAR RejCause; 2678*4882a593Smuzhiyun UCHAR NetworkIdValid; 2679*4882a593Smuzhiyun UCHAR MCC[3]; 2680*4882a593Smuzhiyun UCHAR MNC[3]; 2681*4882a593Smuzhiyun UCHAR HsCallStatusValid; 2682*4882a593Smuzhiyun UCHAR HsCallStatus; 2683*4882a593Smuzhiyun UCHAR HsIndValid; 2684*4882a593Smuzhiyun UCHAR HsInd; 2685*4882a593Smuzhiyun UCHAR CellParameterIdValid; 2686*4882a593Smuzhiyun USHORT CellParameterId; 2687*4882a593Smuzhiyun UCHAR CellBroadcastCapValid; 2688*4882a593Smuzhiyun ULONG CellBroadcastCap; 2689*4882a593Smuzhiyun UCHAR CsBarStatusValid; 2690*4882a593Smuzhiyun ULONG CsBarStatus; 2691*4882a593Smuzhiyun UCHAR PsBarStatusValid; 2692*4882a593Smuzhiyun ULONG PsBarStatus; 2693*4882a593Smuzhiyun UCHAR CipherDomainValid; 2694*4882a593Smuzhiyun UCHAR CipherDomain; 2695*4882a593Smuzhiyun } __attribute__ ((packed)) TDSCDMA_SYSTEM_INFO, *PTDSCDMA_SYSTEM_INFO; 2696*4882a593Smuzhiyun 2697*4882a593Smuzhiyun typedef enum { 2698*4882a593Smuzhiyun NAS_SYS_SRV_STATUS_NO_SRV_V01 = 0, 2699*4882a593Smuzhiyun NAS_SYS_SRV_STATUS_LIMITED_V01 = 1, 2700*4882a593Smuzhiyun NAS_SYS_SRV_STATUS_SRV_V01 = 2, 2701*4882a593Smuzhiyun NAS_SYS_SRV_STATUS_LIMITED_REGIONAL_V01 = 3, 2702*4882a593Smuzhiyun NAS_SYS_SRV_STATUS_PWR_SAVE_V01 = 4, 2703*4882a593Smuzhiyun }nas_service_status_enum_type_v01; 2704*4882a593Smuzhiyun 2705*4882a593Smuzhiyun typedef enum { 2706*4882a593Smuzhiyun SYS_SRV_DOMAIN_NO_SRV_V01 = 0, 2707*4882a593Smuzhiyun SYS_SRV_DOMAIN_CS_ONLY_V01 = 1, 2708*4882a593Smuzhiyun SYS_SRV_DOMAIN_PS_ONLY_V01 = 2, 2709*4882a593Smuzhiyun SYS_SRV_DOMAIN_CS_PS_V01 = 3, 2710*4882a593Smuzhiyun SYS_SRV_DOMAIN_CAMPED_V01 = 4, 2711*4882a593Smuzhiyun }nas_service_domain_enum_type_v01; 2712*4882a593Smuzhiyun 2713*4882a593Smuzhiyun typedef struct { 2714*4882a593Smuzhiyun UCHAR TLVType; 2715*4882a593Smuzhiyun USHORT TLVLength; 2716*4882a593Smuzhiyun 2717*4882a593Smuzhiyun uint8_t srv_domain_valid; 2718*4882a593Smuzhiyun uint8_t srv_domain; 2719*4882a593Smuzhiyun uint8_t srv_capability_valid; 2720*4882a593Smuzhiyun uint8_t srv_capability; 2721*4882a593Smuzhiyun uint8_t roam_status_valid; 2722*4882a593Smuzhiyun uint8_t roam_status; 2723*4882a593Smuzhiyun uint8_t is_sys_forbidden_valid; 2724*4882a593Smuzhiyun uint8_t is_sys_forbidden; 2725*4882a593Smuzhiyun 2726*4882a593Smuzhiyun uint8_t lac_valid; 2727*4882a593Smuzhiyun uint16_t lac; 2728*4882a593Smuzhiyun uint8_t cell_id_valid; 2729*4882a593Smuzhiyun uint32_t cell_id; 2730*4882a593Smuzhiyun uint8_t reg_reject_info_valid; 2731*4882a593Smuzhiyun uint8_t reject_srv_domain; 2732*4882a593Smuzhiyun uint8_t rej_cause; 2733*4882a593Smuzhiyun uint8_t network_id_valid; 2734*4882a593Smuzhiyun UCHAR MCC[3]; 2735*4882a593Smuzhiyun UCHAR MNC[3]; 2736*4882a593Smuzhiyun 2737*4882a593Smuzhiyun uint8_t tac_valid; 2738*4882a593Smuzhiyun uint16_t tac; 2739*4882a593Smuzhiyun } __attribute__ ((packed)) NR5G_SYSTEM_INFO, *PNR5G_SYSTEM_INFO; 2740*4882a593Smuzhiyun 2741*4882a593Smuzhiyun #if 0 2742*4882a593Smuzhiyun typedef struct _QMINAS_SERVING_SYSTEM_IND_MSG 2743*4882a593Smuzhiyun { 2744*4882a593Smuzhiyun USHORT Type; 2745*4882a593Smuzhiyun USHORT Length; 2746*4882a593Smuzhiyun } QMINAS_SERVING_SYSTEM_IND_MSG, *PQMINAS_SERVING_SYSTEM_IND_MSG; 2747*4882a593Smuzhiyun 2748*4882a593Smuzhiyun typedef struct _QMINAS_SET_PREFERRED_NETWORK_REQ_MSG 2749*4882a593Smuzhiyun { 2750*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2751*4882a593Smuzhiyun USHORT Length; 2752*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 2753*4882a593Smuzhiyun USHORT TLVLength; // 4 2754*4882a593Smuzhiyun USHORT NumPreferredNetwork; 2755*4882a593Smuzhiyun USHORT MobileCountryCode; 2756*4882a593Smuzhiyun USHORT MobileNetworkCode; 2757*4882a593Smuzhiyun USHORT RadioAccess; 2758*4882a593Smuzhiyun } QMINAS_SET_PREFERRED_NETWORK_REQ_MSG, *PQMINAS_SET_PREFERRED_NETWORK_REQ_MSG; 2759*4882a593Smuzhiyun 2760*4882a593Smuzhiyun typedef struct _QMINAS_SET_PREFERRED_NETWORK_RESP_MSG 2761*4882a593Smuzhiyun { 2762*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2763*4882a593Smuzhiyun USHORT Length; 2764*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 2765*4882a593Smuzhiyun USHORT TLVLength; // 4 2766*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 2767*4882a593Smuzhiyun // QMI_RESULT_FAILURE 2768*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 2769*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 2770*4882a593Smuzhiyun // QMI_ERR_INTERNAL 2771*4882a593Smuzhiyun // QMI_ERR_FAULT 2772*4882a593Smuzhiyun } QMINAS_SET_PREFERRED_NETWORK_RESP_MSG, *PQMINAS_SET_PREFERRED_NETWORK_RESP_MSG; 2773*4882a593Smuzhiyun 2774*4882a593Smuzhiyun typedef struct _QMINAS_SET_FORBIDDEN_NETWORK_REQ_MSG 2775*4882a593Smuzhiyun { 2776*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2777*4882a593Smuzhiyun USHORT Length; 2778*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 2779*4882a593Smuzhiyun USHORT TLVLength; // 4 2780*4882a593Smuzhiyun USHORT NumForbiddenNetwork; 2781*4882a593Smuzhiyun USHORT MobileCountryCode; 2782*4882a593Smuzhiyun USHORT MobileNetworkCode; 2783*4882a593Smuzhiyun } QMINAS_SET_FORBIDDEN_NETWORK_REQ_MSG, *PQMINAS_SET_FORBIDDEN_NETWORK_REQ_MSG; 2784*4882a593Smuzhiyun 2785*4882a593Smuzhiyun typedef struct _QMINAS_SET_FORBIDDEN_NETWORK_RESP_MSG 2786*4882a593Smuzhiyun { 2787*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2788*4882a593Smuzhiyun USHORT Length; 2789*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 2790*4882a593Smuzhiyun USHORT TLVLength; // 4 2791*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 2792*4882a593Smuzhiyun // QMI_RESULT_FAILURE 2793*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 2794*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 2795*4882a593Smuzhiyun // QMI_ERR_INTERNAL 2796*4882a593Smuzhiyun // QMI_ERR_FAULT 2797*4882a593Smuzhiyun } QMINAS_SET_FORBIDDEN_NETWORK_RESP_MSG, *PQMINAS_SET_FORBIDDEN_NETWORK_RESP_MSG; 2798*4882a593Smuzhiyun 2799*4882a593Smuzhiyun typedef struct _QMINAS_PERFORM_NETWORK_SCAN_REQ_MSG 2800*4882a593Smuzhiyun { 2801*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2802*4882a593Smuzhiyun USHORT Length; 2803*4882a593Smuzhiyun } QMINAS_PERFORM_NETWORK_SCAN_REQ_MSG, *PQMINAS_PERFORM_NETWORK_SCAN_REQ_MSG; 2804*4882a593Smuzhiyun 2805*4882a593Smuzhiyun typedef struct _VISIBLE_NETWORK 2806*4882a593Smuzhiyun { 2807*4882a593Smuzhiyun USHORT MobileCountryCode; 2808*4882a593Smuzhiyun USHORT MobileNetworkCode; 2809*4882a593Smuzhiyun UCHAR NetworkStatus; 2810*4882a593Smuzhiyun UCHAR NetworkDesclen; 2811*4882a593Smuzhiyun } VISIBLE_NETWORK, *PVISIBLE_NETWORK; 2812*4882a593Smuzhiyun 2813*4882a593Smuzhiyun typedef struct _QMINAS_PERFORM_NETWORK_SCAN_RESP_MSG 2814*4882a593Smuzhiyun { 2815*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2816*4882a593Smuzhiyun USHORT Length; 2817*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 2818*4882a593Smuzhiyun USHORT TLVLength; // 4 2819*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 2820*4882a593Smuzhiyun // QMI_RESULT_FAILURE 2821*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 2822*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 2823*4882a593Smuzhiyun // QMI_ERR_INTERNAL 2824*4882a593Smuzhiyun // QMI_ERR_FAULT 2825*4882a593Smuzhiyun } QMINAS_PERFORM_NETWORK_SCAN_RESP_MSG, *PQMINAS_PERFORM_NETWORK_SCAN_RESP_MSG; 2826*4882a593Smuzhiyun 2827*4882a593Smuzhiyun typedef struct _QMINAS_PERFORM_NETWORK_SCAN_NETWORK_INFO 2828*4882a593Smuzhiyun { 2829*4882a593Smuzhiyun UCHAR TLVType; // 0x010 - required parameter 2830*4882a593Smuzhiyun USHORT TLVLength; // length 2831*4882a593Smuzhiyun USHORT NumNetworkInstances; 2832*4882a593Smuzhiyun } QMINAS_PERFORM_NETWORK_SCAN_NETWORK_INFO, *PQMINAS_PERFORM_NETWORK_SCAN_NETWORK_INFO; 2833*4882a593Smuzhiyun 2834*4882a593Smuzhiyun typedef struct _QMINAS_PERFORM_NETWORK_SCAN_RAT_INFO 2835*4882a593Smuzhiyun { 2836*4882a593Smuzhiyun UCHAR TLVType; // 0x011 - required parameter 2837*4882a593Smuzhiyun USHORT TLVLength; // length 2838*4882a593Smuzhiyun USHORT NumInst; 2839*4882a593Smuzhiyun } QMINAS_PERFORM_NETWORK_SCAN_RAT_INFO, *PQMINAS_PERFORM_NETWORK_SCAN_RAT_INFO; 2840*4882a593Smuzhiyun 2841*4882a593Smuzhiyun typedef struct _QMINAS_PERFORM_NETWORK_SCAN_RAT 2842*4882a593Smuzhiyun { 2843*4882a593Smuzhiyun USHORT MCC; 2844*4882a593Smuzhiyun USHORT MNC; 2845*4882a593Smuzhiyun UCHAR RAT; 2846*4882a593Smuzhiyun } QMINAS_PERFORM_NETWORK_SCAN_RAT, *PQMINAS_PERFORM_NETWORK_SCAN_RAT; 2847*4882a593Smuzhiyun 2848*4882a593Smuzhiyun 2849*4882a593Smuzhiyun typedef struct _QMINAS_MANUAL_NW_REGISTER 2850*4882a593Smuzhiyun { 2851*4882a593Smuzhiyun UCHAR TLV2Type; // 0x02 - result code 2852*4882a593Smuzhiyun USHORT TLV2Length; // 4 2853*4882a593Smuzhiyun USHORT MobileCountryCode; 2854*4882a593Smuzhiyun USHORT MobileNetworkCode; 2855*4882a593Smuzhiyun UCHAR RadioAccess; 2856*4882a593Smuzhiyun } QMINAS_MANUAL_NW_REGISTER, *PQMINAS_MANUAL_NW_REGISTER; 2857*4882a593Smuzhiyun 2858*4882a593Smuzhiyun typedef struct _QMINAS_INITIATE_NW_REGISTER_REQ_MSG 2859*4882a593Smuzhiyun { 2860*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2861*4882a593Smuzhiyun USHORT Length; 2862*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 2863*4882a593Smuzhiyun USHORT TLVLength; // 4 2864*4882a593Smuzhiyun UCHAR RegisterAction; 2865*4882a593Smuzhiyun } QMINAS_INITIATE_NW_REGISTER_REQ_MSG, *PQMINAS_INITIATE_NW_REGISTER_REQ_MSG; 2866*4882a593Smuzhiyun 2867*4882a593Smuzhiyun typedef struct _QMINAS_INITIATE_NW_REGISTER_RESP_MSG 2868*4882a593Smuzhiyun { 2869*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2870*4882a593Smuzhiyun USHORT Length; 2871*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 2872*4882a593Smuzhiyun USHORT TLVLength; // 4 2873*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 2874*4882a593Smuzhiyun // QMI_RESULT_FAILURE 2875*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 2876*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 2877*4882a593Smuzhiyun // QMI_ERR_INTERNAL 2878*4882a593Smuzhiyun // QMI_ERR_FAULT 2879*4882a593Smuzhiyun } QMINAS_INITIATE_NW_REGISTER_RESP_MSG, *PQMINAS_INITIATE_NW_REGISTER_RESP_MSG; 2880*4882a593Smuzhiyun 2881*4882a593Smuzhiyun typedef struct _QMINAS_SET_TECHNOLOGY_PREF_REQ_MSG 2882*4882a593Smuzhiyun { 2883*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2884*4882a593Smuzhiyun USHORT Length; 2885*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 2886*4882a593Smuzhiyun USHORT TLVLength; // 4 2887*4882a593Smuzhiyun USHORT TechPref; 2888*4882a593Smuzhiyun UCHAR Duration; 2889*4882a593Smuzhiyun } QMINAS_SET_TECHNOLOGY_PREF_REQ_MSG, *PQMINAS_SET_TECHNOLOGY_PREF_REQ_MSG; 2890*4882a593Smuzhiyun 2891*4882a593Smuzhiyun typedef struct _QMINAS_SET_TECHNOLOGY_PREF_RESP_MSG 2892*4882a593Smuzhiyun { 2893*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2894*4882a593Smuzhiyun USHORT Length; 2895*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 2896*4882a593Smuzhiyun USHORT TLVLength; // 4 2897*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 2898*4882a593Smuzhiyun // QMI_RESULT_FAILURE 2899*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 2900*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 2901*4882a593Smuzhiyun // QMI_ERR_INTERNAL 2902*4882a593Smuzhiyun // QMI_ERR_FAULT 2903*4882a593Smuzhiyun } QMINAS_SET_TECHNOLOGY_PREF_RESP_MSG, *PQMINAS_SET_TECHNOLOGY_PREF_RESP_MSG; 2904*4882a593Smuzhiyun 2905*4882a593Smuzhiyun typedef struct _QMINAS_GET_SIGNAL_STRENGTH_REQ_MSG 2906*4882a593Smuzhiyun { 2907*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2908*4882a593Smuzhiyun USHORT Length; 2909*4882a593Smuzhiyun } QMINAS_GET_SIGNAL_STRENGTH_REQ_MSG, *PQMINAS_GET_SIGNAL_STRENGTH_REQ_MSG; 2910*4882a593Smuzhiyun 2911*4882a593Smuzhiyun typedef struct _QMINAS_SIGNAL_STRENGTH 2912*4882a593Smuzhiyun { 2913*4882a593Smuzhiyun CHAR SigStrength; 2914*4882a593Smuzhiyun UCHAR RadioIf; 2915*4882a593Smuzhiyun } QMINAS_SIGNAL_STRENGTH, *PQMINAS_SIGNAL_STRENGTH; 2916*4882a593Smuzhiyun 2917*4882a593Smuzhiyun typedef struct _QMINAS_SIGNAL_STRENGTH_LIST 2918*4882a593Smuzhiyun { 2919*4882a593Smuzhiyun UCHAR TLV3Type; 2920*4882a593Smuzhiyun USHORT TLV3Length; 2921*4882a593Smuzhiyun USHORT NumInstance; 2922*4882a593Smuzhiyun } QMINAS_SIGNAL_STRENGTH_LIST, *PQMINAS_SIGNAL_STRENGTH_LIST; 2923*4882a593Smuzhiyun 2924*4882a593Smuzhiyun 2925*4882a593Smuzhiyun typedef struct _QMINAS_GET_SIGNAL_STRENGTH_RESP_MSG 2926*4882a593Smuzhiyun { 2927*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2928*4882a593Smuzhiyun USHORT Length; 2929*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 2930*4882a593Smuzhiyun USHORT TLVLength; // 4 2931*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 2932*4882a593Smuzhiyun // QMI_RESULT_FAILURE 2933*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 2934*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 2935*4882a593Smuzhiyun // QMI_ERR_INTERNAL 2936*4882a593Smuzhiyun // QMI_ERR_FAULT 2937*4882a593Smuzhiyun UCHAR TLV2Type; 2938*4882a593Smuzhiyun USHORT TLV2Length; 2939*4882a593Smuzhiyun CHAR SignalStrength; 2940*4882a593Smuzhiyun UCHAR RadioIf; 2941*4882a593Smuzhiyun } QMINAS_GET_SIGNAL_STRENGTH_RESP_MSG, *PQMINAS_GET_SIGNAL_STRENGTH_RESP_MSG; 2942*4882a593Smuzhiyun 2943*4882a593Smuzhiyun 2944*4882a593Smuzhiyun typedef struct _QMINAS_SET_EVENT_REPORT_REQ_MSG 2945*4882a593Smuzhiyun { 2946*4882a593Smuzhiyun USHORT Type; 2947*4882a593Smuzhiyun USHORT Length; 2948*4882a593Smuzhiyun UCHAR TLVType; 2949*4882a593Smuzhiyun USHORT TLVLength; 2950*4882a593Smuzhiyun UCHAR ReportSigStrength; 2951*4882a593Smuzhiyun UCHAR NumTresholds; 2952*4882a593Smuzhiyun CHAR TresholdList[2]; 2953*4882a593Smuzhiyun } QMINAS_SET_EVENT_REPORT_REQ_MSG, *PQMINAS_SET_EVENT_REPORT_REQ_MSG; 2954*4882a593Smuzhiyun 2955*4882a593Smuzhiyun typedef struct _QMINAS_SET_EVENT_REPORT_RESP_MSG 2956*4882a593Smuzhiyun { 2957*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 2958*4882a593Smuzhiyun USHORT Length; 2959*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 2960*4882a593Smuzhiyun USHORT TLVLength; // 4 2961*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 2962*4882a593Smuzhiyun // QMI_RESULT_FAILURE 2963*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 2964*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 2965*4882a593Smuzhiyun // QMI_ERR_INTERNAL 2966*4882a593Smuzhiyun // QMI_ERR_FAULT 2967*4882a593Smuzhiyun } QMINAS_SET_EVENT_REPORT_RESP_MSG, *PQMINAS_SET_EVENT_REPORT_RESP_MSG; 2968*4882a593Smuzhiyun 2969*4882a593Smuzhiyun typedef struct _QMINAS_SIGNAL_STRENGTH_TLV 2970*4882a593Smuzhiyun { 2971*4882a593Smuzhiyun UCHAR TLVType; 2972*4882a593Smuzhiyun USHORT TLVLength; 2973*4882a593Smuzhiyun CHAR SigStrength; 2974*4882a593Smuzhiyun UCHAR RadioIf; 2975*4882a593Smuzhiyun } QMINAS_SIGNAL_STRENGTH_TLV, *PQMINAS_SIGNAL_STRENGTH_TLV; 2976*4882a593Smuzhiyun 2977*4882a593Smuzhiyun typedef struct _QMINAS_REJECT_CAUSE_TLV 2978*4882a593Smuzhiyun { 2979*4882a593Smuzhiyun UCHAR TLVType; 2980*4882a593Smuzhiyun USHORT TLVLength; 2981*4882a593Smuzhiyun UCHAR ServiceDomain; 2982*4882a593Smuzhiyun USHORT RejectCause; 2983*4882a593Smuzhiyun } QMINAS_REJECT_CAUSE_TLV, *PQMINAS_REJECT_CAUSE_TLV; 2984*4882a593Smuzhiyun 2985*4882a593Smuzhiyun typedef struct _QMINAS_EVENT_REPORT_IND_MSG 2986*4882a593Smuzhiyun { 2987*4882a593Smuzhiyun USHORT Type; 2988*4882a593Smuzhiyun USHORT Length; 2989*4882a593Smuzhiyun } QMINAS_EVENT_REPORT_IND_MSG, *PQMINAS_EVENT_REPORT_IND_MSG; 2990*4882a593Smuzhiyun 2991*4882a593Smuzhiyun typedef struct _QMINAS_GET_RF_BAND_INFO_REQ_MSG 2992*4882a593Smuzhiyun { 2993*4882a593Smuzhiyun USHORT Type; 2994*4882a593Smuzhiyun USHORT Length; 2995*4882a593Smuzhiyun } QMINAS_GET_RF_BAND_INFO_REQ_MSG, *PQMINAS_GET_RF_BAND_INFO_REQ_MSG; 2996*4882a593Smuzhiyun 2997*4882a593Smuzhiyun typedef struct _QMINASRF_BAND_INFO 2998*4882a593Smuzhiyun { 2999*4882a593Smuzhiyun UCHAR RadioIf; 3000*4882a593Smuzhiyun USHORT ActiveBand; 3001*4882a593Smuzhiyun USHORT ActiveChannel; 3002*4882a593Smuzhiyun } QMINASRF_BAND_INFO, *PQMINASRF_BAND_INFO; 3003*4882a593Smuzhiyun 3004*4882a593Smuzhiyun typedef struct _QMINAS_GET_RF_BAND_INFO_RESP_MSG 3005*4882a593Smuzhiyun { 3006*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 3007*4882a593Smuzhiyun USHORT Length; 3008*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 3009*4882a593Smuzhiyun USHORT TLVLength; // 4 3010*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 3011*4882a593Smuzhiyun // QMI_RESULT_FAILURE 3012*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 3013*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 3014*4882a593Smuzhiyun // QMI_ERR_INTERNAL 3015*4882a593Smuzhiyun // QMI_ERR_FAULT 3016*4882a593Smuzhiyun UCHAR TLV2Type; 3017*4882a593Smuzhiyun USHORT TLV2Length; 3018*4882a593Smuzhiyun UCHAR NumInstances; 3019*4882a593Smuzhiyun } QMINAS_GET_RF_BAND_INFO_RESP_MSG, *PQMINAS_GET_RF_BAND_INFO_RESP_MSG; 3020*4882a593Smuzhiyun 3021*4882a593Smuzhiyun 3022*4882a593Smuzhiyun typedef struct _QMINAS_GET_PLMN_NAME_REQ_MSG 3023*4882a593Smuzhiyun { 3024*4882a593Smuzhiyun USHORT Type; 3025*4882a593Smuzhiyun USHORT Length; 3026*4882a593Smuzhiyun UCHAR TLVType; 3027*4882a593Smuzhiyun USHORT TLVLength; 3028*4882a593Smuzhiyun USHORT MCC; 3029*4882a593Smuzhiyun USHORT MNC; 3030*4882a593Smuzhiyun } QMINAS_GET_PLMN_NAME_REQ_MSG, *PQMINAS_GET_PLMN_NAME_REQ_MSG; 3031*4882a593Smuzhiyun 3032*4882a593Smuzhiyun typedef struct _QMINAS_GET_PLMN_NAME_RESP_MSG 3033*4882a593Smuzhiyun { 3034*4882a593Smuzhiyun USHORT Type; 3035*4882a593Smuzhiyun USHORT Length; 3036*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 3037*4882a593Smuzhiyun USHORT TLVLength; // 4 3038*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 3039*4882a593Smuzhiyun // QMI_RESULT_FAILURE 3040*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 3041*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 3042*4882a593Smuzhiyun // QMI_ERR_INTERNAL 3043*4882a593Smuzhiyun // QMI_ERR_FAULT 3044*4882a593Smuzhiyun } QMINAS_GET_PLMN_NAME_RESP_MSG, *PQMINAS_GET_PLMN_NAME_RESP_MSG; 3045*4882a593Smuzhiyun 3046*4882a593Smuzhiyun typedef struct _QMINAS_GET_PLMN_NAME_SPN 3047*4882a593Smuzhiyun { 3048*4882a593Smuzhiyun UCHAR TLVType; 3049*4882a593Smuzhiyun USHORT TLVLength; 3050*4882a593Smuzhiyun UCHAR SPN_Enc; 3051*4882a593Smuzhiyun UCHAR SPN_Len; 3052*4882a593Smuzhiyun } QMINAS_GET_PLMN_NAME_SPN, *PQMINAS_GET_PLMN_NAME_SPN; 3053*4882a593Smuzhiyun 3054*4882a593Smuzhiyun typedef struct _QMINAS_GET_PLMN_NAME_PLMN 3055*4882a593Smuzhiyun { 3056*4882a593Smuzhiyun UCHAR PLMN_Enc; 3057*4882a593Smuzhiyun UCHAR PLMN_Ci; 3058*4882a593Smuzhiyun UCHAR PLMN_SpareBits; 3059*4882a593Smuzhiyun UCHAR PLMN_Len; 3060*4882a593Smuzhiyun } QMINAS_GET_PLMN_NAME_PLMN, *PQMINAS_GET_PLMN_NAME_PLMN; 3061*4882a593Smuzhiyun 3062*4882a593Smuzhiyun typedef struct _QMINAS_INITIATE_ATTACH_REQ_MSG 3063*4882a593Smuzhiyun { 3064*4882a593Smuzhiyun USHORT Type; 3065*4882a593Smuzhiyun USHORT Length; 3066*4882a593Smuzhiyun UCHAR TLVType; 3067*4882a593Smuzhiyun USHORT TLVLength; 3068*4882a593Smuzhiyun UCHAR PsAttachAction; 3069*4882a593Smuzhiyun } QMINAS_INITIATE_ATTACH_REQ_MSG, *PQMINAS_INITIATE_ATTACH_REQ_MSG; 3070*4882a593Smuzhiyun 3071*4882a593Smuzhiyun typedef struct _QMINAS_INITIATE_ATTACH_RESP_MSG 3072*4882a593Smuzhiyun { 3073*4882a593Smuzhiyun USHORT Type; // QMUX type 0x0003 3074*4882a593Smuzhiyun USHORT Length; 3075*4882a593Smuzhiyun UCHAR TLVType; // 0x02 - result code 3076*4882a593Smuzhiyun USHORT TLVLength; // 4 3077*4882a593Smuzhiyun USHORT QMUXResult; // QMI_RESULT_SUCCESS 3078*4882a593Smuzhiyun // QMI_RESULT_FAILURE 3079*4882a593Smuzhiyun USHORT QMUXError; // QMI_ERR_INVALID_ARG 3080*4882a593Smuzhiyun // QMI_ERR_NO_MEMORY 3081*4882a593Smuzhiyun // QMI_ERR_INTERNAL 3082*4882a593Smuzhiyun // QMI_ERR_FAULT 3083*4882a593Smuzhiyun } QMINAS_INITIATE_ATTACH_RESP_MSG, *PQMINAS_INITIATE_ATTACH_RESP_MSG; 3084*4882a593Smuzhiyun #endif 3085*4882a593Smuzhiyun typedef struct { 3086*4882a593Smuzhiyun UCHAR TLVType; 3087*4882a593Smuzhiyun USHORT TLVLength; 3088*4882a593Smuzhiyun CHAR rssi; 3089*4882a593Smuzhiyun SHORT ecio; 3090*4882a593Smuzhiyun } __attribute__ ((packed)) QMINAS_SIG_INFO_CDMA_TLV_MSG, *PQMINAS_SIG_INFO_CDMA_TLV_MSG; 3091*4882a593Smuzhiyun 3092*4882a593Smuzhiyun typedef struct { 3093*4882a593Smuzhiyun UCHAR TLVType; 3094*4882a593Smuzhiyun USHORT TLVLength; 3095*4882a593Smuzhiyun CHAR rssi; 3096*4882a593Smuzhiyun SHORT ecio; 3097*4882a593Smuzhiyun CHAR sinr; 3098*4882a593Smuzhiyun INT io; 3099*4882a593Smuzhiyun } __attribute__ ((packed)) QMINAS_SIG_INFO_HDR_TLV_MSG, *PQMINAS_SIG_INFO_HDR_TLV_MSG; 3100*4882a593Smuzhiyun 3101*4882a593Smuzhiyun typedef struct { 3102*4882a593Smuzhiyun UCHAR TLVType; 3103*4882a593Smuzhiyun USHORT TLVLength; 3104*4882a593Smuzhiyun CHAR rssi; 3105*4882a593Smuzhiyun } __attribute__ ((packed)) QMINAS_SIG_INFO_GSM_TLV_MSG, *PQMINAS_SIG_INFO_GSM_TLV_MSG; 3106*4882a593Smuzhiyun 3107*4882a593Smuzhiyun typedef struct { 3108*4882a593Smuzhiyun UCHAR TLVType; 3109*4882a593Smuzhiyun USHORT TLVLength; 3110*4882a593Smuzhiyun CHAR rssi; 3111*4882a593Smuzhiyun SHORT ecio; 3112*4882a593Smuzhiyun } __attribute__ ((packed)) QMINAS_SIG_INFO_WCDMA_TLV_MSG, *PQMINAS_SIG_INFO_WCDMA_TLV_MSG; 3113*4882a593Smuzhiyun 3114*4882a593Smuzhiyun typedef struct { 3115*4882a593Smuzhiyun UCHAR TLVType; 3116*4882a593Smuzhiyun USHORT TLVLength; 3117*4882a593Smuzhiyun CHAR rssi; 3118*4882a593Smuzhiyun CHAR rsrq; 3119*4882a593Smuzhiyun SHORT rsrp; 3120*4882a593Smuzhiyun SHORT snr; 3121*4882a593Smuzhiyun } __attribute__ ((packed)) QMINAS_SIG_INFO_LTE_TLV_MSG, *PQMINAS_SIG_INFO_LTE_TLV_MSG; 3122*4882a593Smuzhiyun 3123*4882a593Smuzhiyun typedef struct { 3124*4882a593Smuzhiyun UCHAR TLVType; 3125*4882a593Smuzhiyun USHORT TLVLength; 3126*4882a593Smuzhiyun CHAR rscp; 3127*4882a593Smuzhiyun } __attribute__ ((packed)) QMINAS_SIG_INFO_TDSCDMA_TLV_MSG, *PQMINAS_SIG_INFO_TDSCDMA_TLV_MSG; 3128*4882a593Smuzhiyun 3129*4882a593Smuzhiyun typedef struct { 3130*4882a593Smuzhiyun UCHAR TLVType; 3131*4882a593Smuzhiyun USHORT TLVLength; 3132*4882a593Smuzhiyun SHORT rsrp; 3133*4882a593Smuzhiyun SHORT snr; 3134*4882a593Smuzhiyun } __attribute__ ((packed)) QMINAS_SIG_INFO_5G_NSA_TLV_MSG, *PQMINAS_SIG_INFO_5G_NSA_TLV_MSG; 3135*4882a593Smuzhiyun 3136*4882a593Smuzhiyun typedef struct { 3137*4882a593Smuzhiyun UCHAR TLVType; 3138*4882a593Smuzhiyun USHORT TLVLength; 3139*4882a593Smuzhiyun SHORT nr5g_rsrq; 3140*4882a593Smuzhiyun } __attribute__ ((packed)) QMINAS_SIG_INFO_5G_SA_TLV_MSG, *PQMINAS_SIG_INFO_5G_SA_TLV_MSG; 3141*4882a593Smuzhiyun // ======================= End of NAS ============================== 3142*4882a593Smuzhiyun 3143*4882a593Smuzhiyun // ======================= UIM ============================== 3144*4882a593Smuzhiyun #define QMIUIM_READ_TRANSPARENT_REQ 0x0020 3145*4882a593Smuzhiyun #define QMIUIM_READ_TRANSPARENT_RESP 0x0020 3146*4882a593Smuzhiyun #define QMIUIM_READ_TRANSPARENT_IND 0x0020 3147*4882a593Smuzhiyun #define QMIUIM_READ_RECORD_REQ 0x0021 3148*4882a593Smuzhiyun #define QMIUIM_READ_RECORD_RESP 0x0021 3149*4882a593Smuzhiyun #define QMIUIM_READ_RECORD_IND 0x0021 3150*4882a593Smuzhiyun #define QMIUIM_WRITE_TRANSPARENT_REQ 0x0022 3151*4882a593Smuzhiyun #define QMIUIM_WRITE_TRANSPARENT_RESP 0x0022 3152*4882a593Smuzhiyun #define QMIUIM_WRITE_TRANSPARENT_IND 0x0022 3153*4882a593Smuzhiyun #define QMIUIM_WRITE_RECORD_REQ 0x0023 3154*4882a593Smuzhiyun #define QMIUIM_WRITE_RECORD_RESP 0x0023 3155*4882a593Smuzhiyun #define QMIUIM_WRITE_RECORD_IND 0x0023 3156*4882a593Smuzhiyun #define QMIUIM_SET_PIN_PROTECTION_REQ 0x0025 3157*4882a593Smuzhiyun #define QMIUIM_SET_PIN_PROTECTION_RESP 0x0025 3158*4882a593Smuzhiyun #define QMIUIM_SET_PIN_PROTECTION_IND 0x0025 3159*4882a593Smuzhiyun #define QMIUIM_VERIFY_PIN_REQ 0x0026 3160*4882a593Smuzhiyun #define QMIUIM_VERIFY_PIN_RESP 0x0026 3161*4882a593Smuzhiyun #define QMIUIM_VERIFY_PIN_IND 0x0026 3162*4882a593Smuzhiyun #define QMIUIM_UNBLOCK_PIN_REQ 0x0027 3163*4882a593Smuzhiyun #define QMIUIM_UNBLOCK_PIN_RESP 0x0027 3164*4882a593Smuzhiyun #define QMIUIM_UNBLOCK_PIN_IND 0x0027 3165*4882a593Smuzhiyun #define QMIUIM_CHANGE_PIN_REQ 0x0028 3166*4882a593Smuzhiyun #define QMIUIM_CHANGE_PIN_RESP 0x0028 3167*4882a593Smuzhiyun #define QMIUIM_CHANGE_PIN_IND 0x0028 3168*4882a593Smuzhiyun #define QMIUIM_DEPERSONALIZATION_REQ 0x0029 3169*4882a593Smuzhiyun #define QMIUIM_DEPERSONALIZATION_RESP 0x0029 3170*4882a593Smuzhiyun #define QMIUIM_EVENT_REG_REQ 0x002E 3171*4882a593Smuzhiyun #define QMIUIM_EVENT_REG_RESP 0x002E 3172*4882a593Smuzhiyun #define QMIUIM_GET_CARD_STATUS_REQ 0x002F 3173*4882a593Smuzhiyun #define QMIUIM_GET_CARD_STATUS_RESP 0x002F 3174*4882a593Smuzhiyun #define QMIUIM_STATUS_CHANGE_IND 0x0032 3175*4882a593Smuzhiyun 3176*4882a593Smuzhiyun 3177*4882a593Smuzhiyun typedef struct _QMIUIM_GET_CARD_STATUS_RESP_MSG 3178*4882a593Smuzhiyun { 3179*4882a593Smuzhiyun USHORT Type; 3180*4882a593Smuzhiyun USHORT Length; 3181*4882a593Smuzhiyun UCHAR TLVType; 3182*4882a593Smuzhiyun USHORT TLVLength; 3183*4882a593Smuzhiyun USHORT QMUXResult; 3184*4882a593Smuzhiyun USHORT QMUXError; 3185*4882a593Smuzhiyun } __attribute__ ((packed)) QMIUIM_GET_CARD_STATUS_RESP_MSG, *PQMIUIM_GET_CARD_STATUS_RESP_MSG; 3186*4882a593Smuzhiyun 3187*4882a593Smuzhiyun #define UIM_CARD_STATE_ABSENT 0x00 3188*4882a593Smuzhiyun #define UIM_CARD_STATE_PRESENT 0x01 3189*4882a593Smuzhiyun #define UIM_CARD_STATE_ERROR 0x02 3190*4882a593Smuzhiyun 3191*4882a593Smuzhiyun typedef struct _QMIUIM_CARD_STATUS 3192*4882a593Smuzhiyun { 3193*4882a593Smuzhiyun UCHAR TLVType; 3194*4882a593Smuzhiyun USHORT TLVLength; 3195*4882a593Smuzhiyun USHORT IndexGWPri; 3196*4882a593Smuzhiyun USHORT Index1XPri; 3197*4882a593Smuzhiyun USHORT IndexGWSec; 3198*4882a593Smuzhiyun USHORT Index1XSec; 3199*4882a593Smuzhiyun UCHAR NumSlot; 3200*4882a593Smuzhiyun UCHAR CardState; 3201*4882a593Smuzhiyun UCHAR UPINState; 3202*4882a593Smuzhiyun UCHAR UPINRetries; 3203*4882a593Smuzhiyun UCHAR UPUKRetries; 3204*4882a593Smuzhiyun UCHAR ErrorCode; 3205*4882a593Smuzhiyun UCHAR NumApp; 3206*4882a593Smuzhiyun UCHAR AppType; 3207*4882a593Smuzhiyun UCHAR AppState; 3208*4882a593Smuzhiyun UCHAR PersoState; 3209*4882a593Smuzhiyun UCHAR PersoFeature; 3210*4882a593Smuzhiyun UCHAR PersoRetries; 3211*4882a593Smuzhiyun UCHAR PersoUnblockRetries; 3212*4882a593Smuzhiyun UCHAR AIDLength; 3213*4882a593Smuzhiyun } __attribute__ ((packed)) QMIUIM_CARD_STATUS, *PQMIUIM_CARD_STATUS; 3214*4882a593Smuzhiyun 3215*4882a593Smuzhiyun typedef struct _QMIUIM_PIN_STATE 3216*4882a593Smuzhiyun { 3217*4882a593Smuzhiyun UCHAR UnivPIN; 3218*4882a593Smuzhiyun UCHAR PIN1State; 3219*4882a593Smuzhiyun UCHAR PIN1Retries; 3220*4882a593Smuzhiyun UCHAR PUK1Retries; 3221*4882a593Smuzhiyun UCHAR PIN2State; 3222*4882a593Smuzhiyun UCHAR PIN2Retries; 3223*4882a593Smuzhiyun UCHAR PUK2Retries; 3224*4882a593Smuzhiyun } __attribute__ ((packed)) QMIUIM_PIN_STATE, *PQMIUIM_PIN_STATE; 3225*4882a593Smuzhiyun 3226*4882a593Smuzhiyun typedef struct _QMIUIM_VERIFY_PIN_REQ_MSG 3227*4882a593Smuzhiyun { 3228*4882a593Smuzhiyun USHORT Type; 3229*4882a593Smuzhiyun USHORT Length; 3230*4882a593Smuzhiyun UCHAR TLVType; 3231*4882a593Smuzhiyun USHORT TLVLength; 3232*4882a593Smuzhiyun UCHAR Session_Type; 3233*4882a593Smuzhiyun UCHAR Aid_Len; 3234*4882a593Smuzhiyun UCHAR TLV2Type; 3235*4882a593Smuzhiyun USHORT TLV2Length; 3236*4882a593Smuzhiyun UCHAR PINID; 3237*4882a593Smuzhiyun UCHAR PINLen; 3238*4882a593Smuzhiyun UCHAR PINValue; 3239*4882a593Smuzhiyun } __attribute__ ((packed)) QMIUIM_VERIFY_PIN_REQ_MSG, *PQMIUIM_VERIFY_PIN_REQ_MSG; 3240*4882a593Smuzhiyun 3241*4882a593Smuzhiyun typedef struct _QMIUIM_VERIFY_PIN_RESP_MSG 3242*4882a593Smuzhiyun { 3243*4882a593Smuzhiyun USHORT Type; 3244*4882a593Smuzhiyun USHORT Length; 3245*4882a593Smuzhiyun UCHAR TLVType; 3246*4882a593Smuzhiyun USHORT TLVLength; 3247*4882a593Smuzhiyun USHORT QMUXResult; 3248*4882a593Smuzhiyun USHORT QMUXError; 3249*4882a593Smuzhiyun UCHAR TLV2Type; 3250*4882a593Smuzhiyun USHORT TLV2Length; 3251*4882a593Smuzhiyun UCHAR PINVerifyRetriesLeft; 3252*4882a593Smuzhiyun UCHAR PINUnblockRetriesLeft; 3253*4882a593Smuzhiyun } __attribute__ ((packed)) QMIUIM_VERIFY_PIN_RESP_MSG, *PQMIUIM_VERIFY_PIN_RESP_MSG; 3254*4882a593Smuzhiyun 3255*4882a593Smuzhiyun typedef struct _QMIUIM_READ_TRANSPARENT_REQ_MSG 3256*4882a593Smuzhiyun { 3257*4882a593Smuzhiyun USHORT Type; 3258*4882a593Smuzhiyun USHORT Length; 3259*4882a593Smuzhiyun UCHAR TLVType; 3260*4882a593Smuzhiyun USHORT TLVLength; 3261*4882a593Smuzhiyun UCHAR Session_Type; 3262*4882a593Smuzhiyun UCHAR Aid_Len; 3263*4882a593Smuzhiyun UCHAR TLV2Type; 3264*4882a593Smuzhiyun USHORT TLV2Length; 3265*4882a593Smuzhiyun USHORT file_id; 3266*4882a593Smuzhiyun UCHAR path_len; 3267*4882a593Smuzhiyun UCHAR path[]; 3268*4882a593Smuzhiyun } __attribute__ ((packed)) QMIUIM_READ_TRANSPARENT_REQ_MSG, *PQMIUIM_READ_TRANSPARENT_REQ_MSG; 3269*4882a593Smuzhiyun 3270*4882a593Smuzhiyun typedef struct _READ_TRANSPARENT_TLV 3271*4882a593Smuzhiyun { 3272*4882a593Smuzhiyun UCHAR TLVType; 3273*4882a593Smuzhiyun USHORT TLVLength; 3274*4882a593Smuzhiyun USHORT Offset; 3275*4882a593Smuzhiyun USHORT Length; 3276*4882a593Smuzhiyun } __attribute__ ((packed)) READ_TRANSPARENT_TLV, *PREAD_TRANSPARENT_TLV; 3277*4882a593Smuzhiyun 3278*4882a593Smuzhiyun typedef struct _QMIUIM_CONTENT 3279*4882a593Smuzhiyun { 3280*4882a593Smuzhiyun UCHAR TLVType; 3281*4882a593Smuzhiyun USHORT TLVLength; 3282*4882a593Smuzhiyun USHORT content_len; 3283*4882a593Smuzhiyun UCHAR content[]; 3284*4882a593Smuzhiyun } __attribute__ ((packed)) QMIUIM_CONTENT, *PQMIUIM_CONTENT; 3285*4882a593Smuzhiyun 3286*4882a593Smuzhiyun typedef struct _QMIUIM_READ_TRANSPARENT_RESP_MSG 3287*4882a593Smuzhiyun { 3288*4882a593Smuzhiyun USHORT Type; 3289*4882a593Smuzhiyun USHORT Length; 3290*4882a593Smuzhiyun UCHAR TLVType; 3291*4882a593Smuzhiyun USHORT TLVLength; 3292*4882a593Smuzhiyun USHORT QMUXResult; 3293*4882a593Smuzhiyun USHORT QMUXError; 3294*4882a593Smuzhiyun } __attribute__ ((packed)) QMIUIM_READ_TRANSPARENT_RESP_MSG, *PQMIUIM_READ_TRANSPARENT_RESP_MSG; 3295*4882a593Smuzhiyun 3296*4882a593Smuzhiyun typedef struct _QMUX_MSG 3297*4882a593Smuzhiyun { 3298*4882a593Smuzhiyun QCQMUX_HDR QMUXHdr; 3299*4882a593Smuzhiyun union 3300*4882a593Smuzhiyun { 3301*4882a593Smuzhiyun // Message Header 3302*4882a593Smuzhiyun QCQMUX_MSG_HDR QMUXMsgHdr; 3303*4882a593Smuzhiyun QCQMUX_MSG_HDR_RESP QMUXMsgHdrResp; 3304*4882a593Smuzhiyun 3305*4882a593Smuzhiyun // QMIWDS Message 3306*4882a593Smuzhiyun #if 0 3307*4882a593Smuzhiyun QMIWDS_GET_PKT_SRVC_STATUS_REQ_MSG PacketServiceStatusReq; 3308*4882a593Smuzhiyun QMIWDS_GET_PKT_SRVC_STATUS_RESP_MSG PacketServiceStatusRsp; 3309*4882a593Smuzhiyun QMIWDS_GET_PKT_SRVC_STATUS_IND_MSG PacketServiceStatusInd; 3310*4882a593Smuzhiyun QMIWDS_EVENT_REPORT_IND_MSG EventReportInd; 3311*4882a593Smuzhiyun QMIWDS_GET_CURRENT_CHANNEL_RATE_REQ_MSG GetCurrChannelRateReq; 3312*4882a593Smuzhiyun QMIWDS_GET_CURRENT_CHANNEL_RATE_RESP_MSG GetCurrChannelRateRsp; 3313*4882a593Smuzhiyun QMIWDS_GET_PKT_STATISTICS_REQ_MSG GetPktStatsReq; 3314*4882a593Smuzhiyun QMIWDS_GET_PKT_STATISTICS_RESP_MSG GetPktStatsRsp; 3315*4882a593Smuzhiyun QMIWDS_SET_EVENT_REPORT_REQ_MSG EventReportReq; 3316*4882a593Smuzhiyun QMIWDS_SET_EVENT_REPORT_RESP_MSG EventReportRsp; 3317*4882a593Smuzhiyun #endif 3318*4882a593Smuzhiyun //#ifdef QC_IP_MODE 3319*4882a593Smuzhiyun QMIWDS_GET_RUNTIME_SETTINGS_REQ_MSG GetRuntimeSettingsReq; 3320*4882a593Smuzhiyun QMIWDS_GET_RUNTIME_SETTINGS_RESP_MSG GetRuntimeSettingsRsp; 3321*4882a593Smuzhiyun //#endif // QC_IP_MODE 3322*4882a593Smuzhiyun QMIWDS_SET_CLIENT_IP_FAMILY_PREF_REQ_MSG SetClientIpFamilyPrefReq; 3323*4882a593Smuzhiyun QMIWDS_SET_CLIENT_IP_FAMILY_PREF_RESP_MSG SetClientIpFamilyPrefResp; 3324*4882a593Smuzhiyun QMIWDS_SET_AUTO_CONNECT_REQ_MSG SetAutoConnectReq; 3325*4882a593Smuzhiyun #if 0 3326*4882a593Smuzhiyun QMIWDS_GET_MIP_MODE_REQ_MSG GetMipModeReq; 3327*4882a593Smuzhiyun QMIWDS_GET_MIP_MODE_RESP_MSG GetMipModeResp; 3328*4882a593Smuzhiyun #endif 3329*4882a593Smuzhiyun QMIWDS_START_NETWORK_INTERFACE_REQ_MSG StartNwInterfaceReq; 3330*4882a593Smuzhiyun QMIWDS_START_NETWORK_INTERFACE_RESP_MSG StartNwInterfaceResp; 3331*4882a593Smuzhiyun QMIWDS_STOP_NETWORK_INTERFACE_REQ_MSG StopNwInterfaceReq; 3332*4882a593Smuzhiyun QMIWDS_STOP_NETWORK_INTERFACE_RESP_MSG StopNwInterfaceResp; 3333*4882a593Smuzhiyun QMIWDS_GET_DEFAULT_SETTINGS_REQ_MSG GetDefaultSettingsReq; 3334*4882a593Smuzhiyun QMIWDS_GET_DEFAULT_SETTINGS_RESP_MSG GetDefaultSettingsResp; 3335*4882a593Smuzhiyun QMIWDS_MODIFY_PROFILE_SETTINGS_REQ_MSG ModifyProfileSettingsReq; 3336*4882a593Smuzhiyun QMIWDS_MODIFY_PROFILE_SETTINGS_RESP_MSG ModifyProfileSettingsResp; 3337*4882a593Smuzhiyun QMIWDS_GET_PROFILE_SETTINGS_REQ_MSG GetProfileSettingsReq; 3338*4882a593Smuzhiyun #if 0 3339*4882a593Smuzhiyun QMIWDS_GET_DATA_BEARER_REQ_MSG GetDataBearerReq; 3340*4882a593Smuzhiyun QMIWDS_GET_DATA_BEARER_RESP_MSG GetDataBearerResp; 3341*4882a593Smuzhiyun QMIWDS_DUN_CALL_INFO_REQ_MSG DunCallInfoReq; 3342*4882a593Smuzhiyun QMIWDS_DUN_CALL_INFO_RESP_MSG DunCallInfoResp; 3343*4882a593Smuzhiyun #endif 3344*4882a593Smuzhiyun QMIWDS_BIND_MUX_DATA_PORT_REQ_MSG BindMuxDataPortReq; 3345*4882a593Smuzhiyun 3346*4882a593Smuzhiyun // QMIDMS Messages 3347*4882a593Smuzhiyun #if 0 3348*4882a593Smuzhiyun QMIDMS_GET_DEVICE_MFR_REQ_MSG GetDeviceMfrReq; 3349*4882a593Smuzhiyun QMIDMS_GET_DEVICE_MFR_RESP_MSG GetDeviceMfrRsp; 3350*4882a593Smuzhiyun QMIDMS_GET_DEVICE_MODEL_ID_REQ_MSG GetDeviceModeIdReq; 3351*4882a593Smuzhiyun QMIDMS_GET_DEVICE_MODEL_ID_RESP_MSG GetDeviceModeIdRsp; 3352*4882a593Smuzhiyun QMIDMS_GET_DEVICE_REV_ID_REQ_MSG GetDeviceRevIdReq; 3353*4882a593Smuzhiyun QMIDMS_GET_DEVICE_REV_ID_RESP_MSG GetDeviceRevIdRsp; 3354*4882a593Smuzhiyun QMIDMS_GET_MSISDN_REQ_MSG GetMsisdnReq; 3355*4882a593Smuzhiyun QMIDMS_GET_MSISDN_RESP_MSG GetMsisdnRsp; 3356*4882a593Smuzhiyun QMIDMS_GET_DEVICE_SERIAL_NUMBERS_REQ_MSG GetDeviceSerialNumReq; 3357*4882a593Smuzhiyun QMIDMS_GET_DEVICE_SERIAL_NUMBERS_RESP_MSG GetDeviceSerialNumRsp; 3358*4882a593Smuzhiyun QMIDMS_GET_DEVICE_CAP_REQ_MSG GetDeviceCapReq; 3359*4882a593Smuzhiyun QMIDMS_GET_DEVICE_CAP_RESP_MSG GetDeviceCapResp; 3360*4882a593Smuzhiyun QMIDMS_GET_BAND_CAP_REQ_MSG GetBandCapReq; 3361*4882a593Smuzhiyun QMIDMS_GET_BAND_CAP_RESP_MSG GetBandCapRsp; 3362*4882a593Smuzhiyun QMIDMS_GET_ACTIVATED_STATUS_REQ_MSG GetActivatedStatusReq; 3363*4882a593Smuzhiyun QMIDMS_GET_ACTIVATED_STATUS_RESP_MSG GetActivatedStatusResp; 3364*4882a593Smuzhiyun QMIDMS_GET_OPERATING_MODE_REQ_MSG GetOperatingModeReq; 3365*4882a593Smuzhiyun QMIDMS_GET_OPERATING_MODE_RESP_MSG GetOperatingModeResp; 3366*4882a593Smuzhiyun #endif 3367*4882a593Smuzhiyun QMIDMS_SET_OPERATING_MODE_REQ_MSG SetOperatingModeReq; 3368*4882a593Smuzhiyun QMIDMS_SET_OPERATING_MODE_RESP_MSG SetOperatingModeResp; 3369*4882a593Smuzhiyun #if 0 3370*4882a593Smuzhiyun QMIDMS_UIM_GET_ICCID_REQ_MSG GetICCIDReq; 3371*4882a593Smuzhiyun QMIDMS_UIM_GET_ICCID_RESP_MSG GetICCIDResp; 3372*4882a593Smuzhiyun QMIDMS_ACTIVATE_AUTOMATIC_REQ_MSG ActivateAutomaticReq; 3373*4882a593Smuzhiyun QMIDMS_ACTIVATE_AUTOMATIC_RESP_MSG ActivateAutomaticResp; 3374*4882a593Smuzhiyun QMIDMS_ACTIVATE_MANUAL_REQ_MSG ActivateManualReq; 3375*4882a593Smuzhiyun QMIDMS_ACTIVATE_MANUAL_RESP_MSG ActivateManualResp; 3376*4882a593Smuzhiyun #endif 3377*4882a593Smuzhiyun QMIDMS_UIM_GET_PIN_STATUS_REQ_MSG UIMGetPinStatusReq; 3378*4882a593Smuzhiyun QMIDMS_UIM_GET_PIN_STATUS_RESP_MSG UIMGetPinStatusResp; 3379*4882a593Smuzhiyun QMIDMS_UIM_VERIFY_PIN_REQ_MSG UIMVerifyPinReq; 3380*4882a593Smuzhiyun QMIDMS_UIM_VERIFY_PIN_RESP_MSG UIMVerifyPinResp; 3381*4882a593Smuzhiyun #if 0 3382*4882a593Smuzhiyun QMIDMS_UIM_SET_PIN_PROTECTION_REQ_MSG UIMSetPinProtectionReq; 3383*4882a593Smuzhiyun QMIDMS_UIM_SET_PIN_PROTECTION_RESP_MSG UIMSetPinProtectionResp; 3384*4882a593Smuzhiyun QMIDMS_UIM_CHANGE_PIN_REQ_MSG UIMChangePinReq; 3385*4882a593Smuzhiyun QMIDMS_UIM_CHANGE_PIN_RESP_MSG UIMChangePinResp; 3386*4882a593Smuzhiyun QMIDMS_UIM_UNBLOCK_PIN_REQ_MSG UIMUnblockPinReq; 3387*4882a593Smuzhiyun QMIDMS_UIM_UNBLOCK_PIN_RESP_MSG UIMUnblockPinResp; 3388*4882a593Smuzhiyun QMIDMS_SET_EVENT_REPORT_REQ_MSG DmsSetEventReportReq; 3389*4882a593Smuzhiyun QMIDMS_SET_EVENT_REPORT_RESP_MSG DmsSetEventReportResp; 3390*4882a593Smuzhiyun QMIDMS_EVENT_REPORT_IND_MSG DmsEventReportInd; 3391*4882a593Smuzhiyun #endif 3392*4882a593Smuzhiyun QMIDMS_UIM_GET_STATE_REQ_MSG UIMGetStateReq; 3393*4882a593Smuzhiyun QMIDMS_UIM_GET_STATE_RESP_MSG UIMGetStateResp; 3394*4882a593Smuzhiyun QMIDMS_UIM_GET_IMSI_REQ_MSG UIMGetIMSIReq; 3395*4882a593Smuzhiyun QMIDMS_UIM_GET_IMSI_RESP_MSG UIMGetIMSIResp; 3396*4882a593Smuzhiyun #if 0 3397*4882a593Smuzhiyun QMIDMS_UIM_GET_CK_STATUS_REQ_MSG UIMGetCkStatusReq; 3398*4882a593Smuzhiyun QMIDMS_UIM_GET_CK_STATUS_RESP_MSG UIMGetCkStatusResp; 3399*4882a593Smuzhiyun QMIDMS_UIM_SET_CK_PROTECTION_REQ_MSG UIMSetCkProtectionReq; 3400*4882a593Smuzhiyun QMIDMS_UIM_SET_CK_PROTECTION_RESP_MSG UIMSetCkProtectionResp; 3401*4882a593Smuzhiyun QMIDMS_UIM_UNBLOCK_CK_REQ_MSG UIMUnblockCkReq; 3402*4882a593Smuzhiyun QMIDMS_UIM_UNBLOCK_CK_RESP_MSG UIMUnblockCkResp; 3403*4882a593Smuzhiyun #endif 3404*4882a593Smuzhiyun 3405*4882a593Smuzhiyun // QMIQOS Messages 3406*4882a593Smuzhiyun #if 0 3407*4882a593Smuzhiyun QMI_QOS_SET_EVENT_REPORT_REQ_MSG QosSetEventReportReq; 3408*4882a593Smuzhiyun QMI_QOS_SET_EVENT_REPORT_RESP_MSG QosSetEventReportRsp; 3409*4882a593Smuzhiyun QMI_QOS_EVENT_REPORT_IND_MSG QosEventReportInd; 3410*4882a593Smuzhiyun #endif 3411*4882a593Smuzhiyun 3412*4882a593Smuzhiyun // QMIWMS Messages 3413*4882a593Smuzhiyun #if 0 3414*4882a593Smuzhiyun QMIWMS_GET_MESSAGE_PROTOCOL_REQ_MSG GetMessageProtocolReq; 3415*4882a593Smuzhiyun QMIWMS_GET_MESSAGE_PROTOCOL_RESP_MSG GetMessageProtocolResp; 3416*4882a593Smuzhiyun QMIWMS_GET_SMSC_ADDRESS_REQ_MSG GetSMSCAddressReq; 3417*4882a593Smuzhiyun QMIWMS_GET_SMSC_ADDRESS_RESP_MSG GetSMSCAddressResp; 3418*4882a593Smuzhiyun QMIWMS_SET_SMSC_ADDRESS_REQ_MSG SetSMSCAddressReq; 3419*4882a593Smuzhiyun QMIWMS_SET_SMSC_ADDRESS_RESP_MSG SetSMSCAddressResp; 3420*4882a593Smuzhiyun QMIWMS_GET_STORE_MAX_SIZE_REQ_MSG GetStoreMaxSizeReq; 3421*4882a593Smuzhiyun QMIWMS_GET_STORE_MAX_SIZE_RESP_MSG GetStoreMaxSizeResp; 3422*4882a593Smuzhiyun QMIWMS_LIST_MESSAGES_REQ_MSG ListMessagesReq; 3423*4882a593Smuzhiyun QMIWMS_LIST_MESSAGES_RESP_MSG ListMessagesResp; 3424*4882a593Smuzhiyun QMIWMS_RAW_READ_REQ_MSG RawReadMessagesReq; 3425*4882a593Smuzhiyun QMIWMS_RAW_READ_RESP_MSG RawReadMessagesResp; 3426*4882a593Smuzhiyun QMIWMS_SET_EVENT_REPORT_REQ_MSG WmsSetEventReportReq; 3427*4882a593Smuzhiyun QMIWMS_SET_EVENT_REPORT_RESP_MSG WmsSetEventReportResp; 3428*4882a593Smuzhiyun QMIWMS_EVENT_REPORT_IND_MSG WmsEventReportInd; 3429*4882a593Smuzhiyun QMIWMS_DELETE_REQ_MSG WmsDeleteReq; 3430*4882a593Smuzhiyun QMIWMS_DELETE_RESP_MSG WmsDeleteResp; 3431*4882a593Smuzhiyun QMIWMS_RAW_SEND_REQ_MSG RawSendMessagesReq; 3432*4882a593Smuzhiyun QMIWMS_RAW_SEND_RESP_MSG RawSendMessagesResp; 3433*4882a593Smuzhiyun QMIWMS_MODIFY_TAG_REQ_MSG WmsModifyTagReq; 3434*4882a593Smuzhiyun QMIWMS_MODIFY_TAG_RESP_MSG WmsModifyTagResp; 3435*4882a593Smuzhiyun #endif 3436*4882a593Smuzhiyun 3437*4882a593Smuzhiyun // QMINAS Messages 3438*4882a593Smuzhiyun #if 0 3439*4882a593Smuzhiyun QMINAS_GET_HOME_NETWORK_REQ_MSG GetHomeNetworkReq; 3440*4882a593Smuzhiyun QMINAS_GET_HOME_NETWORK_RESP_MSG GetHomeNetworkResp; 3441*4882a593Smuzhiyun QMINAS_GET_PREFERRED_NETWORK_REQ_MSG GetPreferredNetworkReq; 3442*4882a593Smuzhiyun QMINAS_GET_PREFERRED_NETWORK_RESP_MSG GetPreferredNetworkResp; 3443*4882a593Smuzhiyun QMINAS_GET_FORBIDDEN_NETWORK_REQ_MSG GetForbiddenNetworkReq; 3444*4882a593Smuzhiyun QMINAS_GET_FORBIDDEN_NETWORK_RESP_MSG GetForbiddenNetworkResp; 3445*4882a593Smuzhiyun QMINAS_GET_SERVING_SYSTEM_REQ_MSG GetServingSystemReq; 3446*4882a593Smuzhiyun #endif 3447*4882a593Smuzhiyun QMINAS_GET_SERVING_SYSTEM_RESP_MSG GetServingSystemResp; 3448*4882a593Smuzhiyun QMINAS_GET_SYS_INFO_RESP_MSG GetSysInfoResp; 3449*4882a593Smuzhiyun QMINAS_SYS_INFO_IND_MSG NasSysInfoInd; 3450*4882a593Smuzhiyun #if 0 3451*4882a593Smuzhiyun QMINAS_SERVING_SYSTEM_IND_MSG NasServingSystemInd; 3452*4882a593Smuzhiyun QMINAS_SET_PREFERRED_NETWORK_REQ_MSG SetPreferredNetworkReq; 3453*4882a593Smuzhiyun QMINAS_SET_PREFERRED_NETWORK_RESP_MSG SetPreferredNetworkResp; 3454*4882a593Smuzhiyun QMINAS_SET_FORBIDDEN_NETWORK_REQ_MSG SetForbiddenNetworkReq; 3455*4882a593Smuzhiyun QMINAS_SET_FORBIDDEN_NETWORK_RESP_MSG SetForbiddenNetworkResp; 3456*4882a593Smuzhiyun QMINAS_PERFORM_NETWORK_SCAN_REQ_MSG PerformNetworkScanReq; 3457*4882a593Smuzhiyun QMINAS_PERFORM_NETWORK_SCAN_RESP_MSG PerformNetworkScanResp; 3458*4882a593Smuzhiyun QMINAS_INITIATE_NW_REGISTER_REQ_MSG InitiateNwRegisterReq; 3459*4882a593Smuzhiyun QMINAS_INITIATE_NW_REGISTER_RESP_MSG InitiateNwRegisterResp; 3460*4882a593Smuzhiyun QMINAS_SET_TECHNOLOGY_PREF_REQ_MSG SetTechnologyPrefReq; 3461*4882a593Smuzhiyun QMINAS_SET_TECHNOLOGY_PREF_RESP_MSG SetTechnologyPrefResp; 3462*4882a593Smuzhiyun QMINAS_GET_SIGNAL_STRENGTH_REQ_MSG GetSignalStrengthReq; 3463*4882a593Smuzhiyun QMINAS_GET_SIGNAL_STRENGTH_RESP_MSG GetSignalStrengthResp; 3464*4882a593Smuzhiyun QMINAS_SET_EVENT_REPORT_REQ_MSG SetEventReportReq; 3465*4882a593Smuzhiyun QMINAS_SET_EVENT_REPORT_RESP_MSG SetEventReportResp; 3466*4882a593Smuzhiyun QMINAS_EVENT_REPORT_IND_MSG NasEventReportInd; 3467*4882a593Smuzhiyun QMINAS_GET_RF_BAND_INFO_REQ_MSG GetRFBandInfoReq; 3468*4882a593Smuzhiyun QMINAS_GET_RF_BAND_INFO_RESP_MSG GetRFBandInfoResp; 3469*4882a593Smuzhiyun QMINAS_INITIATE_ATTACH_REQ_MSG InitiateAttachReq; 3470*4882a593Smuzhiyun QMINAS_INITIATE_ATTACH_RESP_MSG InitiateAttachResp; 3471*4882a593Smuzhiyun QMINAS_GET_PLMN_NAME_REQ_MSG GetPLMNNameReq; 3472*4882a593Smuzhiyun QMINAS_GET_PLMN_NAME_RESP_MSG GetPLMNNameResp; 3473*4882a593Smuzhiyun #endif 3474*4882a593Smuzhiyun 3475*4882a593Smuzhiyun // QMIUIM Messages 3476*4882a593Smuzhiyun QMIUIM_GET_CARD_STATUS_RESP_MSG UIMGetCardStatus; 3477*4882a593Smuzhiyun QMIUIM_VERIFY_PIN_REQ_MSG UIMUIMVerifyPinReq; 3478*4882a593Smuzhiyun QMIUIM_VERIFY_PIN_RESP_MSG UIMUIMVerifyPinResp; 3479*4882a593Smuzhiyun #if 0 3480*4882a593Smuzhiyun QMIUIM_SET_PIN_PROTECTION_REQ_MSG UIMUIMSetPinProtectionReq; 3481*4882a593Smuzhiyun QMIUIM_SET_PIN_PROTECTION_RESP_MSG UIMUIMSetPinProtectionResp; 3482*4882a593Smuzhiyun QMIUIM_CHANGE_PIN_REQ_MSG UIMUIMChangePinReq; 3483*4882a593Smuzhiyun QMIUIM_CHANGE_PIN_RESP_MSG UIMUIMChangePinResp; 3484*4882a593Smuzhiyun QMIUIM_UNBLOCK_PIN_REQ_MSG UIMUIMUnblockPinReq; 3485*4882a593Smuzhiyun QMIUIM_UNBLOCK_PIN_RESP_MSG UIMUIMUnblockPinResp; 3486*4882a593Smuzhiyun #endif 3487*4882a593Smuzhiyun QMIUIM_READ_TRANSPARENT_REQ_MSG UIMUIMReadTransparentReq; 3488*4882a593Smuzhiyun QMIUIM_READ_TRANSPARENT_RESP_MSG UIMUIMReadTransparentResp; 3489*4882a593Smuzhiyun 3490*4882a593Smuzhiyun QMIWDS_ADMIN_SET_DATA_FORMAT_REQ_MSG SetDataFormatReq; 3491*4882a593Smuzhiyun QMI_WDA_SET_LOOPBACK_CONFIG_REQ_MSG SetLoopBackReq; 3492*4882a593Smuzhiyun QMI_WDA_SET_LOOPBACK_CONFIG_IND_MSG SetLoopBackInd; 3493*4882a593Smuzhiyun }; 3494*4882a593Smuzhiyun } __attribute__ ((packed)) QMUX_MSG, *PQMUX_MSG; 3495*4882a593Smuzhiyun 3496*4882a593Smuzhiyun #pragma pack(pop) 3497*4882a593Smuzhiyun 3498*4882a593Smuzhiyun #endif // MPQMUX_H 3499