/****************************************************************************** @file QCQMUX.h DESCRIPTION This module contains QMI QMUX module. INITIALIZATION AND SEQUENCING REQUIREMENTS None. --------------------------------------------------------------------------- Copyright (c) 2016 - 2023 Quectel Wireless Solution, Co., Ltd. All Rights Reserved. Quectel Wireless Solution Proprietary and Confidential. --------------------------------------------------------------------------- ******************************************************************************/ #ifndef QCQMUX_H #define QCQMUX_H #include "QCQMI.h" #pragma pack(push, 1) #define QMIWDS_SET_EVENT_REPORT_REQ 0x0001 #define QMIWDS_SET_EVENT_REPORT_RESP 0x0001 #define QMIWDS_EVENT_REPORT_IND 0x0001 #define QMIWDS_START_NETWORK_INTERFACE_REQ 0x0020 #define QMIWDS_START_NETWORK_INTERFACE_RESP 0x0020 #define QMIWDS_STOP_NETWORK_INTERFACE_REQ 0x0021 #define QMIWDS_STOP_NETWORK_INTERFACE_RESP 0x0021 #define QMIWDS_GET_PKT_SRVC_STATUS_REQ 0x0022 #define QMIWDS_GET_PKT_SRVC_STATUS_RESP 0x0022 #define QMIWDS_GET_PKT_SRVC_STATUS_IND 0x0022 #define QMIWDS_GET_CURRENT_CHANNEL_RATE_REQ 0x0023 #define QMIWDS_GET_CURRENT_CHANNEL_RATE_RESP 0x0023 #define QMIWDS_GET_PKT_STATISTICS_REQ 0x0024 #define QMIWDS_GET_PKT_STATISTICS_RESP 0x0024 #define QMIWDS_CREATE_PROFILE_REQ 0x0027 #define QMIWDS_CREATE_PROFILE_RESP 0x0027 #define QMIWDS_MODIFY_PROFILE_SETTINGS_REQ 0x0028 #define QMIWDS_MODIFY_PROFILE_SETTINGS_RESP 0x0028 #define QMIWDS_GET_PROFILE_LIST_REQ 0x002A #define QMIWDS_GET_PROFILE_LIST_RESP 0x002A #define QMIWDS_GET_PROFILE_SETTINGS_REQ 0x002B #define QMIWDS_GET_PROFILE_SETTINGS_RESP 0x002B #define QMIWDS_GET_DEFAULT_SETTINGS_REQ 0x002C #define QMIWDS_GET_DEFAULT_SETTINGS_RESP 0x002C #define QMIWDS_GET_RUNTIME_SETTINGS_REQ 0x002D #define QMIWDS_GET_RUNTIME_SETTINGS_RESP 0x002D #define QMIWDS_GET_MIP_MODE_REQ 0x002F #define QMIWDS_GET_MIP_MODE_RESP 0x002F #define QMIWDS_GET_DATA_BEARER_REQ 0x0037 #define QMIWDS_GET_DATA_BEARER_RESP 0x0037 #define QMIWDS_DUN_CALL_INFO_REQ 0x0038 #define QMIWDS_DUN_CALL_INFO_RESP 0x0038 #define QMIWDS_DUN_CALL_INFO_IND 0x0038 #define QMIWDS_SET_CLIENT_IP_FAMILY_PREF_REQ 0x004D #define QMIWDS_SET_CLIENT_IP_FAMILY_PREF_RESP 0x004D #define QMIWDS_SET_AUTO_CONNECT_REQ 0x0051 #define QMIWDS_SET_AUTO_CONNECT_RESP 0x0051 #define QMIWDS_BIND_MUX_DATA_PORT_REQ 0x00A2 #define QMIWDS_BIND_MUX_DATA_PORT_RESP 0x00A2 // Stats masks #define QWDS_STAT_MASK_TX_PKT_OK 0x00000001 #define QWDS_STAT_MASK_RX_PKT_OK 0x00000002 #define QWDS_STAT_MASK_TX_PKT_ER 0x00000004 #define QWDS_STAT_MASK_RX_PKT_ER 0x00000008 #define QWDS_STAT_MASK_TX_PKT_OF 0x00000010 #define QWDS_STAT_MASK_RX_PKT_OF 0x00000020 // TLV Types for xfer statistics #define TLV_WDS_TX_GOOD_PKTS 0x10 #define TLV_WDS_RX_GOOD_PKTS 0x11 #define TLV_WDS_TX_ERROR 0x12 #define TLV_WDS_RX_ERROR 0x13 #define TLV_WDS_TX_OVERFLOW 0x14 #define TLV_WDS_RX_OVERFLOW 0x15 #define TLV_WDS_CHANNEL_RATE 0x16 #define TLV_WDS_DATA_BEARER 0x17 #define TLV_WDS_DORMANCY_STATUS 0x18 #define QWDS_PKT_DATA_UNKNOW 0x00 #define QWDS_PKT_DATA_DISCONNECTED 0x01 #define QWDS_PKT_DATA_CONNECTED 0x02 #define QWDS_PKT_DATA_SUSPENDED 0x03 #define QWDS_PKT_DATA_AUTHENTICATING 0x04 #define QMIWDS_ADMIN_SET_DATA_FORMAT_REQ 0x0020 #define QMIWDS_ADMIN_SET_DATA_FORMAT_RESP 0x0020 #define QMIWDS_ADMIN_GET_DATA_FORMAT_REQ 0x0021 #define QMIWDS_ADMIN_GET_DATA_FORMAT_RESP 0x0021 #define QMIWDS_ADMIN_SET_QMAP_SETTINGS_REQ 0x002B #define QMIWDS_ADMIN_SET_QMAP_SETTINGS_RESP 0x002B #define QMIWDS_ADMIN_GET_QMAP_SETTINGS_REQ 0x002C #define QMIWDS_ADMIN_GET_QMAP_SETTINGS_RESP 0x002C #define QMI_WDA_SET_LOOPBACK_CONFIG_REQ 0x002F #define QMI_WDA_SET_LOOPBACK_CONFIG_RESP 0x002F #define QMI_WDA_SET_LOOPBACK_CONFIG_IND 0x002F #define NETWORK_DESC_ENCODING_OCTET 0x00 #define NETWORK_DESC_ENCODING_EXTPROTOCOL 0x01 #define NETWORK_DESC_ENCODING_7BITASCII 0x02 #define NETWORK_DESC_ENCODING_IA5 0x03 #define NETWORK_DESC_ENCODING_UNICODE 0x04 #define NETWORK_DESC_ENCODING_SHIFTJIS 0x05 #define NETWORK_DESC_ENCODING_KOREAN 0x06 #define NETWORK_DESC_ENCODING_LATINH 0x07 #define NETWORK_DESC_ENCODING_LATIN 0x08 #define NETWORK_DESC_ENCODING_GSM7BIT 0x09 #define NETWORK_DESC_ENCODING_GSMDATA 0x0A #define NETWORK_DESC_ENCODING_UNKNOWN 0xFF typedef struct _QMIWDS_ADMIN_SET_DATA_FORMAT { USHORT Type; // QMUX type 0x0000 USHORT Length; } __attribute__ ((packed)) QMIWDS_ADMIN_SET_DATA_FORMAT, *PQMIWDS_ADMIN_SET_DATA_FORMAT; typedef struct _QMIWDS_ADMIN_SET_DATA_FORMAT_TLV_QOS { UCHAR TLVType; USHORT TLVLength; UCHAR QOSSetting; } __attribute__ ((packed)) QMIWDS_ADMIN_SET_DATA_FORMAT_TLV_QOS, *PQMIWDS_ADMIN_SET_DATA_FORMAT_TLV_QOS; typedef struct _QMIWDS_ADMIN_SET_DATA_FORMAT_TLV { UCHAR TLVType; USHORT TLVLength; ULONG Value; } __attribute__ ((packed)) QMIWDS_ADMIN_SET_DATA_FORMAT_TLV, *PQMIWDS_ADMIN_SET_DATA_FORMAT_TLV; typedef struct _QMIWDS_ENDPOINT_TLV { UCHAR TLVType; USHORT TLVLength; ULONG ep_type; ULONG iface_id; } __attribute__ ((packed)) QMIWDS_ENDPOINT_TLV, *PQMIWDS_ENDPOINT_TLV; typedef struct _QMIWDS_ADMIN_SET_DATA_FORMAT_REQ_MSG { USHORT Type; USHORT Length; QMIWDS_ADMIN_SET_DATA_FORMAT_TLV_QOS QosDataFormatTlv; QMIWDS_ADMIN_SET_DATA_FORMAT_TLV UnderlyingLinkLayerProtocolTlv; QMIWDS_ADMIN_SET_DATA_FORMAT_TLV UplinkDataAggregationProtocolTlv; QMIWDS_ADMIN_SET_DATA_FORMAT_TLV DownlinkDataAggregationProtocolTlv; QMIWDS_ADMIN_SET_DATA_FORMAT_TLV DownlinkDataAggregationMaxDatagramsTlv; QMIWDS_ADMIN_SET_DATA_FORMAT_TLV DownlinkDataAggregationMaxSizeTlv; QMIWDS_ENDPOINT_TLV epTlv; #ifdef QUECTEL_UL_DATA_AGG QMIWDS_ADMIN_SET_DATA_FORMAT_TLV DlMinimumPassingTlv; QMIWDS_ADMIN_SET_DATA_FORMAT_TLV UplinkDataAggregationMaxDatagramsTlv; QMIWDS_ADMIN_SET_DATA_FORMAT_TLV UplinkDataAggregationMaxSizeTlv; #endif } __attribute__ ((packed)) QMIWDS_ADMIN_SET_DATA_FORMAT_REQ_MSG, *PQMIWDS_ADMIN_SET_DATA_FORMAT_REQ_MSG; typedef struct _QMI_U8_TLV { UCHAR TLVType; USHORT TLVLength; UCHAR TLVVaule; } __attribute__ ((packed)) QMI_U8_TLV, *PQMI_U8_TLV; typedef struct _QMI_U32_TLV { UCHAR TLVType; USHORT TLVLength; ULONG TLVVaule; } __attribute__ ((packed)) QMI_U32_TLV, *PQMI_U32_TLV; typedef struct _QMI_WDA_SET_LOOPBACK_CONFIG_REQ_MSG { USHORT Type; USHORT Length; QMI_U8_TLV loopback_state; //0x01 QMI_U32_TLV replication_factor; //0x10 } __attribute__ ((packed)) QMI_WDA_SET_LOOPBACK_CONFIG_REQ_MSG, *PQMI_WDA_SET_LOOPBACK_CONFIG_REQ_MSG; typedef struct _QMI_WDA_SET_LOOPBACK_CONFIG_IND_MSG { USHORT Type; USHORT Length; QMI_U8_TLV loopback_state; //0x01 QMI_U32_TLV replication_factor; //0x10 } __attribute__ ((packed)) QMI_WDA_SET_LOOPBACK_CONFIG_IND_MSG, *PQMI_WDA_SET_LOOPBACK_CONFIG_IND_MSG; #if 0 typedef enum _QMI_RETURN_CODES { QMI_SUCCESS = 0, QMI_SUCCESS_NOT_COMPLETE, QMI_FAILURE }QMI_RETURN_CODES; typedef struct _QMIWDS_GET_PKT_SRVC_STATUS_REQ_MSG { USHORT Type; // 0x0022 USHORT Length; // 0x0000 } QMIWDS_GET_PKT_SRVC_STATUS_REQ_MSG, *PQMIWDS_GET_PKT_SRVC_STATUS_REQ_MSG; typedef struct _QMIWDS_GET_PKT_SRVC_STATUS_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; UCHAR TLVType2; USHORT TLVLength2; UCHAR ConnectionStatus; // 0x01: QWDS_PKT_DATAC_DISCONNECTED // 0x02: QWDS_PKT_DATA_CONNECTED // 0x03: QWDS_PKT_DATA_SUSPENDED // 0x04: QWDS_PKT_DATA_AUTHENTICATING } QMIWDS_GET_PKT_SRVC_STATUS_RESP_MSG, *PQMIWDS_GET_PKT_SRVC_STATUS_RESP_MSG; typedef struct _QMIWDS_GET_PKT_SRVC_STATUS_IND_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR ConnectionStatus; // 0x01: QWDS_PKT_DATAC_DISCONNECTED // 0x02: QWDS_PKT_DATA_CONNECTED // 0x03: QWDS_PKT_DATA_SUSPENDED UCHAR ReconfigRequired; // 0x00: No need to reconfigure // 0x01: Reconfiguration required } QMIWDS_GET_PKT_SRVC_STATUS_IND_MSG, *PQMIWDS_GET_PKT_SRVC_STATUS_IND_MSG; typedef struct _WDS_PKT_SRVC_IP_FAMILY_TLV { UCHAR TLVType; // 0x12 USHORT TLVLength; // 1 UCHAR IpFamily; // IPV4-0x04, IPV6-0x06 } WDS_PKT_SRVC_IP_FAMILY_TLV, *PWDS_PKT_SRVC_IP_FAMILY_TLV; typedef struct _QMIWDS_DUN_CALL_INFO_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; ULONG Mask; UCHAR TLV2Type; USHORT TLV2Length; UCHAR ReportConnectionStatus; } QMIWDS_DUN_CALL_INFO_REQ_MSG, *PQMIWDS_DUN_CALL_INFO_REQ_MSG; typedef struct _QMIWDS_DUN_CALL_INFO_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } QMIWDS_DUN_CALL_INFO_RESP_MSG, *PQMIWDS_DUN_CALL_INFO_RESP_MSG; typedef struct _QMIWDS_DUN_CALL_INFO_IND_MSG { UCHAR TLVType; USHORT TLVLength; UCHAR ConnectionStatus; } QMIWDS_DUN_CALL_INFO_IND_MSG, *PQMIWDS_DUN_CALL_INFO_IND_MSG; typedef struct _QMIWDS_GET_CURRENT_CHANNEL_RATE_REQ_MSG { USHORT Type; // QMUX type 0x0040 USHORT Length; } QMIWDS_GET_CURRENT_CHANNEL_RATE_REQ_MSG, *PQMIWDS_GET_CURRENT_CHANNEL_RATE_REQ_MSG; typedef struct _QMIWDS_GET_CURRENT_CHANNEL_RATE_RESP_MSG { USHORT Type; // QMUX type 0x0040 USHORT Length; UCHAR TLVType; // 0x02 USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR TLV2Type; // 0x01 USHORT TLV2Length; // 16 //ULONG CallHandle; // Context corresponding to reported channel ULONG CurrentTxRate; // bps ULONG CurrentRxRate; // bps ULONG ServingSystemTxRate; // bps ULONG ServingSystemRxRate; // bps } QMIWDS_GET_CURRENT_CHANNEL_RATE_RESP_MSG, *PQMIWDS_GET_CURRENT_CHANNEL_RATE_RESP; #define QWDS_EVENT_REPORT_MASK_RATES 0x01 #define QWDS_EVENT_REPORT_MASK_STATS 0x02 #ifdef QCUSB_MUX_PROTOCOL #error code not present #endif // QCUSB_MUX_PROTOCOL typedef struct _QMIWDS_SET_EVENT_REPORT_REQ_MSG { USHORT Type; // QMUX type 0x0042 USHORT Length; UCHAR TLVType; // 0x10 -- current channel rate indicator USHORT TLVLength; // 1 UCHAR Mode; // 0-do not report; 1-report when rate changes UCHAR TLV2Type; // 0x11 USHORT TLV2Length; // 5 UCHAR StatsPeriod; // seconds between reports; 0-do not report ULONG StatsMask; // UCHAR TLV3Type; // 0x12 -- current data bearer indicator USHORT TLV3Length; // 1 UCHAR Mode3; // 0-do not report; 1-report when changes UCHAR TLV4Type; // 0x13 -- dormancy status indicator USHORT TLV4Length; // 1 UCHAR DormancyStatus; // 0-do not report; 1-report when changes } QMIWDS_SET_EVENT_REPORT_REQ_MSG, *PQMIWDS_SET_EVENT_REPORT_REQ_MSG; typedef struct _QMIWDS_SET_EVENT_REPORT_RESP_MSG { USHORT Type; // QMUX type 0x0042 USHORT Length; UCHAR TLVType; // 0x02 result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_NO_BATTERY // QMI_ERR_FAULT } QMIWDS_SET_EVENT_REPORT_RESP_MSG, *PQMIWDS_SET_EVENT_REPORT_RESP_MSG; typedef struct _QMIWDS_EVENT_REPORT_IND_MSG { USHORT Type; // QMUX type 0x0001 USHORT Length; } QMIWDS_EVENT_REPORT_IND_MSG, *PQMIWDS_EVENT_REPORT_IND_MSG; // PQCTLV_PKT_STATISTICS typedef struct _QMIWDS_EVENT_REPORT_IND_CHAN_RATE_TLV { UCHAR Type; USHORT Length; // 8 ULONG TxRate; ULONG RxRate; } QMIWDS_EVENT_REPORT_IND_CHAN_RATE_TLV, *PQMIWDS_EVENT_REPORT_IND_CHAN_RATE_TLV; #ifdef QCUSB_MUX_PROTOCOL #error code not present #endif // QCUSB_MUX_PROTOCOL typedef struct _QMIWDS_GET_PKT_STATISTICS_REQ_MSG { USHORT Type; // QMUX type 0x0041 USHORT Length; UCHAR TLVType; // 0x01 USHORT TLVLength; // 4 ULONG StateMask; // 0x00000001 tx success packets // 0x00000002 rx success packets // 0x00000004 rx packet errors (checksum) // 0x00000008 rx packets dropped (memory) } QMIWDS_GET_PKT_STATISTICS_REQ_MSG, *PQMIWDS_GET_PKT_STATISTICS_REQ_MSG; typedef struct _QMIWDS_GET_PKT_STATISTICS_RESP_MSG { USHORT Type; // QMUX type 0x0041 USHORT Length; UCHAR TLVType; // 0x02 USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT } QMIWDS_GET_PKT_STATISTICS_RESP_MSG, *PQMIWDS_GET_PKT_STATISTICS_RESP_MSG; // optional TLV for stats typedef struct _QCTLV_PKT_STATISTICS { UCHAR TLVType; // see above definitions for TLV types USHORT TLVLength; // 4 ULONG Count; } QCTLV_PKT_STATISTICS, *PQCTLV_PKT_STATISTICS; #endif //#ifdef QC_IP_MODE /* �Bit 0 �Profile identifier �Bit 1 �Profile name �Bit 2 �PDP type �Bit 3 �APN name �Bit 4 �DNS address �Bit 5 �UMTS/GPRS granted QoS �Bit 6 �Username �Bit 7 �Authentication Protocol �Bit 8 �IP address �Bit 9 �Gateway information (address and subnet mask) �Bit 10 �PCSCF address using a PCO flag �Bit 11 �PCSCF server address list �Bit 12 �PCSCF domain name list �Bit 13 �MTU �Bit 14 �Domain name list �Bit 15 �IP family �Bit 16 �IM_CM flag �Bit 17 �Technology name �Bit 18 �Operator reserved PCO */ #define QMIWDS_GET_RUNTIME_SETTINGS_MASK_IPV4DNS_ADDR (1 << 4) #define QMIWDS_GET_RUNTIME_SETTINGS_MASK_IPV4_ADDR (1 << 8) #define QMIWDS_GET_RUNTIME_SETTINGS_MASK_IPV4GATEWAY_ADDR (1 << 9) #define QMIWDS_GET_RUNTIME_SETTINGS_MASK_MTU (1 << 13) #define QMIWDS_GET_RUNTIME_SETTINGS_MASK_PCSCF_SV_ADDR (1 << 11) #define QMIWDS_GET_RUNTIME_SETTINGS_MASK_PCSCF_DOM_NAME (1 << 14) typedef struct _QMIWDS_GET_RUNTIME_SETTINGS_REQ_MSG { USHORT Type; // QMIWDS_GET_RUNTIME_SETTINGS_REQ USHORT Length; UCHAR TLVType; // 0x10 USHORT TLVLength; // 0x0004 ULONG Mask; // mask, bit 8: IP addr -- 0x0100 } __attribute__ ((packed)) QMIWDS_GET_RUNTIME_SETTINGS_REQ_MSG, *PQMIWDS_GET_RUNTIME_SETTINGS_REQ_MSG; typedef struct _QMIWDS_BIND_MUX_DATA_PORT_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; ULONG ep_type; ULONG iface_id; UCHAR TLV2Type; USHORT TLV2Length; UCHAR MuxId; UCHAR TLV3Type; USHORT TLV3Length; ULONG client_type; } __attribute__ ((packed)) QMIWDS_BIND_MUX_DATA_PORT_REQ_MSG, *PQMIWDS_BIND_MUX_DATA_PORT_REQ_MSG; #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV4PRIMARYDNS 0x15 #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV4SECONDARYDNS 0x16 #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV4 0x1E #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV4GATEWAY 0x20 #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV4SUBNET 0x21 #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV6 0x25 #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV6GATEWAY 0x26 #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV6PRIMARYDNS 0x27 #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV6SECONDARYDNS 0x28 #define QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_MTU 0x29 typedef struct _QMIWDS_GET_RUNTIME_SETTINGS_TLV_MTU { UCHAR TLVType; // QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_MTU USHORT TLVLength; // 4 ULONG Mtu; // MTU } __attribute__ ((packed)) QMIWDS_GET_RUNTIME_SETTINGS_TLV_MTU, *PQMIWDS_GET_RUNTIME_SETTINGS_TLV_MTU; typedef struct _QMIWDS_GET_RUNTIME_SETTINGS_TLV_IPV4_ADDR { UCHAR TLVType; // QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV4 USHORT TLVLength; // 4 ULONG IPV4Address; // address } __attribute__ ((packed)) QMIWDS_GET_RUNTIME_SETTINGS_TLV_IPV4_ADDR, *PQMIWDS_GET_RUNTIME_SETTINGS_TLV_IPV4_ADDR; typedef struct _QMIWDS_GET_RUNTIME_SETTINGS_TLV_IPV6_ADDR { UCHAR TLVType; // QMIWDS_GET_RUNTIME_SETTINGS_TLV_TYPE_IPV6 USHORT TLVLength; // 16 UCHAR IPV6Address[16]; // address UCHAR PrefixLength; // prefix length } __attribute__ ((packed)) QMIWDS_GET_RUNTIME_SETTINGS_TLV_IPV6_ADDR, *PQMIWDS_GET_RUNTIME_SETTINGS_TLV_IPV6_ADDR; typedef struct _QMIWDS_GET_RUNNING_SETTINGS_PCSCF_IPV6_ADDR { UCHAR TLVType; USHORT TLVLength; UCHAR PCSCFNumber; } __attribute__ ((packed)) QMIWDS_GET_RUNNING_SETTINGS_PCSCF_IPV6_ADDR, *PQMIWDS_GET_RUNNING_SETTINGS_PCSCF_IPV6_ADDR; typedef struct _QMIWDS_GET_RUNNING_SETTINGS_PCSCF_IPV4_ADDR { UCHAR TLVType; USHORT TLVLength; UCHAR PCSCFNumber; } __attribute__ ((packed)) QMIWDS_GET_RUNNING_SETTINGS_PCSCF_IPV4_ADDR, *PQMIWDS_GET_RUNNING_SETTINGS_PCSCF_IPV4_ADDR; typedef struct _QMIWDS_GET_RUNTIME_SETTINGS_RESP_MSG { USHORT Type; // QMIWDS_GET_RUNTIME_SETTINGS_RESP USHORT Length; UCHAR TLVType; // QCTLV_TYPE_RESULT_CODE USHORT TLVLength; // 0x0004 USHORT QMUXResult; // result code USHORT QMUXError; // error code } __attribute__ ((packed)) QMIWDS_GET_RUNTIME_SETTINGS_RESP_MSG, *PQMIWDS_GET_RUNTIME_SETTINGS_RESP_MSG; //#endif // QC_IP_MODE typedef struct _QMIWDS_IP_FAMILY_TLV { UCHAR TLVType; // 0x12 USHORT TLVLength; // 1 UCHAR IpFamily; // IPV4-0x04, IPV6-0x06 } __attribute__ ((packed)) QMIWDS_IP_FAMILY_TLV, *PQMIWDS_IP_FAMILY_TLV; typedef struct _QMIWDS_PKT_SRVC_TLV { UCHAR TLVType; USHORT TLVLength; UCHAR ConnectionStatus; UCHAR ReconfigReqd; } __attribute__ ((packed)) QMIWDS_PKT_SRVC_TLV, *PQMIWDS_PKT_SRVC_TLV; typedef struct _QMIWDS_CALL_END_REASON_TLV { UCHAR TLVType; USHORT TLVLength; USHORT CallEndReason; } __attribute__ ((packed)) QMIWDS_CALL_END_REASON_TLV, *PQMIWDS_CALL_END_REASON_TLV; typedef struct _QMIWDS_CALL_END_REASON_V_TLV { UCHAR TLVType; USHORT TLVLength; USHORT CallEndReasonType; USHORT CallEndReason; } __attribute__ ((packed)) QMIWDS_CALL_END_REASON_V_TLV, *PQMIWDS_CALL_END_REASON_V_TLV; typedef struct _QMIWDS_SET_CLIENT_IP_FAMILY_PREF_REQ_MSG { USHORT Type; // QMUX type 0x004D USHORT Length; UCHAR TLVType; // 0x01 USHORT TLVLength; // 1 UCHAR IpPreference; // IPV4-0x04, IPV6-0x06 } __attribute__ ((packed)) QMIWDS_SET_CLIENT_IP_FAMILY_PREF_REQ_MSG, *PQMIWDS_SET_CLIENT_IP_FAMILY_PREF_REQ_MSG; typedef struct _QMIWDS_SET_CLIENT_IP_FAMILY_PREF_RESP_MSG { USHORT Type; // QMUX type 0x0037 USHORT Length; UCHAR TLVType; // 0x02 USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS, QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INTERNAL, QMI_ERR_MALFORMED_MSG, QMI_ERR_INVALID_ARG } __attribute__ ((packed)) QMIWDS_SET_CLIENT_IP_FAMILY_PREF_RESP_MSG, *PQMIWDS_SET_CLIENT_IP_FAMILY_PREF_RESP_MSG; typedef struct _QMIWDS_SET_AUTO_CONNECT_REQ_MSG { USHORT Type; // QMUX type 0x0051 USHORT Length; UCHAR TLVType; // 0x01 USHORT TLVLength; // 1 UCHAR autoconnect_setting; // 0x00 ?C Disabled, 0x01 ?C Enabled, 0x02 ?C Paused (resume on power cycle) } __attribute__ ((packed)) QMIWDS_SET_AUTO_CONNECT_REQ_MSG, *PQMIWDS_SET_AUTO_CONNECT_REQ_MSG; #if 0 typedef struct _QMIWDS_GET_MIP_MODE_REQ_MSG { USHORT Type; // QMUX type 0x0040 USHORT Length; } QMIWDS_GET_MIP_MODE_REQ_MSG, *PQMIWDS_GET_MIP_MODE_REQ_MSG; typedef struct _QMIWDS_GET_MIP_MODE_RESP_MSG { USHORT Type; // QMUX type 0x0040 USHORT Length; UCHAR TLVType; // 0x02 USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR TLV2Type; // 0x01 USHORT TLV2Length; // 20 UCHAR MipMode; // } QMIWDS_GET_MIP_MODE_RESP_MSG, *PQMIWDS_GET_MIP_MODE_RESP_MSG; #endif typedef struct _QMIWDS_TECHNOLOGY_PREFERECE { UCHAR TLVType; USHORT TLVLength; UCHAR TechPreference; } __attribute__ ((packed)) QMIWDS_TECHNOLOGY_PREFERECE, *PQMIWDS_TECHNOLOGY_PREFERECE; typedef struct _QMIWDS_PROFILE_IDENTIFIER { UCHAR TLVType; USHORT TLVLength; UCHAR ProfileIndex; } __attribute__ ((packed)) QMIWDS_PROFILE_IDENTIFIER, *PQMIWDS_PROFILE_IDENTIFIER; #if 0 typedef struct _QMIWDS_IPADDRESS { UCHAR TLVType; USHORT TLVLength; ULONG IPv4Address; }QMIWDS_IPADDRESS, *PQMIWDS_IPADDRESS; /* typedef struct _QMIWDS_UMTS_QOS { UCHAR TLVType; USHORT TLVLength; UCHAR TrafficClass; ULONG MaxUplinkBitRate; ULONG MaxDownlinkBitRate; ULONG GuarUplinkBitRate; ULONG GuarDownlinkBitRate; UCHAR QOSDevOrder; ULONG MAXSDUSize; UCHAR SDUErrorRatio; UCHAR ResidualBerRatio; UCHAR DeliveryErrorSDUs; ULONG TransferDelay; ULONG TrafficHndPri; }QMIWDS_UMTS_QOS, *PQMIWDS_UMTS_QOS; typedef struct _QMIWDS_GPRS_QOS { UCHAR TLVType; USHORT TLVLength; ULONG PrecedenceClass; ULONG DelayClass; ULONG ReliabilityClass; ULONG PeekThroClass; ULONG MeanThroClass; }QMIWDS_GPRS_QOS, *PQMIWDS_GPRS_QOS; */ #endif typedef struct _QMIWDS_PDPCONTEXT { UCHAR TLVType; USHORT TLVLength; UCHAR pdp_context; } __attribute__ ((packed)) QMIWDS_PDPCONTEXT, *PQMIWDS_PDPCONTEXT; typedef struct _QMIWDS_PROFILELIST { UCHAR TLVType; USHORT TLVLength; UCHAR ProfileList[1024]; } __attribute__ ((packed)) QMIWDS_PROFILELIST, *PQMIWDS_PROFILELIST; typedef struct _QMIWDS_PROFILENAME { UCHAR TLVType; USHORT TLVLength; UCHAR ProfileName; } __attribute__ ((packed)) QMIWDS_PROFILENAME, *PQMIWDS_PROFILENAME; typedef struct _QMIWDS_PDPTYPE { UCHAR TLVType; USHORT TLVLength; // 0 ?C PDP-IP (IPv4) // 1 ?C PDP-PPP // 2 ?C PDP-IPv6 // 3 ?C PDP-IPv4v6 UCHAR PdpType; } __attribute__ ((packed)) QMIWDS_PDPTYPE, *PQMIWDS_PDPTYPE; typedef struct _QMIWDS_USERNAME { UCHAR TLVType; USHORT TLVLength; UCHAR UserName; } __attribute__ ((packed)) QMIWDS_USERNAME, *PQMIWDS_USERNAME; typedef struct _QMIWDS_PASSWD { UCHAR TLVType; USHORT TLVLength; UCHAR Passwd; } __attribute__ ((packed)) QMIWDS_PASSWD, *PQMIWDS_PASSWD; typedef struct _QMIWDS_AUTH_PREFERENCE { UCHAR TLVType; USHORT TLVLength; UCHAR AuthPreference; } __attribute__ ((packed)) QMIWDS_AUTH_PREFERENCE, *PQMIWDS_AUTH_PREFERENCE; typedef struct _QMIWDS_IPTYPE { UCHAR TLVType; USHORT TLVLength; UCHAR IPType; } __attribute__ ((packed)) QMIWDS_IPTYPE, *PQMIWDS_IPTYPE; typedef struct _QMIWDS_APNNAME { UCHAR TLVType; USHORT TLVLength; UCHAR ApnName; } __attribute__ ((packed)) QMIWDS_APNNAME, *PQMIWDS_APNNAME; typedef struct _QMIWDS_AUTOCONNECT { UCHAR TLVType; USHORT TLVLength; UCHAR AutoConnect; } __attribute__ ((packed)) QMIWDS_AUTOCONNECT, *PQMIWDS_AUTOCONNECT; typedef struct _QMIWDS_START_NETWORK_INTERFACE_REQ_MSG { USHORT Type; USHORT Length; } __attribute__ ((packed)) QMIWDS_START_NETWORK_INTERFACE_REQ_MSG, *PQMIWDS_START_NETWORK_INTERFACE_REQ_MSG; typedef struct _QMIWDS_CALLENDREASON { UCHAR TLVType; USHORT TLVLength; USHORT Reason; }__attribute__ ((packed)) QMIWDS_CALLENDREASON, *PQMIWDS_CALLENDREASON; typedef struct _QMIWDS_START_NETWORK_INTERFACE_RESP_MSG { USHORT Type; // QMUX type 0x0040 USHORT Length; UCHAR TLVType; // 0x02 USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR TLV2Type; // 0x01 USHORT TLV2Length; // 20 ULONG Handle; // } __attribute__ ((packed)) QMIWDS_START_NETWORK_INTERFACE_RESP_MSG, *PQMIWDS_START_NETWORK_INTERFACE_RESP_MSG; typedef struct _QMIWDS_STOP_NETWORK_INTERFACE_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; ULONG Handle; } __attribute__ ((packed)) QMIWDS_STOP_NETWORK_INTERFACE_REQ_MSG, *PQMIWDS_STOP_NETWORK_INTERFACE_REQ_MSG; typedef struct _QMIWDS_STOP_NETWORK_INTERFACE_RESP_MSG { USHORT Type; // QMUX type 0x0040 USHORT Length; UCHAR TLVType; // 0x02 USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT } __attribute__ ((packed)) QMIWDS_STOP_NETWORK_INTERFACE_RESP_MSG, *PQMIWDS_STOP_NETWORK_INTERFACE_RESP_MSG; typedef struct _QMIWDS_GET_DEFAULT_SETTINGS_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR ProfileType; } __attribute__ ((packed)) QMIWDS_GET_DEFAULT_SETTINGS_REQ_MSG, *PQMIWDS_GET_DEFAULT_SETTINGS_REQ_MSG; typedef struct _QMIWDS_GET_DEFAULT_SETTINGS_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } __attribute__ ((packed)) QMIWDS_GET_DEFAULT_SETTINGS_RESP_MSG, *PQMIWDS_GET_DEFAULT_SETTINGS_RESP_MSG; typedef struct _QMIWDS_MODIFY_PROFILE_SETTINGS_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR ProfileType; UCHAR ProfileIndex; } __attribute__ ((packed)) QMIWDS_MODIFY_PROFILE_SETTINGS_REQ_MSG, *PQMIWDS_MODIFY_PROFILE_SETTINGS_REQ_MSG; typedef struct _QMIWDS_MODIFY_PROFILE_SETTINGS_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } __attribute__ ((packed)) QMIWDS_MODIFY_PROFILE_SETTINGS_RESP_MSG, *PQMIWDS_MODIFY_PROFILE_SETTINGS_RESP_MSG; typedef struct _QMIWDS_GET_PROFILE_SETTINGS_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR ProfileType; UCHAR ProfileIndex; } __attribute__ ((packed)) QMIWDS_GET_PROFILE_SETTINGS_REQ_MSG, *PQMIWDS_GET_PROFILE_SETTINGS_REQ_MSG; typedef struct _QMIWDS_CREATE_PROFILE_SETTINGS_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR ProfileType; UCHAR TLV2Type; //0x25 USHORT TLV2Length; UCHAR pdp_context; } __attribute__ ((packed)) QMIWDS_CREATE_PROFILE_SETTINGS_REQ_MSG, *PQMIWDS_CREATE_PROFILE_SETTINGS_REQ_MSG; typedef struct _QMIWDS_GET_PROFILE_LIST_REQ_MSG { USHORT Type; USHORT Length; } __attribute__ ((packed)) QMIWDS_GET_PROFILE_LIST_REQ_MSG, *PQMIWDS_GET_PROFILE_LIST_REQ_MSG; typedef struct _QMIWDS_GET_PROFILE_LIST_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR ProfileList[1024]; } __attribute__ ((packed)) QMIWDS_GET_PROFILE_LIST_RESP_MSG, *PQMIWDS_GET_PROFILE_LIST_RESP_MSG; #if 0 typedef struct _QMIWDS_EVENT_REPORT_IND_DATA_BEARER_TLV { UCHAR Type; USHORT Length; UCHAR DataBearer; } QMIWDS_EVENT_REPORT_IND_DATA_BEARER_TLV, *PQMIWDS_EVENT_REPORT_IND_DATA_BEARER_TLV; typedef struct _QMIWDS_EVENT_REPORT_IND_DORMANCY_STATUS_TLV { UCHAR Type; USHORT Length; UCHAR DormancyStatus; } QMIWDS_EVENT_REPORT_IND_DORMANCY_STATUS_TLV, *PQMIWDS_EVENT_REPORT_IND_DORMANCY_STATUS_TLV; typedef struct _QMIWDS_GET_DATA_BEARER_REQ_MSG { USHORT Type; // QMUX type 0x0037 USHORT Length; } QMIWDS_GET_DATA_BEARER_REQ_MSG, *PQMIWDS_GET_DATA_BEARER_REQ_MSG; typedef struct _QMIWDS_GET_DATA_BEARER_RESP_MSG { USHORT Type; // QMUX type 0x0037 USHORT Length; UCHAR TLVType; // 0x02 USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INTERNAL // QMI_ERR_MALFORMED_MSG // QMI_ERR_NO_MEMORY // QMI_ERR_OUT_OF_CALL // QMI_ERR_INFO_UNAVAILABLE UCHAR TLV2Type; // 0x01 USHORT TLV2Length; // UCHAR Technology; // } QMIWDS_GET_DATA_BEARER_RESP_MSG, *PQMIWDS_GET_DATA_BEARER_RESP_MSG; #endif // ======================= DMS ============================== #define QMIDMS_SET_EVENT_REPORT_REQ 0x0001 #define QMIDMS_SET_EVENT_REPORT_RESP 0x0001 #define QMIDMS_EVENT_REPORT_IND 0x0001 #define QMIDMS_GET_DEVICE_CAP_REQ 0x0020 #define QMIDMS_GET_DEVICE_CAP_RESP 0x0020 #define QMIDMS_GET_DEVICE_MFR_REQ 0x0021 #define QMIDMS_GET_DEVICE_MFR_RESP 0x0021 #define QMIDMS_GET_DEVICE_MODEL_ID_REQ 0x0022 #define QMIDMS_GET_DEVICE_MODEL_ID_RESP 0x0022 #define QMIDMS_GET_DEVICE_REV_ID_REQ 0x0023 #define QMIDMS_GET_DEVICE_REV_ID_RESP 0x0023 #define QMIDMS_GET_MSISDN_REQ 0x0024 #define QMIDMS_GET_MSISDN_RESP 0x0024 #define QMIDMS_GET_DEVICE_SERIAL_NUMBERS_REQ 0x0025 #define QMIDMS_GET_DEVICE_SERIAL_NUMBERS_RESP 0x0025 #define QMIDMS_UIM_SET_PIN_PROTECTION_REQ 0x0027 #define QMIDMS_UIM_SET_PIN_PROTECTION_RESP 0x0027 #define QMIDMS_UIM_VERIFY_PIN_REQ 0x0028 #define QMIDMS_UIM_VERIFY_PIN_RESP 0x0028 #define QMIDMS_UIM_UNBLOCK_PIN_REQ 0x0029 #define QMIDMS_UIM_UNBLOCK_PIN_RESP 0x0029 #define QMIDMS_UIM_CHANGE_PIN_REQ 0x002A #define QMIDMS_UIM_CHANGE_PIN_RESP 0x002A #define QMIDMS_UIM_GET_PIN_STATUS_REQ 0x002B #define QMIDMS_UIM_GET_PIN_STATUS_RESP 0x002B #define QMIDMS_GET_DEVICE_HARDWARE_REV_REQ 0x002C #define QMIDMS_GET_DEVICE_HARDWARE_REV_RESP 0x002C #define QMIDMS_GET_OPERATING_MODE_REQ 0x002D #define QMIDMS_GET_OPERATING_MODE_RESP 0x002D #define QMIDMS_SET_OPERATING_MODE_REQ 0x002E #define QMIDMS_SET_OPERATING_MODE_RESP 0x002E #define QMIDMS_GET_ACTIVATED_STATUS_REQ 0x0031 #define QMIDMS_GET_ACTIVATED_STATUS_RESP 0x0031 #define QMIDMS_ACTIVATE_AUTOMATIC_REQ 0x0032 #define QMIDMS_ACTIVATE_AUTOMATIC_RESP 0x0032 #define QMIDMS_ACTIVATE_MANUAL_REQ 0x0033 #define QMIDMS_ACTIVATE_MANUAL_RESP 0x0033 #define QMIDMS_UIM_GET_ICCID_REQ 0x003C #define QMIDMS_UIM_GET_ICCID_RESP 0x003C #define QMIDMS_UIM_GET_CK_STATUS_REQ 0x0040 #define QMIDMS_UIM_GET_CK_STATUS_RESP 0x0040 #define QMIDMS_UIM_SET_CK_PROTECTION_REQ 0x0041 #define QMIDMS_UIM_SET_CK_PROTECTION_RESP 0x0041 #define QMIDMS_UIM_UNBLOCK_CK_REQ 0x0042 #define QMIDMS_UIM_UNBLOCK_CK_RESP 0x0042 #define QMIDMS_UIM_GET_IMSI_REQ 0x0043 #define QMIDMS_UIM_GET_IMSI_RESP 0x0043 #define QMIDMS_UIM_GET_STATE_REQ 0x0044 #define QMIDMS_UIM_GET_STATE_RESP 0x0044 #define QMIDMS_GET_BAND_CAP_REQ 0x0045 #define QMIDMS_GET_BAND_CAP_RESP 0x0045 #if 0 typedef struct _QMIDMS_GET_DEVICE_MFR_REQ_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; } QMIDMS_GET_DEVICE_MFR_REQ_MSG, *PQMIDMS_GET_DEVICE_MFR_REQ_MSG; typedef struct _QMIDMS_GET_DEVICE_MFR_RESP_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR TLV2Type; // 0x01 - required parameter USHORT TLV2Length; // length of the mfr string UCHAR DeviceManufacturer; // first byte of string } QMIDMS_GET_DEVICE_MFR_RESP_MSG, *PQMIDMS_GET_DEVICE_MFR_RESP_MSG; typedef struct _QMIDMS_GET_DEVICE_MODEL_ID_REQ_MSG { USHORT Type; // QMUX type 0x0004 USHORT Length; } QMIDMS_GET_DEVICE_MODEL_ID_REQ_MSG, *PQMIDMS_GET_DEVICE_MODEL_ID_REQ_MSG; typedef struct _QMIDMS_GET_DEVICE_MODEL_ID_RESP_MSG { USHORT Type; // QMUX type 0x0004 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR TLV2Type; // 0x01 - required parameter USHORT TLV2Length; // length of the modem id string UCHAR DeviceModelID; // device model id } QMIDMS_GET_DEVICE_MODEL_ID_RESP_MSG, *PQMIDMS_GET_DEVICE_MODEL_ID_RESP_MSG; #endif typedef struct _QMIDMS_GET_DEVICE_REV_ID_REQ_MSG { USHORT Type; // QMUX type 0x0005 USHORT Length; } __attribute__ ((packed)) QMIDMS_GET_DEVICE_REV_ID_REQ_MSG, *PQMIDMS_GET_DEVICE_REV_ID_REQ_MSG; typedef struct _DEVICE_REV_ID { UCHAR TLVType; USHORT TLVLength; UCHAR RevisionID; } __attribute__ ((packed)) DEVICE_REV_ID, *PDEVICE_REV_ID; #if 0 typedef struct _QMIDMS_GET_DEVICE_REV_ID_RESP_MSG { USHORT Type; // QMUX type 0x0023 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT } QMIDMS_GET_DEVICE_REV_ID_RESP_MSG, *PQMIDMS_GET_DEVICE_REV_ID_RESP_MSG; typedef struct _QMIDMS_GET_MSISDN_REQ_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; } QMIDMS_GET_MSISDN_REQ_MSG, *PQMIDMS_GET_MSISDN_REQ_MSG; typedef struct _QCTLV_DEVICE_VOICE_NUMBERS { UCHAR TLVType; // as defined above USHORT TLVLength; // 4/7/7 UCHAR VoideNumberString; // ESN, IMEI, or MEID } QCTLV_DEVICE_VOICE_NUMBERS, *PQCTLV_DEVICE_VOICE_NUMBERS; typedef struct _QMIDMS_GET_MSISDN_RESP_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG } QMIDMS_GET_MSISDN_RESP_MSG, *PQMIDMS_GET_MSISDN_RESP_MSG; #endif typedef struct _QMIDMS_UIM_GET_IMSI_REQ_MSG { USHORT Type; USHORT Length; } __attribute__ ((packed)) QMIDMS_UIM_GET_IMSI_REQ_MSG, *PQMIDMS_UIM_GET_IMSI_REQ_MSG; typedef struct _QMIDMS_UIM_GET_IMSI_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; UCHAR TLV2Type; USHORT TLV2Length; UCHAR IMSI; } __attribute__ ((packed)) QMIDMS_UIM_GET_IMSI_RESP_MSG, *PQMIDMS_UIM_GET_IMSI_RESP_MSG; #if 0 typedef struct _QMIDMS_GET_DEVICE_SERIAL_NUMBERS_REQ_MSG { USHORT Type; // QMUX type 0x0007 USHORT Length; } QMIDMS_GET_DEVICE_SERIAL_NUMBERS_REQ_MSG, *PQMIDMS_GET_DEVICE_SERIAL_NUMBERS_REQ_MSG; #define QCTLV_TYPE_SER_NUM_ESN 0x10 #define QCTLV_TYPE_SER_NUM_IMEI 0x11 #define QCTLV_TYPE_SER_NUM_MEID 0x12 typedef struct _QCTLV_DEVICE_SERIAL_NUMBER { UCHAR TLVType; // as defined above USHORT TLVLength; // 4/7/7 UCHAR SerialNumberString; // ESN, IMEI, or MEID } QCTLV_DEVICE_SERIAL_NUMBER, *PQCTLV_DEVICE_SERIAL_NUMBER; typedef struct _QMIDMS_GET_DEVICE_SERIAL_NUMBERS_RESP_MSG { USHORT Type; // QMUX type 0x0007 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT // followed by optional TLV } QMIDMS_GET_DEVICE_SERIAL_NUMBERS_RESP_MSG, *PQMIDMS_GET_DEVICE_SERIAL_NUMBERS_RESP; typedef struct _QMIDMS_GET_DMS_BAND_CAP { USHORT Type; USHORT Length; } QMIDMS_GET_BAND_CAP_REQ_MSG, *PQMIDMS_GET_BAND_CAP_REQ_MSG; typedef struct _QMIDMS_GET_BAND_CAP_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_NONE // QMI_ERR_INTERNAL // QMI_ERR_MALFORMED_MSG // QMI_ERR_NO_MEMORY UCHAR TLV2Type; // 0x01 USHORT TLV2Length; // 2 ULONG64 BandCap; } QMIDMS_GET_BAND_CAP_RESP_MSG, *PQMIDMS_GET_BAND_CAP_RESP; typedef struct _QMIDMS_GET_DEVICE_CAP_REQ_MSG { USHORT Type; // QMUX type 0x0002 USHORT Length; } QMIDMS_GET_DEVICE_CAP_REQ_MSG, *PQMIDMS_GET_DEVICE_CAP_REQ_MSG; typedef struct _QMIDMS_GET_DEVICE_CAP_RESP_MSG { USHORT Type; // QMUX type 0x0002 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMUX_RESULT_SUCCESS // QMUX_RESULT_FAILURE USHORT QMUXError; // QMUX_ERR_INVALID_ARG // QMUX_ERR_NO_MEMORY // QMUX_ERR_INTERNAL // QMUX_ERR_FAULT UCHAR TLV2Type; // 0x01 USHORT TLV2Length; // 2 ULONG MaxTxChannelRate; ULONG MaxRxChannelRate; UCHAR VoiceCap; UCHAR SimCap; UCHAR RadioIfListCnt; // #elements in radio interface list UCHAR RadioIfList; // N 1-byte elements } QMIDMS_GET_DEVICE_CAP_RESP_MSG, *PQMIDMS_GET_DEVICE_CAP_RESP_MSG; typedef struct _QMIDMS_GET_ACTIVATED_STATUS_REQ_MSG { USHORT Type; // QMUX type 0x0002 USHORT Length; } QMIDMS_GET_ACTIVATED_STATUS_REQ_MSG, *PQMIDMS_GET_ACTIVATES_STATUD_REQ_MSG; typedef struct _QMIDMS_GET_ACTIVATED_STATUS_RESP_MSG { USHORT Type; // QMUX type 0x0002 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMUX_RESULT_SUCCESS // QMUX_RESULT_FAILURE USHORT QMUXError; // QMUX_ERR_INVALID_ARG // QMUX_ERR_NO_MEMORY // QMUX_ERR_INTERNAL // QMUX_ERR_FAULT UCHAR TLV2Type; // 0x01 USHORT TLV2Length; // 2 USHORT ActivatedStatus; } QMIDMS_GET_ACTIVATED_STATUS_RESP_MSG, *PQMIDMS_GET_ACTIVATED_STATUS_RESP_MSG; typedef struct _QMIDMS_GET_OPERATING_MODE_REQ_MSG { USHORT Type; // QMUX type 0x0002 USHORT Length; } QMIDMS_GET_OPERATING_MODE_REQ_MSG, *PQMIDMS_GET_OPERATING_MODE_REQ_MSG; typedef struct _OFFLINE_REASON { UCHAR TLVType; USHORT TLVLength; USHORT OfflineReason; } OFFLINE_REASON, *POFFLINE_REASON; typedef struct _HARDWARE_RESTRICTED_MODE { UCHAR TLVType; USHORT TLVLength; UCHAR HardwareControlledMode; } HARDWARE_RESTRICTED_MODE, *PHARDWARE_RESTRICTED_MODE; typedef struct _QMIDMS_GET_OPERATING_MODE_RESP_MSG { USHORT Type; // QMUX type 0x0002 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMUX_RESULT_SUCCESS // QMUX_RESULT_FAILURE USHORT QMUXError; // QMUX_ERR_INVALID_ARG // QMUX_ERR_NO_MEMORY // QMUX_ERR_INTERNAL // QMUX_ERR_FAULT UCHAR TLV2Type; // 0x01 USHORT TLV2Length; // 2 UCHAR OperatingMode; } QMIDMS_GET_OPERATING_MODE_RESP_MSG, *PQMIDMS_GET_OPERATING_MODE_RESP_MSG; typedef struct _QMIDMS_UIM_GET_ICCID_REQ_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; } QMIDMS_UIM_GET_ICCID_REQ_MSG, *PQMIDMS_UIM_GET_ICCID_REQ_MSG; typedef struct _QMIDMS_UIM_GET_ICCID_RESP_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR TLV2Type; // 0x01 - required parameter USHORT TLV2Length; // var UCHAR ICCID; // String of voice number } QMIDMS_UIM_GET_ICCID_RESP_MSG, *PQMIDMS_UIM_GET_ICCID_RESP_MSG; #endif typedef struct _QMIDMS_SET_OPERATING_MODE_REQ_MSG { USHORT Type; // QMUX type 0x0002 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 UCHAR OperatingMode; } __attribute__ ((packed)) QMIDMS_SET_OPERATING_MODE_REQ_MSG, *PQMIDMS_SET_OPERATING_MODE_REQ_MSG; typedef struct _QMIDMS_SET_OPERATING_MODE_RESP_MSG { USHORT Type; // QMUX type 0x0002 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMUX_RESULT_SUCCESS // QMUX_RESULT_FAILURE USHORT QMUXError; // QMUX_ERR_INVALID_ARG // QMUX_ERR_NO_MEMORY // QMUX_ERR_INTERNAL // QMUX_ERR_FAULT } __attribute__ ((packed)) QMIDMS_SET_OPERATING_MODE_RESP_MSG, *PQMIDMS_SET_OPERATING_MODE_RESP_MSG; #if 0 typedef struct _QMIDMS_ACTIVATE_AUTOMATIC_REQ_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // UCHAR ActivateCodelen; UCHAR ActivateCode; } QMIDMS_ACTIVATE_AUTOMATIC_REQ_MSG, *PQMIDMS_ACTIVATE_AUTOMATIC_REQ_MSG; typedef struct _QMIDMS_ACTIVATE_AUTOMATIC_RESP_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT } QMIDMS_ACTIVATE_AUTOMATIC_RESP_MSG, *PQMIDMS_ACTIVATE_AUTOMATIC_RESP_MSG; typedef struct _SPC_MSG { UCHAR SPC[6]; USHORT SID; } SPC_MSG, *PSPC_MSG; typedef struct _MDN_MSG { UCHAR MDNLEN; UCHAR MDN; } MDN_MSG, *PMDN_MSG; typedef struct _MIN_MSG { UCHAR MINLEN; UCHAR MIN; } MIN_MSG, *PMIN_MSG; typedef struct _PRL_MSG { UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // USHORT PRLLEN; UCHAR PRL; } PRL_MSG, *PPRL_MSG; typedef struct _MN_HA_KEY_MSG { UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // UCHAR MN_HA_KEY_LEN; UCHAR MN_HA_KEY; } MN_HA_KEY_MSG, *PMN_HA_KEY_MSG; typedef struct _MN_AAA_KEY_MSG { UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // UCHAR MN_AAA_KEY_LEN; UCHAR MN_AAA_KEY; } MN_AAA_KEY_MSG, *PMN_AAA_KEY_MSG; typedef struct _QMIDMS_ACTIVATE_MANUAL_REQ_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // UCHAR Value; } QMIDMS_ACTIVATE_MANUAL_REQ_MSG, *PQMIDMS_ACTIVATE_MANUAL_REQ_MSG; typedef struct _QMIDMS_ACTIVATE_MANUAL_RESP_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT } QMIDMS_ACTIVATE_MANUAL_RESP_MSG, *PQMIDMS_ACTIVATE_MANUAL_RESP_MSG; #endif typedef struct _QMIDMS_UIM_GET_STATE_REQ_MSG { USHORT Type; USHORT Length; } __attribute__ ((packed)) QMIDMS_UIM_GET_STATE_REQ_MSG, *PQMIDMS_UIM_GET_STATE_REQ_MSG; typedef struct _QMIDMS_UIM_GET_STATE_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; UCHAR TLV2Type; USHORT TLV2Length; UCHAR UIMState; } __attribute__ ((packed)) QMIDMS_UIM_GET_STATE_RESP_MSG, *PQMIDMS_UIM_GET_STATE_RESP_MSG; typedef struct _QMIDMS_UIM_GET_PIN_STATUS_REQ_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; } __attribute__ ((packed)) QMIDMS_UIM_GET_PIN_STATUS_REQ_MSG, *PQMIDMS_UIM_GET_PIN_STATUS_REQ_MSG; typedef struct _QMIDMS_UIM_PIN_STATUS { UCHAR TLVType; USHORT TLVLength; UCHAR PINStatus; UCHAR PINVerifyRetriesLeft; UCHAR PINUnblockRetriesLeft; } __attribute__ ((packed)) QMIDMS_UIM_PIN_STATUS, *PQMIDMS_UIM_PIN_STATUS; #define QMI_PIN_STATUS_NOT_INIT 0 #define QMI_PIN_STATUS_NOT_VERIF 1 #define QMI_PIN_STATUS_VERIFIED 2 #define QMI_PIN_STATUS_DISABLED 3 #define QMI_PIN_STATUS_BLOCKED 4 #define QMI_PIN_STATUS_PERM_BLOCKED 5 #define QMI_PIN_STATUS_UNBLOCKED 6 #define QMI_PIN_STATUS_CHANGED 7 typedef struct _QMIDMS_UIM_GET_PIN_STATUS_RESP_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR PinStatus; } __attribute__ ((packed)) QMIDMS_UIM_GET_PIN_STATUS_RESP_MSG, *PQMIDMS_UIM_GET_PIN_STATUS_RESP_MSG; #if 0 typedef struct _QMIDMS_UIM_GET_CK_STATUS_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR Facility; } QMIDMS_UIM_GET_CK_STATUS_REQ_MSG, *PQMIDMS_UIM_GET_CK_STATUS_REQ_MSG; typedef struct _QMIDMS_UIM_CK_STATUS { UCHAR TLVType; USHORT TLVLength; UCHAR FacilityStatus; UCHAR FacilityVerifyRetriesLeft; UCHAR FacilityUnblockRetriesLeft; } QMIDMS_UIM_CK_STATUS, *PQMIDMS_UIM_CK_STATUS; typedef struct _QMIDMS_UIM_CK_OPERATION_STATUS { UCHAR TLVType; USHORT TLVLength; UCHAR OperationBlocking; } QMIDMS_UIM_CK_OPERATION_STATUS, *PQMIDMS_UIM_CK_OPERATION_STATUS; typedef struct _QMIDMS_UIM_GET_CK_STATUS_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; UCHAR CkStatus; } QMIDMS_UIM_GET_CK_STATUS_RESP_MSG, *PQMIDMS_UIM_GET_CK_STATUS_RESP_MSG; #endif typedef struct _QMIDMS_UIM_VERIFY_PIN_REQ_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 UCHAR PINID; UCHAR PINLen; UCHAR PINValue; } __attribute__ ((packed)) QMIDMS_UIM_VERIFY_PIN_REQ_MSG, *PQMIDMS_UIM_VERIFY_PIN_REQ_MSG; typedef struct _QMIDMS_UIM_VERIFY_PIN_RESP_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR TLV2Type; USHORT TLV2Length; UCHAR PINVerifyRetriesLeft; UCHAR PINUnblockRetriesLeft; } __attribute__ ((packed)) QMIDMS_UIM_VERIFY_PIN_RESP_MSG, *PQMIDMS_UIM_VERIFY_PIN_RESP_MSG; #if 0 typedef struct _QMIDMS_UIM_SET_PIN_PROTECTION_REQ_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 UCHAR PINID; UCHAR ProtectionSetting; UCHAR PINLen; UCHAR PINValue; } QMIDMS_UIM_SET_PIN_PROTECTION_REQ_MSG, *PQMIDMS_UIM_SET_PIN_PROTECTION_REQ_MSG; typedef struct _QMIDMS_UIM_SET_PIN_PROTECTION_RESP_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR TLV2Type; USHORT TLV2Length; UCHAR PINVerifyRetriesLeft; UCHAR PINUnblockRetriesLeft; } QMIDMS_UIM_SET_PIN_PROTECTION_RESP_MSG, *PQMIDMS_UIM_SET_PIN_PROTECTION_RESP_MSG; typedef struct _QMIDMS_UIM_SET_CK_PROTECTION_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR Facility; UCHAR FacilityState; UCHAR FacliltyLen; UCHAR FacliltyValue; } QMIDMS_UIM_SET_CK_PROTECTION_REQ_MSG, *PQMIDMS_UIM_SET_CK_PROTECTION_REQ_MSG; typedef struct _QMIDMS_UIM_SET_CK_PROTECTION_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; UCHAR TLV2Type; USHORT TLV2Length; UCHAR FacilityRetriesLeft; } QMIDMS_UIM_SET_CK_PROTECTION_RESP_MSG, *PQMIDMS_UIM_SET_CK_PROTECTION_RESP_MSG; typedef struct _UIM_PIN { UCHAR PinLength; UCHAR PinValue; } UIM_PIN, *PUIM_PIN; typedef struct _QMIDMS_UIM_CHANGE_PIN_REQ_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 UCHAR PINID; UCHAR PinDetails; } QMIDMS_UIM_CHANGE_PIN_REQ_MSG, *PQMIDMS_UIM_CHANGE_PIN_REQ_MSG; typedef struct QMIDMS_UIM_CHANGE_PIN_RESP_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR TLV2Type; USHORT TLV2Length; UCHAR PINVerifyRetriesLeft; UCHAR PINUnblockRetriesLeft; } QMIDMS_UIM_CHANGE_PIN_RESP_MSG, *PQMIDMS_UIM_CHANGE_PIN_RESP_MSG; typedef struct _UIM_PUK { UCHAR PukLength; UCHAR PukValue; } UIM_PUK, *PUIM_PUK; typedef struct _QMIDMS_UIM_UNBLOCK_PIN_REQ_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 UCHAR PINID; UCHAR PinDetails; } QMIDMS_UIM_UNBLOCK_PIN_REQ_MSG, *PQMIDMS_UIM_BLOCK_PIN_REQ_MSG; typedef struct QMIDMS_UIM_UNBLOCK_PIN_RESP_MSG { USHORT Type; // QMUX type 0x0024 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR TLV2Type; USHORT TLV2Length; UCHAR PINVerifyRetriesLeft; UCHAR PINUnblockRetriesLeft; } QMIDMS_UIM_UNBLOCK_PIN_RESP_MSG, *PQMIDMS_UIM_UNBLOCK_PIN_RESP_MSG; typedef struct _QMIDMS_UIM_UNBLOCK_CK_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR Facility; UCHAR FacliltyUnblockLen; UCHAR FacliltyUnblockValue; } QMIDMS_UIM_UNBLOCK_CK_REQ_MSG, *PQMIDMS_UIM_BLOCK_CK_REQ_MSG; typedef struct QMIDMS_UIM_UNBLOCK_CK_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; UCHAR TLV2Type; USHORT TLV2Length; UCHAR FacilityUnblockRetriesLeft; } QMIDMS_UIM_UNBLOCK_CK_RESP_MSG, *PQMIDMS_UIM_UNBLOCK_CK_RESP_MSG; typedef struct _QMIDMS_SET_EVENT_REPORT_REQ_MSG { USHORT Type; USHORT Length; } QMIDMS_SET_EVENT_REPORT_REQ_MSG, *PQMIDMS_SET_EVENT_REPORT_REQ_MSG; typedef struct _QMIDMS_SET_EVENT_REPORT_RESP_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG } QMIDMS_SET_EVENT_REPORT_RESP_MSG, *PQMIDMS_SET_EVENT_REPORT_RESP_MSG; typedef struct _PIN_STATUS { UCHAR TLVType; USHORT TLVLength; UCHAR ReportPinState; } PIN_STATUS, *PPIN_STATUS; typedef struct _POWER_STATUS { UCHAR TLVType; USHORT TLVLength; UCHAR PowerStatus; UCHAR BatteryLvl; } POWER_STATUS, *PPOWER_STATUS; typedef struct _ACTIVATION_STATE { UCHAR TLVType; USHORT TLVLength; USHORT ActivationState; } ACTIVATION_STATE, *PACTIVATION_STATE; typedef struct _ACTIVATION_STATE_REQ { UCHAR TLVType; USHORT TLVLength; UCHAR ActivationState; } ACTIVATION_STATE_REQ, *PACTIVATION_STATE_REQ; typedef struct _OPERATING_MODE { UCHAR TLVType; USHORT TLVLength; UCHAR OperatingMode; } OPERATING_MODE, *POPERATING_MODE; typedef struct _UIM_STATE { UCHAR TLVType; USHORT TLVLength; UCHAR UIMState; } UIM_STATE, *PUIM_STATE; typedef struct _WIRELESS_DISABLE_STATE { UCHAR TLVType; USHORT TLVLength; UCHAR WirelessDisableState; } WIRELESS_DISABLE_STATE, *PWIRELESS_DISABLE_STATE; typedef struct _QMIDMS_EVENT_REPORT_IND_MSG { USHORT Type; USHORT Length; } QMIDMS_EVENT_REPORT_IND_MSG, *PQMIDMS_EVENT_REPORT_IND_MSG; #endif // ============================ END OF DMS =============================== // ======================= QOS ============================== typedef struct _MPIOC_DEV_INFO MPIOC_DEV_INFO, *PMPIOC_DEV_INFO; #define QMI_QOS_SET_EVENT_REPORT_REQ 0x0001 #define QMI_QOS_SET_EVENT_REPORT_RESP 0x0001 #define QMI_QOS_SET_EVENT_REPORT_IND 0x0001 #define QMI_QOS_BIND_DATA_PORT_REQ 0x002B #define QMI_QOS_BIND_DATA_PORT_RESP 0x002B #define QMI_QOS_INDICATION_REGISTER_REQ 0x002F #define QMI_QOS_INDICATION_REGISTER_RESP 0x002F #define QMI_QOS_GLOBAL_QOS_FLOW_IND 0x0031 #define QMI_QOS_GET_QOS_INFO_REQ 0x0033 #define QMI_QOS_GET_QOS_INFO_RESP 0x0033 #if 1 typedef struct _QMI_QOS_SET_EVENT_REPORT_REQ_MSG { USHORT Type; // QMUX type 0x0001 USHORT Length; // UCHAR TLVType; // 0x01 - physical link state // USHORT TLVLength; // 1 // UCHAR PhyLinkStatusRpt; // 0-enable; 1-disable UCHAR TLVType2; // 0x02 = global flow reporting USHORT TLVLength2; // 1 UCHAR GlobalFlowRpt; // 1-enable; 0-disable } QMI_QOS_SET_EVENT_REPORT_REQ_MSG, *PQMI_QOS_SET_EVENT_REPORT_REQ_MSG; typedef struct _QMI_QOS_SET_EVENT_REPORT_RESP_MSG { USHORT Type; // QMUX type 0x0010 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMUX_RESULT_SUCCESS // QMUX_RESULT_FAILURE USHORT QMUXError; // QMUX_ERR_INVALID_ARG // QMUX_ERR_NO_MEMORY // QMUX_ERR_INTERNAL // QMUX_ERR_FAULT } QMI_QOS_SET_EVENT_REPORT_RESP_MSG, *PQMI_QOS_SET_EVENT_REPORT_RESP_MSG; typedef struct _QMI_QOS_SET_EVENT_REPORT_IND_MSG { USHORT Type; // QMUX type 0x0001 USHORT Length; UCHAR TLVs; } QMI_QOS_SET_EVENT_REPORT_IND_MSG, *PQMI_QOS_SET_EVENT_REPORT_IND_MSG; typedef struct _QMI_QOS_BIND_DATA_PORT_TLV_EP_ID { UCHAR TLVType; //0x10 USHORT TLVLength; ULONG ep_type; ULONG iface_id; } __attribute__ ((packed)) QMI_QOS_BIND_DATA_PORT_TLV_EP_ID, *PQMI_QOS_BIND_DATA_PORT_TLV_EP_ID; typedef struct _QMI_QOS_BIND_DATA_PORT_TLV_MUX_ID { UCHAR TLVType; //0x11 USHORT TLVLength; UCHAR mux_id; } __attribute__ ((packed)) QMI_QOS_BIND_DATA_PORT_TLV_MUX_ID, *PQMI_QOS_BIND_DATA_PORT_TLV_MUX_ID; typedef struct _QMI_QOS_BIND_DATA_PORT_TLV_DATA_PORT { UCHAR TLVType; //0x12 USHORT TLVLength; USHORT data_port; } __attribute__ ((packed)) QMI_QOS_BIND_DATA_PORT_TLV_DATA_PORT, *PQMI_QOS_BIND_DATA_PORT_TLV_DATA_PORT; typedef struct _QMI_QOS_BIND_DATA_PORT_REQ_MSG { USHORT Type; USHORT Length; QMI_QOS_BIND_DATA_PORT_TLV_EP_ID EpIdTlv; QMI_QOS_BIND_DATA_PORT_TLV_MUX_ID MuxIdTlv; //QMI_QOS_BIND_DATA_PORT_TLV_DATA_PORT DataPortTlv; } __attribute__ ((packed)) QMI_QOS_BIND_DATA_PORT_REQ_MSG, *PQMI_QOS_BIND_DATA_PORT_REQ_MSG; typedef struct _QMI_QOS_BIND_DATA_PORT_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; //0x02 USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } __attribute__ ((packed)) QMI_QOS_BIND_DATA_PORT_RESP_MSG, *PQMI_QOS_BIND_DATA_PORT_RESP_MSG; typedef struct _QMI_QOS_INDICATION_REGISTER_TLV_REPORT_GLOBAL_QOS_FLOW { UCHAR TLVType; //0x10 USHORT TLVLength; UCHAR report_global_qos_flows; } __attribute__ ((packed)) QMI_QOS_INDICATION_REGISTER_TLV_REPORT_GLOBAL_QOS_FLOW, *PQMI_QOS_INDICATION_REGISTER_TLV_REPORT_GLOBAL_QOS_FLOW; typedef struct _QMI_QOS_INDICATION_REGISTER_TLV_SUPPRESS_REPORT_FLOW_CTL { UCHAR TLVType; //0x11 USHORT TLVLength; UCHAR suppress_report_flow_control; } __attribute__ ((packed)) QMI_QOS_INDICATION_REGISTER_TLV_SUPPRESS_REPORT_FLOW_CTL, *PQMI_QOS_INDICATION_REGISTER_TLV_SUPPRESS_REPORT_FLOW_CTL; typedef struct _QMI_QOS_INDICATION_REGISTER_TLV_SUPPRESS_NW_STATUS_IND { UCHAR TLVType; //0x12 USHORT TLVLength; UCHAR suppress_network_status_ind; } __attribute__ ((packed)) QMI_QOS_INDICATION_REGISTER_TLV_SUPPRESS_NW_STATUS_IND, *PQMI_QOS_INDICATION_REGISTER_TLV_SUPPRESS_NW_STATUS_IND; typedef struct _QMI_QOS_INDICATION_REGISTER_REQ_MSG { USHORT Type; USHORT Length; QMI_QOS_INDICATION_REGISTER_TLV_REPORT_GLOBAL_QOS_FLOW ReportGlobalQosFlowTlv; //QMI_QOS_INDICATION_REGISTER_TLV_SUPPRESS_REPORT_FLOW_CTL SuppressReportFlowCtlTlv; //QMI_QOS_INDICATION_REGISTER_TLV_SUPPRESS_NW_STATUS_IND SuppressNWStatusIndTlv; } __attribute__ ((packed)) QMI_QOS_INDICATION_REGISTER_REQ_MSG, *PQMI_QOS_INDICATION_REGISTER_REQ_MSG; typedef struct _QMI_QOS_INDICATION_REGISTER_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; //0x02 USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } __attribute__ ((packed)) QMI_QOS_INDICATION_REGISTER_RESP_MSG, *PQMI_QOS_INDICATION_REGISTER_RESP_MSG; typedef struct _QMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_STATE { UCHAR TLVType; //0x01 USHORT TLVLength; ULONG qos_id; UCHAR new_flow; ULONG state_change; } __attribute__ ((packed)) QMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_STATE, *PQMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_STATE; typedef struct _QMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_GRANTED { UCHAR TLVType; //0x10 0x11 USHORT TLVLength; ULONG64 flow_valid_params; ULONG ip_flow_trf_cls; ULONG64 data_rate_max; ULONG64 guaranteed_rate; ULONG peak_rate; ULONG token_rate; ULONG bucket_size; ULONG ip_flow_latency; ULONG ip_flow_jitter; USHORT ip_flow_pkt_error_rate_multiplier; USHORT ip_flow_pkt_error_rate_exponent; ULONG ip_flow_min_policed_packet_size; ULONG ip_flow_max_allowed_packet_size; ULONG ip_flow_3gpp_residual_bit_error_rate; ULONG ip_flow_3gpp_traffic_handling_priority; USHORT ip_flow_3gpp2_profile_id; UCHAR ip_flow_3gpp2_flow_priority; UCHAR ip_flow_3gpp_im_cn_flag; UCHAR ip_flow_3gpp_sig_ind; ULONG ip_flow_lte_qci; } __attribute__ ((packed)) QMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_GRANTED, *PQMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_GRANTED; typedef struct _QMI_QOS_GLOBAL_QOS_FLOW_TLV_FILTER { UCHAR TLVType; //0x12 0x13 USHORT TLVLength; UCHAR tx_rx_qos_filter_len; UCHAR ip_version; ULONG64 valid_params0; ULONG ipv4_addr0; ULONG subnet_mask0; ULONG ipv4_addr1; ULONG subnet_mask1; UCHAR val4; UCHAR mask4; ULONG64 valid_params01; UCHAR ipv6_address00; UCHAR ipv6_address01; UCHAR ipv6_address02; UCHAR ipv6_address03; UCHAR ipv6_address04; UCHAR ipv6_address05; UCHAR ipv6_address06; UCHAR ipv6_address07; UCHAR ipv6_address08; UCHAR ipv6_address09; UCHAR ipv6_address010; UCHAR ipv6_address011; UCHAR ipv6_address012; UCHAR ipv6_address013; UCHAR ipv6_address014; ULONG ipv6_address015; UCHAR prefix_len0; UCHAR ipv6_address10; UCHAR ipv6_address11; UCHAR ipv6_address12; UCHAR ipv6_address13; UCHAR ipv6_address14; UCHAR ipv6_address15; UCHAR ipv6_address16; UCHAR ipv6_address17; UCHAR ipv6_address18; UCHAR ipv6_address19; UCHAR ipv6_address110; UCHAR ipv6_address111; UCHAR ipv6_address112; UCHAR ipv6_address113; UCHAR ipv6_address114; ULONG ipv6_address115; UCHAR prefix_len1; UCHAR val6; UCHAR mask6; ULONG flow_label; ULONG xport_protocol; ULONG64 valid_params2; USHORT port0; USHORT range0; USHORT port1; USHORT range1; ULONG64 valid_params3; USHORT port2; USHORT range2; USHORT port3; USHORT range3; ULONG64 valid_params4; UCHAR type; UCHAR code; ULONG64 valid_params5; ULONG spi0; ULONG64 valid_params6; ULONG spi1; USHORT filter_id; USHORT filter_precedence; } __attribute__ ((packed)) QMI_QOS_GLOBAL_QOS_FLOW_TLV_FILTER, *PQMI_QOS_GLOBAL_QOS_FLOW_TLV_FILTER; typedef struct _QMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_TYPE { UCHAR TLVType; //0x14 USHORT TLVLength; ULONG flow_type; } __attribute__ ((packed)) QMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_TYPE, *PQMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_TYPE; typedef struct _QMI_QOS_GLOBAL_QOS_FLOW_TLV_BEARER_ID { UCHAR TLVType; //0x15 USHORT TLVLength; UCHAR bearer_id; } __attribute__ ((packed)) QMI_QOS_GLOBAL_QOS_FLOW_TLV_BEARER_ID, *PQMI_QOS_GLOBAL_QOS_FLOW_TLV_BEARER_ID; typedef struct _QMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_CTL_SEQ_NUM { UCHAR TLVType; //0x16 USHORT TLVLength; USHORT fc_seq_num; } __attribute__ ((packed)) QMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_CTL_SEQ_NUM, *PQMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_CTL_SEQ_NUM; typedef struct _QMI_QOS_GLOBAL_QOS_FLOW_TLV_5G_QCI { UCHAR TLVType; //0x17 0x18 USHORT TLVLength; ULONG tx_rx_5g_qci; } __attribute__ ((packed)) QMI_QOS_GLOBAL_QOS_FLOW_TLV_5G_QCI, *PQMI_QOS_GLOBAL_QOS_FLOW_TLV_5G_QCI; typedef struct _QMI_QOS_GLOBAL_QOS_FLOW_TLV_AVG_WINDOW { UCHAR TLVType; //0x19 0x1A USHORT TLVLength; USHORT tx_rx_avg_window; } __attribute__ ((packed)) QMI_QOS_GLOBAL_QOS_FLOW_TLV_AVG_WINDOW, *PQMI_QOS_GLOBAL_QOS_FLOW_TLV_AVG_WINDOW; typedef struct _QMI_QOS_GLOBAL_QOS_FLOW_TLV_TX_FILTER_MATCH_ALL { UCHAR TLVType; //0x1B USHORT TLVLength; UCHAR tx_filter_match_all_len; USHORT filter_id; } __attribute__ ((packed)) QMI_QOS_GLOBAL_QOS_FLOW_TLV_TX_FILTER_MATCH_ALL, *PQMI_QOS_GLOBAL_QOS_FLOW_TLV_TX_FILTER_MATCH_ALL; typedef struct _QMI_QOS_GLOBAL_QOS_FLOW_IND_MSG { USHORT Type; USHORT Length; QMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_STATE FlowStateTlv; //QMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_GRANTED TxFlowGrantedTlv; //QMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_GRANTED RxFlowGrantedTlv; //QMI_QOS_GLOBAL_QOS_FLOW_TLV_FILTER TxFilterTlv; //QMI_QOS_GLOBAL_QOS_FLOW_TLV_FILTER RxFilterTlv; //QMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_TYPE FlowTypeTlv; //QMI_QOS_GLOBAL_QOS_FLOW_TLV_BEARER_ID BearerIdTlv; //QMI_QOS_GLOBAL_QOS_FLOW_TLV_FLOW_CTL_SEQ_NUM FlowCtlSeqNumTlv; //QMI_QOS_GLOBAL_QOS_FLOW_TLV_5G_QCI Tx5GQciTlv; //QMI_QOS_GLOBAL_QOS_FLOW_TLV_5G_QCI Rx5GQciTlv; //QMI_QOS_GLOBAL_QOS_FLOW_TLV_AVG_WINDOW AvgWindowTlv; //QMI_QOS_GLOBAL_QOS_FLOW_TLV_TX_FILTER_MATCH_ALL TxFilterMatchAllTlv; } __attribute__ ((packed)) QMI_QOS_GLOBAL_QOS_FLOW_IND_MSG, *PQMI_QOS_GLOBAL_QOS_FLOW_IND_MSG; typedef struct _QMI_QOS_GET_QOS_INFO_TLV_QOS_ID { UCHAR TLVType; //0x01 USHORT TLVLength; ULONG qos_id; } __attribute__ ((packed)) QMI_QOS_GET_QOS_INFO_TLV_QOS_ID, *PQMI_QOS_GET_QOS_INFO_TLV_QOS_ID; typedef struct _QMI_QOS_GET_QOS_INFO_TLV_FLOW_STATUS { UCHAR TLVType; //0x10 USHORT TLVLength; UCHAR flow_status; } __attribute__ ((packed)) QMI_QOS_GET_QOS_INFO_TLV_FLOW_STATUS, *PQMI_QOS_GET_QOS_INFO_TLV_FLOW_STATUS; typedef struct _QMI_QOS_GET_QOS_INFO_TLV_GRANTED_FLOW { UCHAR TLVType; //0x11 0x12 USHORT TLVLength; ULONG64 flow_valid_params; ULONG ip_flow_trf_cls; ULONG64 data_rate_max; ULONG64 guaranteed_rate; ULONG peak_rate; ULONG token_rate; ULONG bucket_size; ULONG ip_flow_latency; ULONG ip_flow_jitter; USHORT ip_flow_pkt_error_rate_multiplier; USHORT ip_flow_pkt_error_rate_exponent; ULONG ip_flow_min_policed_packet_size; ULONG ip_flow_max_allowed_packet_size; ULONG ip_flow_3gpp_residual_bit_error_rate; ULONG ip_flow_3gpp_traffic_handling_priority; USHORT ip_flow_3gpp2_profile_id; UCHAR ip_flow_3gpp2_flow_priority; UCHAR ip_flow_3gpp_im_cn_flag; UCHAR ip_flow_3gpp_sig_ind; ULONG ip_flow_lte_qci; } __attribute__ ((packed)) QMI_QOS_GET_QOS_INFO_TLV_GRANTED_FLOW, *PQMI_QOS_GET_QOS_INFO_TLV_GRANTED_FLOW; typedef struct _QMI_QOS_GET_QOS_INFO_TLV_FILTER_SPECS { UCHAR TLVType; //0x13 0x14 USHORT TLVLength; UCHAR tx_rx_qos_filter_len; UCHAR ip_version; ULONG64 valid_params0; ULONG ipv4_addr0; ULONG subnet_mask0; ULONG ipv4_addr1; ULONG subnet_mask1; UCHAR val4; UCHAR mask4; ULONG64 valid_params01; UCHAR ipv6_address00; UCHAR ipv6_address01; UCHAR ipv6_address02; UCHAR ipv6_address03; UCHAR ipv6_address04; UCHAR ipv6_address05; UCHAR ipv6_address06; UCHAR ipv6_address07; UCHAR ipv6_address08; UCHAR ipv6_address09; UCHAR ipv6_address010; UCHAR ipv6_address011; UCHAR ipv6_address012; UCHAR ipv6_address013; UCHAR ipv6_address014; ULONG ipv6_address015; UCHAR prefix_len0; UCHAR ipv6_address10; UCHAR ipv6_address11; UCHAR ipv6_address12; UCHAR ipv6_address13; UCHAR ipv6_address14; UCHAR ipv6_address15; UCHAR ipv6_address16; UCHAR ipv6_address17; UCHAR ipv6_address18; UCHAR ipv6_address19; UCHAR ipv6_address110; UCHAR ipv6_address111; UCHAR ipv6_address112; UCHAR ipv6_address113; UCHAR ipv6_address114; ULONG ipv6_address115; UCHAR prefix_len1; UCHAR val6; UCHAR mask6; ULONG flow_label; ULONG xport_protocol; ULONG64 valid_params2; USHORT port0; USHORT range0; USHORT port1; USHORT range1; ULONG64 valid_params3; USHORT port2; USHORT range2; USHORT port3; USHORT range3; ULONG64 valid_params4; UCHAR type; UCHAR code; ULONG64 valid_params5; ULONG spi0; ULONG64 valid_params6; ULONG spi1; USHORT filter_id; USHORT filter_precedence; } __attribute__ ((packed)) QMI_QOS_GET_QOS_INFO_TLV_FILTER_SPECS, *PQMI_QOS_GET_QOS_INFO_TLV_FILTER_SPECS; typedef struct _QMI_QOS_GET_QOS_INFO_TLV_EXT_ERROR_INFO { UCHAR TLVType; //0x15 USHORT TLVLength; USHORT ext_error_info; } __attribute__ ((packed)) QMI_QOS_GET_QOS_INFO_TLV_EXT_ERROR_INFO, *PQMI_QOS_GET_QOS_INFO_TLV_EXT_ERROR_INFO; typedef struct _QMI_QOS_GET_QOS_INFO_TLV_5G_QCI { UCHAR TLVType; //0x16 0x17 USHORT TLVLength; ULONG tx_rx_5g_qci; } __attribute__ ((packed)) QMI_QOS_GET_QOS_INFO_TLV_5G_QCI, *PQMI_QOS_GET_QOS_INFO_TLV_5G_QCI; typedef struct _QMI_QOS_GET_QOS_INFO_TLV_AVG_WINDOW { UCHAR TLVType; //0x18 0x19 USHORT TLVLength; USHORT tx_rx_averaging_window; } __attribute__ ((packed)) QMI_QOS_GET_QOS_INFO_TLV_AVG_WINDOW, *PQMI_QOS_GET_QOS_INFO_TLV_AVG_WINDOW; typedef struct _QMI_QOS_GET_QOS_INFO_TLV_TX_FILTER_MATCH_ALL { UCHAR TLVType; //0x1A USHORT TLVLength; UCHAR tx_filter_match_all_len; USHORT filter_id; } __attribute__ ((packed)) QMI_QOS_GET_QOS_INFO_TLV_TX_FILTER_MATCH_ALL, *PQMI_QOS_GET_QOS_INFO_TLV_TX_FILTER_MATCH_ALL; typedef struct _QMI_QOS_GET_QOS_INFO_REQ_MSG { USHORT Type; USHORT Length; QMI_QOS_GET_QOS_INFO_TLV_QOS_ID QosIdTlv; } __attribute__ ((packed)) QMI_QOS_GET_QOS_INFO_REQ_MSG, *PQMI_QOS_GET_QOS_INFO_REQ_MSG; typedef struct _QMI_QOS_GET_QOS_INFO_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; //0x02 USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; //QMI_QOS_GET_QOS_INFO_TLV_FLOW_STATUS FlowStatusTlv; //QMI_QOS_GET_QOS_INFO_TLV_GRANTED_FLOW TxGrantedFlowTlv; //QMI_QOS_GET_QOS_INFO_TLV_GRANTED_FLOW RxGrantedFlowTlv; //QMI_QOS_GET_QOS_INFO_TLV_FILTER_SPECS TxFilterSpecsTlv; //QMI_QOS_GET_QOS_INFO_TLV_FILTER_SPECS RxFilterSpecsTlv; //QMI_QOS_GET_QOS_INFO_TLV_EXT_ERROR_INFO ExtErrorInfoTlv; //QMI_QOS_GET_QOS_INFO_TLV_5G_QCI Tx5GQciTlv; //QMI_QOS_GET_QOS_INFO_TLV_5G_QCI Rx5GQciTlv; //QMI_QOS_GET_QOS_INFO_TLV_AVG_WINDOW TxAvgWindowTlv; //QMI_QOS_GET_QOS_INFO_TLV_AVG_WINDOW RxAvgWindowTlv; //QMI_QOS_GET_QOS_INFO_TLV_TX_FILTER_MATCH_ALL TxFilterMatchAllTlv; } __attribute__ ((packed)) QMI_QOS_GET_QOS_INFO_RESP_MSG, *PQMI_QOS_GET_QOS_INFO_RESP_MSG; #define QOS_IND_FLOW_STATE_ACTIVATED 0x00 #define QOS_IND_FLOW_STATE_MODIFIED 0x01 #define QOS_IND_FLOW_STATE_DELETED 0x02 #define QOS_IND_FLOW_STATE_SUSPENDED 0x03 #define QOS_IND_FLOW_STATE_ENABLED 0x04 #define QOS_IND_FLOW_STATE_DISABLED 0x05 #define QOS_IND_FLOW_STATE_INVALID 0x06 #define QOS_EVENT_RPT_IND_FLOW_ACTIVATED 0x01 #define QOS_EVENT_RPT_IND_FLOW_MODIFIED 0x02 #define QOS_EVENT_RPT_IND_FLOW_DELETED 0x03 #define QOS_EVENT_RPT_IND_FLOW_SUSPENDED 0x04 #define QOS_EVENT_RPT_IND_FLOW_ENABLED 0x05 #define QOS_EVENT_RPT_IND_FLOW_DISABLED 0x06 #define QOS_EVENT_RPT_IND_TLV_PHY_LINK_STATE_TYPE 0x01 #define QOS_EVENT_RPT_IND_TLV_GLOBAL_FL_RPT_STATE 0x10 #define QOS_EVENT_RPT_IND_TLV_GLOBAL_FL_RPT_TYPE 0x10 #define QOS_EVENT_RPT_IND_TLV_TX_FLOW_TYPE 0x11 #define QOS_EVENT_RPT_IND_TLV_RX_FLOW_TYPE 0x12 #define QOS_EVENT_RPT_IND_TLV_TX_FILTER_TYPE 0x13 #define QOS_EVENT_RPT_IND_TLV_RX_FILTER_TYPE 0x14 #define QOS_EVENT_RPT_IND_TLV_FLOW_SPEC 0x10 #define QOS_EVENT_RPT_IND_TLV_FILTER_SPEC 0x10 typedef struct _QOS_EVENT_RPT_IND_TLV_PHY_LINK_STATE { UCHAR TLVType; // 0x01 USHORT TLVLength; // 1 UCHAR PhyLinkState; // 0-dormant, 1-active } QOS_EVENT_RPT_IND_TLV_PHY_LINK_STATE, *PQOS_EVENT_RPT_IND_TLV_PHY_LINK_STATE; typedef struct _QOS_EVENT_RPT_IND_TLV_GLOBAL_FL_RPT { UCHAR TLVType; // 0x10 USHORT TLVLength; // 6 ULONG QosId; UCHAR NewFlow; // 1: newly added flow; 0: existing flow UCHAR StateChange; // 1: activated; 2: modified; 3: deleted; // 4: suspended(delete); 5: enabled; 6: disabled } QOS_EVENT_RPT_IND_TLV_GLOBAL_FL_RPT, *PQOS_EVENT_RPT_IND_TLV_GLOBAL_FL_RPT; // QOS Flow typedef struct _QOS_EVENT_RPT_IND_TLV_FLOW { UCHAR TLVType; // 0x10-TX flow; 0x11-RX flow USHORT TLVLength; // var // embedded TLV's } QOS_EVENT_RPT_IND_TLV_TX_FLOW, *PQOS_EVENT_RPT_IND_TLV_TX_FLOW; #define QOS_FLOW_TLV_IP_FLOW_IDX_TYPE 0x10 #define QOS_FLOW_TLV_IP_FLOW_TRAFFIC_CLASS_TYPE 0x11 #define QOS_FLOW_TLV_IP_FLOW_DATA_RATE_MIN_MAX_TYPE 0x12 #define QOS_FLOW_TLV_IP_FLOW_DATA_RATE_TOKEN_BUCKET_TYPE 0x13 #define QOS_FLOW_TLV_IP_FLOW_LATENCY_TYPE 0x14 #define QOS_FLOW_TLV_IP_FLOW_JITTER_TYPE 0x15 #define QOS_FLOW_TLV_IP_FLOW_PKT_ERR_RATE_TYPE 0x16 #define QOS_FLOW_TLV_IP_FLOW_MIN_PKT_SIZE_TYPE 0x17 #define QOS_FLOW_TLV_IP_FLOW_MAX_PKT_SIZE_TYPE 0x18 #define QOS_FLOW_TLV_IP_FLOW_3GPP_BIT_ERR_RATE_TYPE 0x19 #define QOS_FLOW_TLV_IP_FLOW_3GPP_TRAF_PRIORITY_TYPE 0x1A #define QOS_FLOW_TLV_IP_FLOW_3GPP2_PROFILE_ID_TYPE 0x1B typedef struct _QOS_FLOW_TLV_IP_FLOW_IDX { UCHAR TLVType; // 0x10 USHORT TLVLength; // 1 UCHAR IpFlowIndex; } QOS_FLOW_TLV_IP_FLOW_IDX, *PQOS_FLOW_TLV_IP_FLOW_IDX; typedef struct _QOS_FLOW_TLV_IP_FLOW_TRAFFIC_CLASS { UCHAR TLVType; // 0x11 USHORT TLVLength; // 1 UCHAR TrafficClass; } QOS_FLOW_TLV_IP_FLOW_TRAFFIC_CLASS, *PQOS_FLOW_TLV_IP_FLOW_TRAFFIC_CLASS; typedef struct _QOS_FLOW_TLV_IP_FLOW_DATA_RATE_MIN_MAX { UCHAR TLVType; // 0x12 USHORT TLVLength; // 8 ULONG DataRateMax; ULONG GuaranteedRate; } QOS_FLOW_TLV_IP_FLOW_DATA_RATE_MIN_MAX, *PQOS_FLOW_TLV_IP_FLOW_DATA_RATE_MIN_MAX; typedef struct _QOS_FLOW_TLV_IP_FLOW_DATA_RATE_TOKEN_BUCKET { UCHAR TLVType; // 0x13 USHORT TLVLength; // 12 ULONG PeakRate; ULONG TokenRate; ULONG BucketSize; } QOS_FLOW_TLV_IP_FLOW_DATA_RATE_TOKEN_BUCKET, *PQOS_FLOW_TLV_IP_FLOW_DATA_RATE_TOKEN_BUCKET; typedef struct _QOS_FLOW_TLV_IP_FLOW_LATENCY { UCHAR TLVType; // 0x14 USHORT TLVLength; // 4 ULONG IpFlowLatency; } QOS_FLOW_TLV_IP_FLOW_LATENCY, *PQOS_FLOW_TLV_IP_FLOW_LATENCY; typedef struct _QOS_FLOW_TLV_IP_FLOW_JITTER { UCHAR TLVType; // 0x15 USHORT TLVLength; // 4 ULONG IpFlowJitter; } QOS_FLOW_TLV_IP_FLOW_JITTER, *PQOS_FLOW_TLV_IP_FLOW_JITTER; typedef struct _QOS_FLOW_TLV_IP_FLOW_PKT_ERR_RATE { UCHAR TLVType; // 0x16 USHORT TLVLength; // 4 USHORT ErrRateMultiplier; USHORT ErrRateExponent; } QOS_FLOW_TLV_IP_FLOW_PKT_ERR_RATE, *PQOS_FLOW_TLV_IP_FLOW_PKT_ERR_RATE; typedef struct _QOS_FLOW_TLV_IP_FLOW_MIN_PKT_SIZE { UCHAR TLVType; // 0x17 USHORT TLVLength; // 4 ULONG MinPolicedPktSize; } QOS_FLOW_TLV_IP_FLOW_MIN_PKT_SIZE, *PQOS_FLOW_TLV_IP_FLOW_MIN_PKT_SIZE; typedef struct _QOS_FLOW_TLV_IP_FLOW_MAX_PKT_SIZE { UCHAR TLVType; // 0x18 USHORT TLVLength; // 4 ULONG MaxAllowedPktSize; } QOS_FLOW_TLV_IP_FLOW_MAX_PKT_SIZE, *PQOS_FLOW_TLV_IP_FLOW_MAX_PKT_SIZE; typedef struct _QOS_FLOW_TLV_IP_FLOW_3GPP_BIT_ERR_RATE { UCHAR TLVType; // 0x19 USHORT TLVLength; // 1 UCHAR ResidualBitErrorRate; } QOS_FLOW_TLV_IP_FLOW_3GPP_BIT_ERR_RATE, *PQOS_FLOW_TLV_IP_FLOW_3GPP_BIT_ERR_RATE; typedef struct _QOS_FLOW_TLV_IP_FLOW_3GPP_TRAF_PRIORITY { UCHAR TLVType; // 0x1A USHORT TLVLength; // 1 UCHAR TrafficHandlingPriority; } QOS_FLOW_TLV_IP_FLOW_3GPP_TRAF_PRIORITY, *PQOS_FLOW_TLV_IP_FLOW_3GPP_TRAF_PRIORITY; typedef struct _QOS_FLOW_TLV_IP_FLOW_3GPP2_PROFILE_ID { UCHAR TLVType; // 0x1B USHORT TLVLength; // 2 USHORT ProfileId; } QOS_FLOW_TLV_IP_FLOW_3GPP2_PROFILE_ID, *PQOS_FLOW_TLV_IP_FLOW_3GPP2_PROFILE_ID; // QOS Filter #define QOS_FILTER_TLV_IP_FILTER_IDX_TYPE 0x10 #define QOS_FILTER_TLV_IP_VERSION_TYPE 0x11 #define QOS_FILTER_TLV_IPV4_SRC_ADDR_TYPE 0x12 #define QOS_FILTER_TLV_IPV4_DEST_ADDR_TYPE 0x13 #define QOS_FILTER_TLV_NEXT_HDR_PROTOCOL_TYPE 0x14 #define QOS_FILTER_TLV_IPV4_TYPE_OF_SERVICE_TYPE 0x15 #define QOS_FILTER_TLV_TCP_UDP_PORT_SRC_TCP_TYPE 0x1B #define QOS_FILTER_TLV_TCP_UDP_PORT_DEST_TCP_TYPE 0x1C #define QOS_FILTER_TLV_TCP_UDP_PORT_SRC_UDP_TYPE 0x1D #define QOS_FILTER_TLV_TCP_UDP_PORT_DEST_UDP_TYPE 0x1E #define QOS_FILTER_TLV_ICMP_FILTER_MSG_TYPE_TYPE 0x1F #define QOS_FILTER_TLV_ICMP_FILTER_MSG_CODE_TYPE 0x20 #define QOS_FILTER_TLV_TCP_UDP_PORT_SRC_TYPE 0x24 #define QOS_FILTER_TLV_TCP_UDP_PORT_DEST_TYPE 0x25 typedef struct _QOS_EVENT_RPT_IND_TLV_FILTER { UCHAR TLVType; // 0x12-TX filter; 0x13-RX filter USHORT TLVLength; // var // embedded TLV's } QOS_EVENT_RPT_IND_TLV_RX_FILTER, *PQOS_EVENT_RPT_IND_TLV_RX_FILTER; typedef struct _QOS_FILTER_TLV_IP_FILTER_IDX { UCHAR TLVType; // 0x10 USHORT TLVLength; // 1 UCHAR IpFilterIndex; } QOS_FILTER_TLV_IP_FILTER_IDX, *PQOS_FILTER_TLV_IP_FILTER_IDX; typedef struct _QOS_FILTER_TLV_IP_VERSION { UCHAR TLVType; // 0x11 USHORT TLVLength; // 1 UCHAR IpVersion; } QOS_FILTER_TLV_IP_VERSION, *PQOS_FILTER_TLV_IP_VERSION; typedef struct _QOS_FILTER_TLV_IPV4_SRC_ADDR { UCHAR TLVType; // 0x12 USHORT TLVLength; // 8 ULONG IpSrcAddr; ULONG IpSrcSubnetMask; } QOS_FILTER_TLV_IPV4_SRC_ADDR, *PQOS_FILTER_TLV_IPV4_SRC_ADDR; typedef struct _QOS_FILTER_TLV_IPV4_DEST_ADDR { UCHAR TLVType; // 0x13 USHORT TLVLength; // 8 ULONG IpDestAddr; ULONG IpDestSubnetMask; } QOS_FILTER_TLV_IPV4_DEST_ADDR, *PQOS_FILTER_TLV_IPV4_DEST_ADDR; typedef struct _QOS_FILTER_TLV_NEXT_HDR_PROTOCOL { UCHAR TLVType; // 0x14 USHORT TLVLength; // 1 UCHAR NextHdrProtocol; } QOS_FILTER_TLV_NEXT_HDR_PROTOCOL, *PQOS_FILTER_TLV_NEXT_HDR_PROTOCOL; typedef struct _QOS_FILTER_TLV_IPV4_TYPE_OF_SERVICE { UCHAR TLVType; // 0x15 USHORT TLVLength; // 2 UCHAR Ipv4TypeOfService; UCHAR Ipv4TypeOfServiceMask; } QOS_FILTER_TLV_IPV4_TYPE_OF_SERVICE, *PQOS_FILTER_TLV_IPV4_TYPE_OF_SERVICE; typedef struct _QOS_FILTER_TLV_TCP_UDP_PORT { UCHAR TLVType; // source port: 0x1B-TCP; 0x1D-UDP // dest port: 0x1C-TCP; 0x1E-UDP USHORT TLVLength; // 4 USHORT FilterPort; USHORT FilterPortRange; } QOS_FILTER_TLV_TCP_UDP_PORT, *PQOS_FILTER_TLV_TCP_UDP_PORT; typedef struct _QOS_FILTER_TLV_ICMP_FILTER_MSG_TYPE { UCHAR TLVType; // 0x1F USHORT TLVLength; // 1 UCHAR IcmpFilterMsgType; } QOS_FILTER_TLV_ICMP_FILTER_MSG_TYPE, *PQOS_FILTER_TLV_ICMP_FILTER_MSG_TYPE; typedef struct _QOS_FILTER_TLV_ICMP_FILTER_MSG_CODE { UCHAR TLVType; // 0x20 USHORT TLVLength; // 1 UCHAR IcmpFilterMsgCode; } QOS_FILTER_TLV_ICMP_FILTER_MSG_CODE, *PQOS_FILTER_TLV_ICMP_FILTER_MSG_CODE; #define QOS_FILTER_PRECEDENCE_INVALID 256 #define QOS_FILTER_TLV_PRECEDENCE_TYPE 0x22 #define QOS_FILTER_TLV_ID_TYPE 0x23 typedef struct _QOS_FILTER_TLV_PRECEDENCE { UCHAR TLVType; // 0x22 USHORT TLVLength; // 2 USHORT Precedence; // precedence of the filter } QOS_FILTER_TLV_PRECEDENCE, *PQOS_FILTER_TLV_PRECEDENCE; typedef struct _QOS_FILTER_TLV_ID { UCHAR TLVType; // 0x23 USHORT TLVLength; // 2 USHORT FilterId; // filter ID } QOS_FILTER_TLV_ID, *PQOS_FILTER_TLV_ID; #ifdef QCQOS_IPV6 #define QOS_FILTER_TLV_IPV6_SRC_ADDR_TYPE 0x16 #define QOS_FILTER_TLV_IPV6_DEST_ADDR_TYPE 0x17 #define QOS_FILTER_TLV_IPV6_NEXT_HDR_PROTOCOL_TYPE 0x14 // same as IPV4 #define QOS_FILTER_TLV_IPV6_TRAFFIC_CLASS_TYPE 0x19 #define QOS_FILTER_TLV_IPV6_FLOW_LABEL_TYPE 0x1A typedef struct _QOS_FILTER_TLV_IPV6_SRC_ADDR { UCHAR TLVType; // 0x16 USHORT TLVLength; // 17 UCHAR IpSrcAddr[16]; UCHAR IpSrcAddrPrefixLen; // [0..128] } QOS_FILTER_TLV_IPV6_SRC_ADDR, *PQOS_FILTER_TLV_IPV6_SRC_ADDR; typedef struct _QOS_FILTER_TLV_IPV6_DEST_ADDR { UCHAR TLVType; // 0x17 USHORT TLVLength; // 17 UCHAR IpDestAddr[16]; UCHAR IpDestAddrPrefixLen; // [0..128] } QOS_FILTER_TLV_IPV6_DEST_ADDR, *PQOS_FILTER_TLV_IPV6_DEST_ADDR; #define QOS_FILTER_IPV6_NEXT_HDR_PROTOCOL_TCP 0x06 #define QOS_FILTER_IPV6_NEXT_HDR_PROTOCOL_UDP 0x11 typedef struct _QOS_FILTER_TLV_IPV6_TRAFFIC_CLASS { UCHAR TLVType; // 0x19 USHORT TLVLength; // 2 UCHAR TrafficClass; UCHAR TrafficClassMask; // compare the first 6 bits only } QOS_FILTER_TLV_IPV6_TRAFFIC_CLASS, *PQOS_FILTER_TLV_IPV6_TRAFFIC_CLASS; typedef struct _QOS_FILTER_TLV_IPV6_FLOW_LABEL { UCHAR TLVType; // 0x1A USHORT TLVLength; // 4 ULONG FlowLabel; } QOS_FILTER_TLV_IPV6_FLOW_LABEL, *PQOS_FILTER_TLV_IPV6_FLOW_LABEL; #endif // QCQOS_IPV6 #endif // ======================= WMS ============================== #define QMIWMS_SET_EVENT_REPORT_REQ 0x0001 #define QMIWMS_SET_EVENT_REPORT_RESP 0x0001 #define QMIWMS_EVENT_REPORT_IND 0x0001 #define QMIWMS_RAW_SEND_REQ 0x0020 #define QMIWMS_RAW_SEND_RESP 0x0020 #define QMIWMS_RAW_WRITE_REQ 0x0021 #define QMIWMS_RAW_WRITE_RESP 0x0021 #define QMIWMS_RAW_READ_REQ 0x0022 #define QMIWMS_RAW_READ_RESP 0x0022 #define QMIWMS_MODIFY_TAG_REQ 0x0023 #define QMIWMS_MODIFY_TAG_RESP 0x0023 #define QMIWMS_DELETE_REQ 0x0024 #define QMIWMS_DELETE_RESP 0x0024 #define QMIWMS_GET_MESSAGE_PROTOCOL_REQ 0x0030 #define QMIWMS_GET_MESSAGE_PROTOCOL_RESP 0x0030 #define QMIWMS_LIST_MESSAGES_REQ 0x0031 #define QMIWMS_LIST_MESSAGES_RESP 0x0031 #define QMIWMS_GET_SMSC_ADDRESS_REQ 0x0034 #define QMIWMS_GET_SMSC_ADDRESS_RESP 0x0034 #define QMIWMS_SET_SMSC_ADDRESS_REQ 0x0035 #define QMIWMS_SET_SMSC_ADDRESS_RESP 0x0035 #define QMIWMS_GET_STORE_MAX_SIZE_REQ 0x0036 #define QMIWMS_GET_STORE_MAX_SIZE_RESP 0x0036 #define WMS_MESSAGE_PROTOCOL_CDMA 0x00 #define WMS_MESSAGE_PROTOCOL_WCDMA 0x01 #if 0 typedef struct _QMIWMS_GET_MESSAGE_PROTOCOL_REQ_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; } QMIWMS_GET_MESSAGE_PROTOCOL_REQ_MSG, *PQMIWMS_GET_MESSAGE_PROTOCOL_REQ_MSG; typedef struct _QMIWMS_GET_MESSAGE_PROTOCOL_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; UCHAR TLV2Type; USHORT TLV2Length; UCHAR MessageProtocol; } QMIWMS_GET_MESSAGE_PROTOCOL_RESP_MSG, *PQMIWMS_GET_MESSAGE_PROTOCOL_RESP_MSG; typedef struct _QMIWMS_GET_STORE_MAX_SIZE_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR StorageType; } QMIWMS_GET_STORE_MAX_SIZE_REQ_MSG, *PQMIWMS_GET_STORE_MAX_SIZE_REQ_MSG; typedef struct _QMIWMS_GET_STORE_MAX_SIZE_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; UCHAR TLV2Type; USHORT TLV2Length; ULONG MemStoreMaxSize; } QMIWMS_GET_STORE_MAX_SIZE_RESP_MSG, *PQMIWMS_GET_STORE_MAX_SIZE_RESP_MSG; typedef struct _REQUEST_TAG { UCHAR TLVType; USHORT TLVLength; UCHAR TagType; } REQUEST_TAG, *PREQUEST_TAG; typedef struct _QMIWMS_LIST_MESSAGES_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR StorageType; } QMIWMS_LIST_MESSAGES_REQ_MSG, *PQMIWMS_LIST_MESSAGES_REQ_MSG; typedef struct _QMIWMS_MESSAGE { ULONG MessageIndex; UCHAR TagType; } QMIWMS_MESSAGE, *PQMIWMS_MESSAGE; typedef struct _QMIWMS_LIST_MESSAGES_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; UCHAR TLV2Type; USHORT TLV2Length; ULONG NumMessages; } QMIWMS_LIST_MESSAGES_RESP_MSG, *PQMIWMS_LIST_MESSAGES_RESP_MSG; typedef struct _QMIWMS_RAW_READ_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR StorageType; ULONG MemoryIndex; } QMIWMS_RAW_READ_REQ_MSG, *PQMIWMS_RAW_READ_REQ_MSG; typedef struct _QMIWMS_RAW_READ_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; UCHAR TLV2Type; USHORT TLV2Length; UCHAR TagType; UCHAR Format; USHORT MessageLength; UCHAR Message; } QMIWMS_RAW_READ_RESP_MSG, *PQMIWMS_RAW_READ_RESP_MSG; typedef struct _QMIWMS_MODIFY_TAG_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR StorageType; ULONG MemoryIndex; UCHAR TagType; } QMIWMS_MODIFY_TAG_REQ_MSG, *PQMIWMS_MODIFY_TAG_REQ_MSG; typedef struct _QMIWMS_MODIFY_TAG_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } QMIWMS_MODIFY_TAG_RESP_MSG, *PQMIWMS_MODIFY_TAG_RESP_MSG; typedef struct _QMIWMS_RAW_SEND_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR SmsFormat; USHORT SmsLength; UCHAR SmsMessage; } QMIWMS_RAW_SEND_REQ_MSG, *PQMIWMS_RAW_SEND_REQ_MSG; typedef struct _RAW_SEND_CAUSE_CODE { UCHAR TLVType; USHORT TLVLength; USHORT CauseCode; } RAW_SEND_CAUSE_CODE, *PRAW_SEND_CAUSE_CODE; typedef struct _QMIWMS_RAW_SEND_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } QMIWMS_RAW_SEND_RESP_MSG, *PQMIWMS_RAW_SEND_RESP_MSG; typedef struct _WMS_DELETE_MESSAGE_INDEX { UCHAR TLVType; USHORT TLVLength; ULONG MemoryIndex; } WMS_DELETE_MESSAGE_INDEX, *PWMS_DELETE_MESSAGE_INDEX; typedef struct _WMS_DELETE_MESSAGE_TAG { UCHAR TLVType; USHORT TLVLength; UCHAR MessageTag; } WMS_DELETE_MESSAGE_TAG, *PWMS_DELETE_MESSAGE_TAG; typedef struct _QMIWMS_DELETE_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR StorageType; } QMIWMS_DELETE_REQ_MSG, *PQMIWMS_DELETE_REQ_MSG; typedef struct _QMIWMS_DELETE_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } QMIWMS_DELETE_RESP_MSG, *PQMIWMS_DELETE_RESP_MSG; typedef struct _QMIWMS_GET_SMSC_ADDRESS_REQ_MSG { USHORT Type; USHORT Length; } QMIWMS_GET_SMSC_ADDRESS_REQ_MSG, *PQMIWMS_GET_SMSC_ADDRESS_REQ_MSG; typedef struct _QMIWMS_SMSC_ADDRESS { UCHAR TLVType; USHORT TLVLength; UCHAR SMSCAddressType[3]; UCHAR SMSCAddressLength; UCHAR SMSCAddressDigits; } QMIWMS_SMSC_ADDRESS, *PQMIWMS_SMSC_ADDRESS; typedef struct _QMIWMS_GET_SMSC_ADDRESS_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; UCHAR SMSCAddress; } QMIWMS_GET_SMSC_ADDRESS_RESP_MSG, *PQMIWMS_GET_SMSC_ADDRESS_RESP_MSG; typedef struct _QMIWMS_SET_SMSC_ADDRESS_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR SMSCAddress; } QMIWMS_SET_SMSC_ADDRESS_REQ_MSG, *PQMIWMS_SET_SMSC_ADDRESS_REQ_MSG; typedef struct _QMIWMS_SET_SMSC_ADDRESS_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } QMIWMS_SET_SMSC_ADDRESS_RESP_MSG, *PQMIWMS_SET_SMSC_ADDRESS_RESP_MSG; typedef struct _QMIWMS_SET_EVENT_REPORT_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR ReportNewMessage; } QMIWMS_SET_EVENT_REPORT_REQ_MSG, *PQMIWMS_SET_EVENT_REPORT_REQ_MSG; typedef struct _QMIWMS_SET_EVENT_REPORT_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } QMIWMS_SET_EVENT_REPORT_RESP_MSG, *PQMIWMS_SET_EVENT_REPORT_RESP_MSG; typedef struct _QMIWMS_EVENT_REPORT_IND_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR StorageType; ULONG StorageIndex; } QMIWMS_EVENT_REPORT_IND_MSG, *PQMIWMS_EVENT_REPORT_IND_MSG; #endif // ======================= End of WMS ============================== // ======================= NAS ============================== #define QMINAS_SET_EVENT_REPORT_REQ 0x0002 #define QMINAS_SET_EVENT_REPORT_RESP 0x0002 #define QMINAS_EVENT_REPORT_IND 0x0002 #define QMINAS_GET_SIGNAL_STRENGTH_REQ 0x0020 #define QMINAS_GET_SIGNAL_STRENGTH_RESP 0x0020 #define QMINAS_PERFORM_NETWORK_SCAN_REQ 0x0021 #define QMINAS_PERFORM_NETWORK_SCAN_RESP 0x0021 #define QMINAS_INITIATE_NW_REGISTER_REQ 0x0022 #define QMINAS_INITIATE_NW_REGISTER_RESP 0x0022 #define QMINAS_INITIATE_ATTACH_REQ 0x0023 #define QMINAS_INITIATE_ATTACH_RESP 0x0023 #define QMINAS_GET_SERVING_SYSTEM_REQ 0x0024 #define QMINAS_GET_SERVING_SYSTEM_RESP 0x0024 #define QMINAS_SERVING_SYSTEM_IND 0x0024 #define QMINAS_GET_HOME_NETWORK_REQ 0x0025 #define QMINAS_GET_HOME_NETWORK_RESP 0x0025 #define QMINAS_GET_PREFERRED_NETWORK_REQ 0x0026 #define QMINAS_GET_PREFERRED_NETWORK_RESP 0x0026 #define QMINAS_SET_PREFERRED_NETWORK_REQ 0x0027 #define QMINAS_SET_PREFERRED_NETWORK_RESP 0x0027 #define QMINAS_GET_FORBIDDEN_NETWORK_REQ 0x0028 #define QMINAS_GET_FORBIDDEN_NETWORK_RESP 0x0028 #define QMINAS_SET_FORBIDDEN_NETWORK_REQ 0x0029 #define QMINAS_SET_FORBIDDEN_NETWORK_RESP 0x0029 #define QMINAS_SET_TECHNOLOGY_PREF_REQ 0x002A #define QMINAS_SET_TECHNOLOGY_PREF_RESP 0x002A #define QMINAS_GET_RF_BAND_INFO_REQ 0x0031 #define QMINAS_GET_RF_BAND_INFO_RESP 0x0031 #define QMINAS_GET_CELL_LOCATION_INFO_REQ 0x0043 #define QMINAS_GET_CELL_LOCATION_INFO_RESP 0x0043 #define QMINAS_GET_PLMN_NAME_REQ 0x0044 #define QMINAS_GET_PLMN_NAME_RESP 0x0044 #define QUECTEL_PACKET_TRANSFER_START_IND 0X100 #define QUECTEL_PACKET_TRANSFER_END_IND 0X101 #define QMINAS_GET_SYS_INFO_REQ 0x004D #define QMINAS_GET_SYS_INFO_RESP 0x004D #define QMINAS_SYS_INFO_IND 0x004E #define QMINAS_GET_SIG_INFO_REQ 0x004F #define QMINAS_GET_SIG_INFO_RESP 0x004F typedef struct _QMINAS_GET_HOME_NETWORK_REQ_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; } __attribute__ ((packed)) QMINAS_GET_HOME_NETWORK_REQ_MSG, *PQMINAS_GET_HOME_NETWORK_REQ_MSG; typedef struct _HOME_NETWORK_SYSTEMID { UCHAR TLVType; USHORT TLVLength; USHORT SystemID; USHORT NetworkID; } __attribute__ ((packed)) HOME_NETWORK_SYSTEMID, *PHOME_NETWORK_SYSTEMID; typedef struct _HOME_NETWORK { UCHAR TLVType; USHORT TLVLength; USHORT MobileCountryCode; USHORT MobileNetworkCode; UCHAR NetworkDesclen; UCHAR NetworkDesc; } __attribute__ ((packed)) HOME_NETWORK, *PHOME_NETWORK; #if 0 typedef struct _HOME_NETWORK_EXT { UCHAR TLVType; USHORT TLVLength; USHORT MobileCountryCode; USHORT MobileNetworkCode; UCHAR NetworkDescDisp; UCHAR NetworkDescEncoding; UCHAR NetworkDesclen; UCHAR NetworkDesc; } HOME_NETWORK_EXT, *PHOME_NETWORK_EXT; typedef struct _QMINAS_GET_HOME_NETWORK_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } QMINAS_GET_HOME_NETWORK_RESP_MSG, *PQMINAS_GET_HOME_NETWORK_RESP_MSG; typedef struct _QMINAS_GET_PREFERRED_NETWORK_REQ_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; } QMINAS_GET_PREFERRED_NETWORK_REQ_MSG, *PQMINAS_GET_PREFERRED_NETWORK_REQ_MSG; typedef struct _PREFERRED_NETWORK { USHORT MobileCountryCode; USHORT MobileNetworkCode; USHORT RadioAccess; } PREFERRED_NETWORK, *PPREFERRED_NETWORK; typedef struct _QMINAS_GET_PREFERRED_NETWORK_RESP_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR TLV2Type; // 0x01 - required parameter USHORT TLV2Length; // length of the mfr string USHORT NumPreferredNetwork; } QMINAS_GET_PREFERRED_NETWORK_RESP_MSG, *PQMINAS_GET_PREFERRED_NETWORK_RESP_MSG; typedef struct _QMINAS_GET_FORBIDDEN_NETWORK_REQ_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; } QMINAS_GET_FORBIDDEN_NETWORK_REQ_MSG, *PQMINAS_GET_FORBIDDEN_NETWORK_REQ_MSG; typedef struct _FORBIDDEN_NETWORK { USHORT MobileCountryCode; USHORT MobileNetworkCode; } FORBIDDEN_NETWORK, *PFORBIDDEN_NETWORK; typedef struct _QMINAS_GET_FORBIDDEN_NETWORK_RESP_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR TLV2Type; // 0x01 - required parameter USHORT TLV2Length; // length of the mfr string USHORT NumForbiddenNetwork; } QMINAS_GET_FORBIDDEN_NETWORK_RESP_MSG, *PQMINAS_GET_FORBIDDEN_NETWORK_RESP_MSG; typedef struct _QMINAS_GET_SERVING_SYSTEM_REQ_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; } QMINAS_GET_SERVING_SYSTEM_REQ_MSG, *PQMINAS_GET_SERVING_SYSTEM_REQ_MSG; typedef struct _QMINAS_ROAMING_INDICATOR_MSG { UCHAR TLVType; // 0x01 - required parameter USHORT TLVLength; // length of the mfr string UCHAR RoamingIndicator; } QMINAS_ROAMING_INDICATOR_MSG, *PQMINAS_ROAMING_INDICATOR_MSG; #endif typedef struct _QMINAS_DATA_CAP { UCHAR TLVType; // 0x01 - required parameter USHORT TLVLength; // length of the mfr string UCHAR DataCapListLen; UCHAR DataCap; } __attribute__ ((packed)) QMINAS_DATA_CAP, *PQMINAS_DATA_CAP; typedef struct _QMINAS_CURRENT_PLMN_MSG { UCHAR TLVType; // 0x01 - required parameter USHORT TLVLength; // length of the mfr string USHORT MobileCountryCode; USHORT MobileNetworkCode; UCHAR NetworkDesclen; UCHAR NetworkDesc; } __attribute__ ((packed)) QMINAS_CURRENT_PLMN_MSG, *PQMINAS_CURRENT_PLMN_MSG; typedef struct _QMINAS_GET_SERVING_SYSTEM_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } __attribute__ ((packed)) QMINAS_GET_SERVING_SYSTEM_RESP_MSG, *PQMINAS_GET_SERVING_SYSTEM_RESP_MSG; typedef struct _SERVING_SYSTEM { UCHAR TLVType; USHORT TLVLength; UCHAR RegistrationState; UCHAR CSAttachedState; UCHAR PSAttachedState; UCHAR RegistredNetwork; UCHAR InUseRadioIF; UCHAR RadioIF; } __attribute__ ((packed)) SERVING_SYSTEM, *PSERVING_SYSTEM; typedef struct _QMINAS_GET_SYS_INFO_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } __attribute__ ((packed)) QMINAS_GET_SYS_INFO_RESP_MSG, *PQMINAS_GET_SYS_INFO_RESP_MSG; typedef struct _QMINAS_SYS_INFO_IND_MSG { USHORT Type; USHORT Length; } __attribute__ ((packed)) QMINAS_SYS_INFO_IND_MSG, *PQMINAS_SYS_INFO_IND_MSG; typedef struct _SERVICE_STATUS_INFO { UCHAR TLVType; USHORT TLVLength; UCHAR SrvStatus; UCHAR true_srv_status; UCHAR IsPrefDataPath; } __attribute__ ((packed)) SERVICE_STATUS_INFO, *PSERVICE_STATUS_INFO; typedef struct _CDMA_SYSTEM_INFO { UCHAR TLVType; USHORT TLVLength; UCHAR SrvDomainValid; UCHAR SrvDomain; UCHAR SrvCapabilityValid; UCHAR SrvCapability; UCHAR RoamStatusValid; UCHAR RoamStatus; UCHAR IsSysForbiddenValid; UCHAR IsSysForbidden; UCHAR IsSysPrlMatchValid; UCHAR IsSysPrlMatch; UCHAR PRevInUseValid; UCHAR PRevInUse; UCHAR BSPRevValid; UCHAR BSPRev; UCHAR CCSSupportedValid; UCHAR CCSSupported; UCHAR CDMASysIdValid; USHORT SID; USHORT NID; UCHAR BSInfoValid; USHORT BaseID; ULONG BaseLAT; ULONG BaseLONG; UCHAR PacketZoneValid; USHORT PacketZone; UCHAR NetworkIdValid; UCHAR MCC[3]; UCHAR MNC[3]; } __attribute__ ((packed)) CDMA_SYSTEM_INFO, *PCDMA_SYSTEM_INFO; typedef struct _HDR_SYSTEM_INFO { UCHAR TLVType; USHORT TLVLength; UCHAR SrvDomainValid; UCHAR SrvDomain; UCHAR SrvCapabilityValid; UCHAR SrvCapability; UCHAR RoamStatusValid; UCHAR RoamStatus; UCHAR IsSysForbiddenValid; UCHAR IsSysForbidden; UCHAR IsSysPrlMatchValid; UCHAR IsSysPrlMatch; UCHAR HdrPersonalityValid; UCHAR HdrPersonality; UCHAR HdrActiveProtValid; UCHAR HdrActiveProt; UCHAR is856SysIdValid; UCHAR is856SysId[16]; } __attribute__ ((packed)) HDR_SYSTEM_INFO, *PHDR_SYSTEM_INFO; typedef struct _GSM_SYSTEM_INFO { UCHAR TLVType; USHORT TLVLength; UCHAR SrvDomainValid; UCHAR SrvDomain; UCHAR SrvCapabilityValid; UCHAR SrvCapability; UCHAR RoamStatusValid; UCHAR RoamStatus; UCHAR IsSysForbiddenValid; UCHAR IsSysForbidden; UCHAR LacValid; USHORT Lac; UCHAR CellIdValid; ULONG CellId; UCHAR RegRejectInfoValid; UCHAR RejectSrvDomain; UCHAR RejCause; UCHAR NetworkIdValid; UCHAR MCC[3]; UCHAR MNC[3]; UCHAR EgprsSuppValid; UCHAR EgprsSupp; UCHAR DtmSuppValid; UCHAR DtmSupp; } __attribute__ ((packed)) GSM_SYSTEM_INFO, *PGSM_SYSTEM_INFO; typedef struct _WCDMA_SYSTEM_INFO { UCHAR TLVType; USHORT TLVLength; UCHAR SrvDomainValid; UCHAR SrvDomain; UCHAR SrvCapabilityValid; UCHAR SrvCapability; UCHAR RoamStatusValid; UCHAR RoamStatus; UCHAR IsSysForbiddenValid; UCHAR IsSysForbidden; UCHAR LacValid; USHORT Lac; UCHAR CellIdValid; ULONG CellId; UCHAR RegRejectInfoValid; UCHAR RejectSrvDomain; UCHAR RejCause; UCHAR NetworkIdValid; UCHAR MCC[3]; UCHAR MNC[3]; UCHAR HsCallStatusValid; UCHAR HsCallStatus; UCHAR HsIndValid; UCHAR HsInd; UCHAR PscValid; UCHAR Psc; } __attribute__ ((packed)) WCDMA_SYSTEM_INFO, *PWCDMA_SYSTEM_INFO; typedef struct _LTE_SYSTEM_INFO { UCHAR TLVType; USHORT TLVLength; UCHAR SrvDomainValid; UCHAR SrvDomain; UCHAR SrvCapabilityValid; UCHAR SrvCapability; UCHAR RoamStatusValid; UCHAR RoamStatus; UCHAR IsSysForbiddenValid; UCHAR IsSysForbidden; UCHAR LacValid; USHORT Lac; UCHAR CellIdValid; ULONG CellId; UCHAR RegRejectInfoValid; UCHAR RejectSrvDomain; UCHAR RejCause; UCHAR NetworkIdValid; UCHAR MCC[3]; UCHAR MNC[3]; UCHAR TacValid; USHORT Tac; } __attribute__ ((packed)) LTE_SYSTEM_INFO, *PLTE_SYSTEM_INFO; typedef struct _TDSCDMA_SYSTEM_INFO { UCHAR TLVType; USHORT TLVLength; UCHAR SrvDomainValid; UCHAR SrvDomain; UCHAR SrvCapabilityValid; UCHAR SrvCapability; UCHAR RoamStatusValid; UCHAR RoamStatus; UCHAR IsSysForbiddenValid; UCHAR IsSysForbidden; UCHAR LacValid; USHORT Lac; UCHAR CellIdValid; ULONG CellId; UCHAR RegRejectInfoValid; UCHAR RejectSrvDomain; UCHAR RejCause; UCHAR NetworkIdValid; UCHAR MCC[3]; UCHAR MNC[3]; UCHAR HsCallStatusValid; UCHAR HsCallStatus; UCHAR HsIndValid; UCHAR HsInd; UCHAR CellParameterIdValid; USHORT CellParameterId; UCHAR CellBroadcastCapValid; ULONG CellBroadcastCap; UCHAR CsBarStatusValid; ULONG CsBarStatus; UCHAR PsBarStatusValid; ULONG PsBarStatus; UCHAR CipherDomainValid; UCHAR CipherDomain; } __attribute__ ((packed)) TDSCDMA_SYSTEM_INFO, *PTDSCDMA_SYSTEM_INFO; typedef enum { NAS_SYS_SRV_STATUS_NO_SRV_V01 = 0, NAS_SYS_SRV_STATUS_LIMITED_V01 = 1, NAS_SYS_SRV_STATUS_SRV_V01 = 2, NAS_SYS_SRV_STATUS_LIMITED_REGIONAL_V01 = 3, NAS_SYS_SRV_STATUS_PWR_SAVE_V01 = 4, }nas_service_status_enum_type_v01; typedef enum { SYS_SRV_DOMAIN_NO_SRV_V01 = 0, SYS_SRV_DOMAIN_CS_ONLY_V01 = 1, SYS_SRV_DOMAIN_PS_ONLY_V01 = 2, SYS_SRV_DOMAIN_CS_PS_V01 = 3, SYS_SRV_DOMAIN_CAMPED_V01 = 4, }nas_service_domain_enum_type_v01; typedef enum { QMI_NAS_RADIO_INTERFACE_UNKNOWN = -1, QMI_NAS_RADIO_INTERFACE_NONE = 0x00, QMI_NAS_RADIO_INTERFACE_CDMA_1X = 0x01, QMI_NAS_RADIO_INTERFACE_CDMA_1XEVDO = 0x02, QMI_NAS_RADIO_INTERFACE_AMPS = 0x03, QMI_NAS_RADIO_INTERFACE_GSM = 0x04, QMI_NAS_RADIO_INTERFACE_UMTS = 0x05, QMI_NAS_RADIO_INTERFACE_LTE = 0x08, QMI_NAS_RADIO_INTERFACE_TD_SCDMA = 0x09, QMI_NAS_RADIO_INTERFACE_5GNR = 0x0C, } QMI_NAS_RADIO_INTERFACE_E; typedef enum { QMI_NAS_ACTIVE_BAND_BC_0 = 0, QMI_NAS_ACTIVE_BAND_BC_1 = 1, QMI_NAS_ACTIVE_BAND_BC_2 = 2, QMI_NAS_ACTIVE_BAND_BC_3 = 3, QMI_NAS_ACTIVE_BAND_BC_4 = 4, QMI_NAS_ACTIVE_BAND_BC_5 = 5, QMI_NAS_ACTIVE_BAND_BC_6 = 6, QMI_NAS_ACTIVE_BAND_BC_7 = 7, QMI_NAS_ACTIVE_BAND_BC_8 = 8, QMI_NAS_ACTIVE_BAND_BC_9 = 9, QMI_NAS_ACTIVE_BAND_BC_10 = 10, QMI_NAS_ACTIVE_BAND_BC_11 = 11, QMI_NAS_ACTIVE_BAND_BC_12 = 12, QMI_NAS_ACTIVE_BAND_BC_13 = 13, QMI_NAS_ACTIVE_BAND_BC_14 = 14, QMI_NAS_ACTIVE_BAND_BC_15 = 15, QMI_NAS_ACTIVE_BAND_BC_16 = 16, QMI_NAS_ACTIVE_BAND_BC_17 = 17, QMI_NAS_ACTIVE_BAND_BC_18 = 18, QMI_NAS_ACTIVE_BAND_BC_19 = 19, QMI_NAS_ACTIVE_BAND_GSM_450 = 40, QMI_NAS_ACTIVE_BAND_GSM_480 = 41, QMI_NAS_ACTIVE_BAND_GSM_750 = 42, QMI_NAS_ACTIVE_BAND_GSM_850 = 43, QMI_NAS_ACTIVE_BAND_GSM_900_EXTENDED = 44, QMI_NAS_ACTIVE_BAND_GSM_900_PRIMARY = 45, QMI_NAS_ACTIVE_BAND_GSM_900_RAILWAYS = 46, QMI_NAS_ACTIVE_BAND_GSM_DCS_1800 = 47, QMI_NAS_ACTIVE_BAND_GSM_PCS_1900 = 48, QMI_NAS_ACTIVE_BAND_WCDMA_2100 = 80, QMI_NAS_ACTIVE_BAND_WCDMA_PCS_1900 = 81, QMI_NAS_ACTIVE_BAND_WCDMA_DCS_1800 = 82, QMI_NAS_ACTIVE_BAND_WCDMA_1700_US = 83, QMI_NAS_ACTIVE_BAND_WCDMA_850 = 84, QMI_NAS_ACTIVE_BAND_WCDMA_800 = 85, QMI_NAS_ACTIVE_BAND_WCDMA_2600 = 86, QMI_NAS_ACTIVE_BAND_WCDMA_900 = 87, QMI_NAS_ACTIVE_BAND_WCDMA_1700_JAPAN = 88, QMI_NAS_ACTIVE_BAND_WCDMA_1500_JAPAN = 90, QMI_NAS_ACTIVE_BAND_WCDMA_850_JAPAN = 91, QMI_NAS_ACTIVE_BAND_EUTRAN_1 = 120, QMI_NAS_ACTIVE_BAND_EUTRAN_2 = 121, QMI_NAS_ACTIVE_BAND_EUTRAN_3 = 122, QMI_NAS_ACTIVE_BAND_EUTRAN_4 = 123, QMI_NAS_ACTIVE_BAND_EUTRAN_5 = 124, QMI_NAS_ACTIVE_BAND_EUTRAN_6 = 125, QMI_NAS_ACTIVE_BAND_EUTRAN_7 = 126, QMI_NAS_ACTIVE_BAND_EUTRAN_8 = 127, QMI_NAS_ACTIVE_BAND_EUTRAN_9 = 128, QMI_NAS_ACTIVE_BAND_EUTRAN_10 = 129, QMI_NAS_ACTIVE_BAND_EUTRAN_11 = 130, QMI_NAS_ACTIVE_BAND_EUTRAN_12 = 131, QMI_NAS_ACTIVE_BAND_EUTRAN_13 = 132, QMI_NAS_ACTIVE_BAND_EUTRAN_14 = 133, QMI_NAS_ACTIVE_BAND_EUTRAN_17 = 134, QMI_NAS_ACTIVE_BAND_EUTRAN_18 = 143, QMI_NAS_ACTIVE_BAND_EUTRAN_19 = 144, QMI_NAS_ACTIVE_BAND_EUTRAN_20 = 145, QMI_NAS_ACTIVE_BAND_EUTRAN_21 = 146, QMI_NAS_ACTIVE_BAND_EUTRAN_23 = 152, QMI_NAS_ACTIVE_BAND_EUTRAN_24 = 147, QMI_NAS_ACTIVE_BAND_EUTRAN_25 = 148, QMI_NAS_ACTIVE_BAND_EUTRAN_26 = 153, QMI_NAS_ACTIVE_BAND_EUTRAN_27 = 164, QMI_NAS_ACTIVE_BAND_EUTRAN_28 = 158, QMI_NAS_ACTIVE_BAND_EUTRAN_29 = 159, QMI_NAS_ACTIVE_BAND_EUTRAN_30 = 160, QMI_NAS_ACTIVE_BAND_EUTRAN_31 = 165, QMI_NAS_ACTIVE_BAND_EUTRAN_32 = 154, QMI_NAS_ACTIVE_BAND_EUTRAN_33 = 135, QMI_NAS_ACTIVE_BAND_EUTRAN_34 = 136, QMI_NAS_ACTIVE_BAND_EUTRAN_35 = 137, QMI_NAS_ACTIVE_BAND_EUTRAN_36 = 138, QMI_NAS_ACTIVE_BAND_EUTRAN_37 = 139, QMI_NAS_ACTIVE_BAND_EUTRAN_38 = 140, QMI_NAS_ACTIVE_BAND_EUTRAN_39 = 141, QMI_NAS_ACTIVE_BAND_EUTRAN_40 = 142, QMI_NAS_ACTIVE_BAND_EUTRAN_41 = 149, QMI_NAS_ACTIVE_BAND_EUTRAN_42 = 150, QMI_NAS_ACTIVE_BAND_EUTRAN_43 = 151, QMI_NAS_ACTIVE_BAND_EUTRAN_46 = 163, QMI_NAS_ACTIVE_BAND_EUTRAN_47 = 166, QMI_NAS_ACTIVE_BAND_EUTRAN_48 = 167, QMI_NAS_ACTIVE_BAND_EUTRAN_66 = 161, QMI_NAS_ACTIVE_BAND_EUTRAN_71 = 168, QMI_NAS_ACTIVE_BAND_EUTRAN_125 = 155, QMI_NAS_ACTIVE_BAND_EUTRAN_126 = 156, QMI_NAS_ACTIVE_BAND_EUTRAN_127 = 157, QMI_NAS_ACTIVE_BAND_EUTRAN_250 = 162, QMI_NAS_ACTIVE_BAND_TDSCDMA_A = 200, QMI_NAS_ACTIVE_BAND_TDSCDMA_B = 201, QMI_NAS_ACTIVE_BAND_TDSCDMA_C = 202, QMI_NAS_ACTIVE_BAND_TDSCDMA_D = 203, QMI_NAS_ACTIVE_BAND_TDSCDMA_E = 204, QMI_NAS_ACTIVE_BAND_TDSCDMA_F = 205, QMI_NAS_ACTIVE_BAND_NR5G_BAND_1 = 250, QMI_NAS_ACTIVE_BAND_NR5G_BAND_2 = 251, QMI_NAS_ACTIVE_BAND_NR5G_BAND_3 = 252, QMI_NAS_ACTIVE_BAND_NR5G_BAND_5 = 253, QMI_NAS_ACTIVE_BAND_NR5G_BAND_7 = 254, QMI_NAS_ACTIVE_BAND_NR5G_BAND_8 = 255, QMI_NAS_ACTIVE_BAND_NR5G_BAND_20 = 256, QMI_NAS_ACTIVE_BAND_NR5G_BAND_28 = 257, QMI_NAS_ACTIVE_BAND_NR5G_BAND_38 = 258, QMI_NAS_ACTIVE_BAND_NR5G_BAND_41 = 259, QMI_NAS_ACTIVE_BAND_NR5G_BAND_50 = 260, QMI_NAS_ACTIVE_BAND_NR5G_BAND_51 = 261, QMI_NAS_ACTIVE_BAND_NR5G_BAND_66 = 262, QMI_NAS_ACTIVE_BAND_NR5G_BAND_70 = 263, QMI_NAS_ACTIVE_BAND_NR5G_BAND_71 = 264, QMI_NAS_ACTIVE_BAND_NR5G_BAND_74 = 265, QMI_NAS_ACTIVE_BAND_NR5G_BAND_75 = 266, QMI_NAS_ACTIVE_BAND_NR5G_BAND_76 = 267, QMI_NAS_ACTIVE_BAND_NR5G_BAND_77 = 268, QMI_NAS_ACTIVE_BAND_NR5G_BAND_78 = 269, QMI_NAS_ACTIVE_BAND_NR5G_BAND_79 = 270, QMI_NAS_ACTIVE_BAND_NR5G_BAND_80 = 271, QMI_NAS_ACTIVE_BAND_NR5G_BAND_81 = 272, QMI_NAS_ACTIVE_BAND_NR5G_BAND_82 = 273, QMI_NAS_ACTIVE_BAND_NR5G_BAND_83 = 274, QMI_NAS_ACTIVE_BAND_NR5G_BAND_84 = 275, QMI_NAS_ACTIVE_BAND_NR5G_BAND_85 = 276, QMI_NAS_ACTIVE_BAND_NR5G_BAND_257= 277, QMI_NAS_ACTIVE_BAND_NR5G_BAND_258= 278, QMI_NAS_ACTIVE_BAND_NR5G_BAND_259= 279, QMI_NAS_ACTIVE_BAND_NR5G_BAND_260= 280, QMI_NAS_ACTIVE_BAND_NR5G_BAND_261= 281, QMI_NAS_ACTIVE_BAND_NR5G_BAND_12 = 282, QMI_NAS_ACTIVE_BAND_NR5G_BAND_25 = 283, QMI_NAS_ACTIVE_BAND_NR5G_BAND_34 = 284, QMI_NAS_ACTIVE_BAND_NR5G_BAND_39 = 285, QMI_NAS_ACTIVE_BAND_NR5G_BAND_40 = 286, QMI_NAS_ACTIVE_BAND_NR5G_BAND_65 = 287, QMI_NAS_ACTIVE_BAND_NR5G_BAND_86 = 288, QMI_NAS_ACTIVE_BAND_NR5G_BAND_48 = 289, QMI_NAS_ACTIVE_BAND_NR5G_BAND_14 = 290 } QMI_NAS_ACTIVE_BAND_E; typedef struct { UCHAR TLVType; USHORT TLVLength; uint8_t srv_domain_valid; uint8_t srv_domain; uint8_t srv_capability_valid; uint8_t srv_capability; uint8_t roam_status_valid; uint8_t roam_status; uint8_t is_sys_forbidden_valid; uint8_t is_sys_forbidden; uint8_t lac_valid; uint16_t lac; uint8_t cell_id_valid; uint32_t cell_id; uint8_t reg_reject_info_valid; uint8_t reject_srv_domain; uint8_t rej_cause; uint8_t network_id_valid; UCHAR MCC[3]; UCHAR MNC[3]; uint8_t tac_valid; uint16_t tac; } __attribute__ ((packed)) NR5G_SYSTEM_INFO, *PNR5G_SYSTEM_INFO; #if 0 typedef struct _QMINAS_SERVING_SYSTEM_IND_MSG { USHORT Type; USHORT Length; } QMINAS_SERVING_SYSTEM_IND_MSG, *PQMINAS_SERVING_SYSTEM_IND_MSG; typedef struct _QMINAS_SET_PREFERRED_NETWORK_REQ_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT NumPreferredNetwork; USHORT MobileCountryCode; USHORT MobileNetworkCode; USHORT RadioAccess; } QMINAS_SET_PREFERRED_NETWORK_REQ_MSG, *PQMINAS_SET_PREFERRED_NETWORK_REQ_MSG; typedef struct _QMINAS_SET_PREFERRED_NETWORK_RESP_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT } QMINAS_SET_PREFERRED_NETWORK_RESP_MSG, *PQMINAS_SET_PREFERRED_NETWORK_RESP_MSG; typedef struct _QMINAS_SET_FORBIDDEN_NETWORK_REQ_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT NumForbiddenNetwork; USHORT MobileCountryCode; USHORT MobileNetworkCode; } QMINAS_SET_FORBIDDEN_NETWORK_REQ_MSG, *PQMINAS_SET_FORBIDDEN_NETWORK_REQ_MSG; typedef struct _QMINAS_SET_FORBIDDEN_NETWORK_RESP_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT } QMINAS_SET_FORBIDDEN_NETWORK_RESP_MSG, *PQMINAS_SET_FORBIDDEN_NETWORK_RESP_MSG; typedef struct _QMINAS_PERFORM_NETWORK_SCAN_REQ_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; } QMINAS_PERFORM_NETWORK_SCAN_REQ_MSG, *PQMINAS_PERFORM_NETWORK_SCAN_REQ_MSG; typedef struct _VISIBLE_NETWORK { USHORT MobileCountryCode; USHORT MobileNetworkCode; UCHAR NetworkStatus; UCHAR NetworkDesclen; } VISIBLE_NETWORK, *PVISIBLE_NETWORK; typedef struct _QMINAS_PERFORM_NETWORK_SCAN_RESP_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT } QMINAS_PERFORM_NETWORK_SCAN_RESP_MSG, *PQMINAS_PERFORM_NETWORK_SCAN_RESP_MSG; typedef struct _QMINAS_PERFORM_NETWORK_SCAN_NETWORK_INFO { UCHAR TLVType; // 0x010 - required parameter USHORT TLVLength; // length USHORT NumNetworkInstances; } QMINAS_PERFORM_NETWORK_SCAN_NETWORK_INFO, *PQMINAS_PERFORM_NETWORK_SCAN_NETWORK_INFO; typedef struct _QMINAS_PERFORM_NETWORK_SCAN_RAT_INFO { UCHAR TLVType; // 0x011 - required parameter USHORT TLVLength; // length USHORT NumInst; } QMINAS_PERFORM_NETWORK_SCAN_RAT_INFO, *PQMINAS_PERFORM_NETWORK_SCAN_RAT_INFO; typedef struct _QMINAS_PERFORM_NETWORK_SCAN_RAT { USHORT MCC; USHORT MNC; UCHAR RAT; } QMINAS_PERFORM_NETWORK_SCAN_RAT, *PQMINAS_PERFORM_NETWORK_SCAN_RAT; typedef struct _QMINAS_MANUAL_NW_REGISTER { UCHAR TLV2Type; // 0x02 - result code USHORT TLV2Length; // 4 USHORT MobileCountryCode; USHORT MobileNetworkCode; UCHAR RadioAccess; } QMINAS_MANUAL_NW_REGISTER, *PQMINAS_MANUAL_NW_REGISTER; typedef struct _QMINAS_INITIATE_NW_REGISTER_REQ_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 UCHAR RegisterAction; } QMINAS_INITIATE_NW_REGISTER_REQ_MSG, *PQMINAS_INITIATE_NW_REGISTER_REQ_MSG; typedef struct _QMINAS_INITIATE_NW_REGISTER_RESP_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT } QMINAS_INITIATE_NW_REGISTER_RESP_MSG, *PQMINAS_INITIATE_NW_REGISTER_RESP_MSG; typedef struct _QMINAS_SET_TECHNOLOGY_PREF_REQ_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT TechPref; UCHAR Duration; } QMINAS_SET_TECHNOLOGY_PREF_REQ_MSG, *PQMINAS_SET_TECHNOLOGY_PREF_REQ_MSG; typedef struct _QMINAS_SET_TECHNOLOGY_PREF_RESP_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT } QMINAS_SET_TECHNOLOGY_PREF_RESP_MSG, *PQMINAS_SET_TECHNOLOGY_PREF_RESP_MSG; typedef struct _QMINAS_GET_SIGNAL_STRENGTH_REQ_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; } QMINAS_GET_SIGNAL_STRENGTH_REQ_MSG, *PQMINAS_GET_SIGNAL_STRENGTH_REQ_MSG; typedef struct _QMINAS_SIGNAL_STRENGTH { CHAR SigStrength; UCHAR RadioIf; } QMINAS_SIGNAL_STRENGTH, *PQMINAS_SIGNAL_STRENGTH; typedef struct _QMINAS_SIGNAL_STRENGTH_LIST { UCHAR TLV3Type; USHORT TLV3Length; USHORT NumInstance; } QMINAS_SIGNAL_STRENGTH_LIST, *PQMINAS_SIGNAL_STRENGTH_LIST; typedef struct _QMINAS_GET_SIGNAL_STRENGTH_RESP_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR TLV2Type; USHORT TLV2Length; CHAR SignalStrength; UCHAR RadioIf; } QMINAS_GET_SIGNAL_STRENGTH_RESP_MSG, *PQMINAS_GET_SIGNAL_STRENGTH_RESP_MSG; typedef struct _QMINAS_SET_EVENT_REPORT_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR ReportSigStrength; UCHAR NumTresholds; CHAR TresholdList[2]; } QMINAS_SET_EVENT_REPORT_REQ_MSG, *PQMINAS_SET_EVENT_REPORT_REQ_MSG; typedef struct _QMINAS_SET_EVENT_REPORT_RESP_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT } QMINAS_SET_EVENT_REPORT_RESP_MSG, *PQMINAS_SET_EVENT_REPORT_RESP_MSG; typedef struct _QMINAS_SIGNAL_STRENGTH_TLV { UCHAR TLVType; USHORT TLVLength; CHAR SigStrength; UCHAR RadioIf; } QMINAS_SIGNAL_STRENGTH_TLV, *PQMINAS_SIGNAL_STRENGTH_TLV; typedef struct _QMINAS_REJECT_CAUSE_TLV { UCHAR TLVType; USHORT TLVLength; UCHAR ServiceDomain; USHORT RejectCause; } QMINAS_REJECT_CAUSE_TLV, *PQMINAS_REJECT_CAUSE_TLV; typedef struct _QMINAS_EVENT_REPORT_IND_MSG { USHORT Type; USHORT Length; } QMINAS_EVENT_REPORT_IND_MSG, *PQMINAS_EVENT_REPORT_IND_MSG; typedef struct _QMINAS_GET_RF_BAND_INFO_REQ_MSG { USHORT Type; USHORT Length; } QMINAS_GET_RF_BAND_INFO_REQ_MSG, *PQMINAS_GET_RF_BAND_INFO_REQ_MSG; typedef struct _QMINASRF_BAND_INFO { UCHAR RadioIf; USHORT ActiveBand; USHORT ActiveChannel; } QMINASRF_BAND_INFO, *PQMINASRF_BAND_INFO; typedef struct _QMINAS_GET_RF_BAND_INFO_RESP_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT UCHAR TLV2Type; USHORT TLV2Length; UCHAR NumInstances; } QMINAS_GET_RF_BAND_INFO_RESP_MSG, *PQMINAS_GET_RF_BAND_INFO_RESP_MSG; typedef struct _QMINAS_GET_PLMN_NAME_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT MCC; USHORT MNC; } QMINAS_GET_PLMN_NAME_REQ_MSG, *PQMINAS_GET_PLMN_NAME_REQ_MSG; typedef struct _QMINAS_GET_PLMN_NAME_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT } QMINAS_GET_PLMN_NAME_RESP_MSG, *PQMINAS_GET_PLMN_NAME_RESP_MSG; typedef struct _QMINAS_GET_PLMN_NAME_SPN { UCHAR TLVType; USHORT TLVLength; UCHAR SPN_Enc; UCHAR SPN_Len; } QMINAS_GET_PLMN_NAME_SPN, *PQMINAS_GET_PLMN_NAME_SPN; typedef struct _QMINAS_GET_PLMN_NAME_PLMN { UCHAR PLMN_Enc; UCHAR PLMN_Ci; UCHAR PLMN_SpareBits; UCHAR PLMN_Len; } QMINAS_GET_PLMN_NAME_PLMN, *PQMINAS_GET_PLMN_NAME_PLMN; typedef struct _QMINAS_INITIATE_ATTACH_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR PsAttachAction; } QMINAS_INITIATE_ATTACH_REQ_MSG, *PQMINAS_INITIATE_ATTACH_REQ_MSG; typedef struct _QMINAS_INITIATE_ATTACH_RESP_MSG { USHORT Type; // QMUX type 0x0003 USHORT Length; UCHAR TLVType; // 0x02 - result code USHORT TLVLength; // 4 USHORT QMUXResult; // QMI_RESULT_SUCCESS // QMI_RESULT_FAILURE USHORT QMUXError; // QMI_ERR_INVALID_ARG // QMI_ERR_NO_MEMORY // QMI_ERR_INTERNAL // QMI_ERR_FAULT } QMINAS_INITIATE_ATTACH_RESP_MSG, *PQMINAS_INITIATE_ATTACH_RESP_MSG; #endif typedef struct { UCHAR TLVType; USHORT TLVLength; CHAR rssi; SHORT ecio; } __attribute__ ((packed)) QMINAS_SIG_INFO_CDMA_TLV_MSG, *PQMINAS_SIG_INFO_CDMA_TLV_MSG; typedef struct { UCHAR TLVType; USHORT TLVLength; CHAR rssi; SHORT ecio; CHAR sinr; INT io; } __attribute__ ((packed)) QMINAS_SIG_INFO_HDR_TLV_MSG, *PQMINAS_SIG_INFO_HDR_TLV_MSG; typedef struct { UCHAR TLVType; USHORT TLVLength; CHAR rssi; } __attribute__ ((packed)) QMINAS_SIG_INFO_GSM_TLV_MSG, *PQMINAS_SIG_INFO_GSM_TLV_MSG; typedef struct { UCHAR TLVType; USHORT TLVLength; CHAR rssi; SHORT ecio; } __attribute__ ((packed)) QMINAS_SIG_INFO_WCDMA_TLV_MSG, *PQMINAS_SIG_INFO_WCDMA_TLV_MSG; typedef struct { UCHAR TLVType; USHORT TLVLength; CHAR rssi; CHAR rsrq; SHORT rsrp; SHORT snr; } __attribute__ ((packed)) QMINAS_SIG_INFO_LTE_TLV_MSG, *PQMINAS_SIG_INFO_LTE_TLV_MSG; typedef struct { UCHAR TLVType; USHORT TLVLength; CHAR rscp; } __attribute__ ((packed)) QMINAS_SIG_INFO_TDSCDMA_TLV_MSG, *PQMINAS_SIG_INFO_TDSCDMA_TLV_MSG; typedef struct { UCHAR TLVType; USHORT TLVLength; SHORT rsrp; SHORT snr; } __attribute__ ((packed)) QMINAS_SIG_INFO_5G_NSA_TLV_MSG, *PQMINAS_SIG_INFO_5G_NSA_TLV_MSG; typedef struct { UCHAR TLVType; USHORT TLVLength; SHORT nr5g_rsrq; } __attribute__ ((packed)) QMINAS_SIG_INFO_5G_SA_TLV_MSG, *PQMINAS_SIG_INFO_5G_SA_TLV_MSG; typedef struct { uint8 radio_if; uint16 active_band; uint16 active_channel; } __attribute__ ((packed)) NasGetRfBandInfo; typedef struct { UCHAR TLVType; USHORT TLVLength; uint8 num_instances; NasGetRfBandInfo bands_array[0]; } __attribute__ ((packed)) NasGetRfBandInfoList; typedef struct { uint8 radio_if; uint16 dedicated_band; } __attribute__ ((packed)) NasGetRfBandInfoDedicated; typedef struct { UCHAR TLVType; USHORT TLVLength; uint8 num_instances; NasGetRfBandInfoDedicated bands_array[0]; } __attribute__ ((packed)) NasGetRfBandInfoDedicatedList; typedef struct { uint8 radio_if; uint16 active_band; uint32 active_channel; } __attribute__ ((packed)) NasGetRfBandInfoExtended; typedef struct { UCHAR TLVType; USHORT TLVLength; uint8 num_instances; NasGetRfBandInfoExtended bands_array[0]; } __attribute__ ((packed)) NasGetRfBandInfoExtendedList; typedef struct { uint8 radio_if; uint32 bandwidth; } __attribute__ ((packed)) NasGetRfBandInfoBandWidth; typedef struct { UCHAR TLVType; USHORT TLVLength; uint8 num_instances; NasGetRfBandInfoBandWidth bands_array[0]; } __attribute__ ((packed)) NasGetRfBandInfoBandWidthList; typedef struct { UCHAR TLVType; USHORT TLVLength; uint8 plmn[3]; uint8 tac[3]; uint64 global_cell_id; uint16 physical_cell_id; int16 rsrq; int16 rsrp; int16 snr; } __attribute__ ((packed)) NasGetCellLocationNr5gServingCell; typedef struct { uint16 physical_cell_id; int16 rsrq; int16 rsrp; int16 rssi; int16 cell_selection_rx_level; } __attribute__ ((packed)) NasGetCellLocationLteInfoCell; typedef struct { UCHAR TLVType; USHORT TLVLength; uint8 ue_in_idle; uint8 plmn[3]; uint16 tracking_area_code; uint32 global_cell_id; uint16 absolute_rf_channel_number; uint16 serving_cell_id; uint8 cell_reselection_priority; uint8 s_non_intra_search_threshold; uint8 serving_cell_low_threshold; uint8 s_intra_search_threshold; uint8 cells_len; NasGetCellLocationLteInfoCell cells_array[0]; } __attribute__ ((packed)) NasGetCellLocationLteInfoIntrafrequency; typedef struct _QmiMessageNasGetCellLocationInfoOutputInterfrequencyLteInfoFrequencyElement { uint16 eutra_absolute_rf_channel_number; uint8 cell_selection_rx_level_low_threshold; uint8 cell_selection_rx_level_high_threshold; uint8 cell_reselection_priority; uint8 cells_len; NasGetCellLocationLteInfoCell cells_array[0]; } __attribute__ ((packed)) NasGetCellLocationLteInfoInterfrequencyFrequencyElement; typedef struct { UCHAR TLVType; USHORT TLVLength; uint8 ue_in_idle; uint8 freqs_len; NasGetCellLocationLteInfoInterfrequencyFrequencyElement freqs[0]; } __attribute__ ((packed)) NasGetCellLocationLteInfoInterfrequency; // ======================= End of NAS ============================== // ======================= UIM ============================== #define QMIUIM_READ_TRANSPARENT_REQ 0x0020 #define QMIUIM_READ_TRANSPARENT_RESP 0x0020 #define QMIUIM_READ_TRANSPARENT_IND 0x0020 #define QMIUIM_READ_RECORD_REQ 0x0021 #define QMIUIM_READ_RECORD_RESP 0x0021 #define QMIUIM_READ_RECORD_IND 0x0021 #define QMIUIM_WRITE_TRANSPARENT_REQ 0x0022 #define QMIUIM_WRITE_TRANSPARENT_RESP 0x0022 #define QMIUIM_WRITE_TRANSPARENT_IND 0x0022 #define QMIUIM_WRITE_RECORD_REQ 0x0023 #define QMIUIM_WRITE_RECORD_RESP 0x0023 #define QMIUIM_WRITE_RECORD_IND 0x0023 #define QMIUIM_SET_PIN_PROTECTION_REQ 0x0025 #define QMIUIM_SET_PIN_PROTECTION_RESP 0x0025 #define QMIUIM_SET_PIN_PROTECTION_IND 0x0025 #define QMIUIM_VERIFY_PIN_REQ 0x0026 #define QMIUIM_VERIFY_PIN_RESP 0x0026 #define QMIUIM_VERIFY_PIN_IND 0x0026 #define QMIUIM_UNBLOCK_PIN_REQ 0x0027 #define QMIUIM_UNBLOCK_PIN_RESP 0x0027 #define QMIUIM_UNBLOCK_PIN_IND 0x0027 #define QMIUIM_CHANGE_PIN_REQ 0x0028 #define QMIUIM_CHANGE_PIN_RESP 0x0028 #define QMIUIM_CHANGE_PIN_IND 0x0028 #define QMIUIM_DEPERSONALIZATION_REQ 0x0029 #define QMIUIM_DEPERSONALIZATION_RESP 0x0029 #define QMIUIM_EVENT_REG_REQ 0x002E #define QMIUIM_EVENT_REG_RESP 0x002E #define QMIUIM_GET_CARD_STATUS_REQ 0x002F #define QMIUIM_GET_CARD_STATUS_RESP 0x002F #define QMIUIM_STATUS_CHANGE_IND 0x0032 #define QMIUIM_POWER_DOWN 0x0030 #define QMIUIM_POWER_UP 0x0031 typedef struct _QMIUIM_GET_CARD_STATUS_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } __attribute__ ((packed)) QMIUIM_GET_CARD_STATUS_RESP_MSG, *PQMIUIM_GET_CARD_STATUS_RESP_MSG; #define UIM_CARD_STATE_ABSENT 0x00 #define UIM_CARD_STATE_PRESENT 0x01 #define UIM_CARD_STATE_ERROR 0x02 typedef struct _QMIUIM_CARD_STATUS { UCHAR TLVType; USHORT TLVLength; USHORT IndexGWPri; USHORT Index1XPri; USHORT IndexGWSec; USHORT Index1XSec; UCHAR NumSlot; UCHAR CardState; UCHAR UPINState; UCHAR UPINRetries; UCHAR UPUKRetries; UCHAR ErrorCode; UCHAR NumApp; UCHAR AppType; UCHAR AppState; UCHAR PersoState; UCHAR PersoFeature; UCHAR PersoRetries; UCHAR PersoUnblockRetries; UCHAR AIDLength; } __attribute__ ((packed)) QMIUIM_CARD_STATUS, *PQMIUIM_CARD_STATUS; typedef struct _QMIUIM_PIN_STATE { UCHAR UnivPIN; UCHAR PIN1State; UCHAR PIN1Retries; UCHAR PUK1Retries; UCHAR PIN2State; UCHAR PIN2Retries; UCHAR PUK2Retries; } __attribute__ ((packed)) QMIUIM_PIN_STATE, *PQMIUIM_PIN_STATE; typedef struct _QMIUIM_VERIFY_PIN_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR Session_Type; UCHAR Aid_Len; UCHAR TLV2Type; USHORT TLV2Length; UCHAR PINID; UCHAR PINLen; UCHAR PINValue; } __attribute__ ((packed)) QMIUIM_VERIFY_PIN_REQ_MSG, *PQMIUIM_VERIFY_PIN_REQ_MSG; typedef struct _QMIUIM_VERIFY_PIN_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; UCHAR TLV2Type; USHORT TLV2Length; UCHAR PINVerifyRetriesLeft; UCHAR PINUnblockRetriesLeft; } __attribute__ ((packed)) QMIUIM_VERIFY_PIN_RESP_MSG, *PQMIUIM_VERIFY_PIN_RESP_MSG; typedef struct _QMIUIM_READ_TRANSPARENT_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR Session_Type; UCHAR Aid_Len; UCHAR TLV2Type; USHORT TLV2Length; USHORT file_id; UCHAR path_len; UCHAR path[]; } __attribute__ ((packed)) QMIUIM_READ_TRANSPARENT_REQ_MSG, *PQMIUIM_READ_TRANSPARENT_REQ_MSG; typedef struct _READ_TRANSPARENT_TLV { UCHAR TLVType; USHORT TLVLength; USHORT Offset; USHORT Length; } __attribute__ ((packed)) READ_TRANSPARENT_TLV, *PREAD_TRANSPARENT_TLV; typedef struct _QMIUIM_CONTENT { UCHAR TLVType; USHORT TLVLength; USHORT content_len; UCHAR content[]; } __attribute__ ((packed)) QMIUIM_CONTENT, *PQMIUIM_CONTENT; typedef struct _QMIUIM_READ_TRANSPARENT_RESP_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; USHORT QMUXResult; USHORT QMUXError; } __attribute__ ((packed)) QMIUIM_READ_TRANSPARENT_RESP_MSG, *PQMIUIM_READ_TRANSPARENT_RESP_MSG; typedef struct _QMIUIM_SET_CARD_SLOT_REQ_MSG { USHORT Type; USHORT Length; UCHAR TLVType; USHORT TLVLength; UCHAR slot; } __attribute__ ((packed)) QMIUIM_SET_CARD_SLOT_REQ_MSG, *PQMIUIM_SET_CARD_SLOT_REQ_MSG; // ======================= COEX ============================== #define QMI_COEX_GET_WWAN_STATE_REQ 0x22 #define QMI_COEX_GET_WWAN_STATE_RESP 0x22 typedef struct { uint32_t freq; /**< Band center frequency in MHz. */ uint32_t bandwidth; /**< Bandwidth in MHz. */ }coex_band_type_v01; /* Type */ typedef struct _QMI_COEX_GET_WWAN_STATE_RESP_MSG_LTE_BAND { UCHAR TLVType; USHORT TLVLength; coex_band_type_v01 ul_band; coex_band_type_v01 dl_band; } __attribute__ ((packed)) QMI_COEX_GET_WWAN_STATE_RESP_MSG_LTE_BAND, *PQMI_COEX_GET_WWAN_STATE_RESP_MSG_LTE_BAND; typedef struct _QMUX_MSG { QCQMUX_HDR QMUXHdr; union { // Message Header QCQMUX_MSG_HDR QMUXMsgHdr; QCQMUX_MSG_HDR_RESP QMUXMsgHdrResp; // QMIWDS Message #if 0 QMIWDS_GET_PKT_SRVC_STATUS_REQ_MSG PacketServiceStatusReq; QMIWDS_GET_PKT_SRVC_STATUS_RESP_MSG PacketServiceStatusRsp; QMIWDS_GET_PKT_SRVC_STATUS_IND_MSG PacketServiceStatusInd; QMIWDS_EVENT_REPORT_IND_MSG EventReportInd; QMIWDS_GET_CURRENT_CHANNEL_RATE_REQ_MSG GetCurrChannelRateReq; QMIWDS_GET_CURRENT_CHANNEL_RATE_RESP_MSG GetCurrChannelRateRsp; QMIWDS_GET_PKT_STATISTICS_REQ_MSG GetPktStatsReq; QMIWDS_GET_PKT_STATISTICS_RESP_MSG GetPktStatsRsp; QMIWDS_SET_EVENT_REPORT_REQ_MSG EventReportReq; QMIWDS_SET_EVENT_REPORT_RESP_MSG EventReportRsp; #endif //#ifdef QC_IP_MODE QMIWDS_GET_RUNTIME_SETTINGS_REQ_MSG GetRuntimeSettingsReq; QMIWDS_GET_RUNTIME_SETTINGS_RESP_MSG GetRuntimeSettingsRsp; //#endif // QC_IP_MODE QMIWDS_SET_CLIENT_IP_FAMILY_PREF_REQ_MSG SetClientIpFamilyPrefReq; QMIWDS_SET_CLIENT_IP_FAMILY_PREF_RESP_MSG SetClientIpFamilyPrefResp; QMIWDS_SET_AUTO_CONNECT_REQ_MSG SetAutoConnectReq; #if 0 QMIWDS_GET_MIP_MODE_REQ_MSG GetMipModeReq; QMIWDS_GET_MIP_MODE_RESP_MSG GetMipModeResp; #endif QMIWDS_START_NETWORK_INTERFACE_REQ_MSG StartNwInterfaceReq; QMIWDS_START_NETWORK_INTERFACE_RESP_MSG StartNwInterfaceResp; QMIWDS_STOP_NETWORK_INTERFACE_REQ_MSG StopNwInterfaceReq; QMIWDS_STOP_NETWORK_INTERFACE_RESP_MSG StopNwInterfaceResp; QMIWDS_GET_DEFAULT_SETTINGS_REQ_MSG GetDefaultSettingsReq; QMIWDS_GET_DEFAULT_SETTINGS_RESP_MSG GetDefaultSettingsResp; QMIWDS_MODIFY_PROFILE_SETTINGS_REQ_MSG ModifyProfileSettingsReq; QMIWDS_MODIFY_PROFILE_SETTINGS_RESP_MSG ModifyProfileSettingsResp; QMIWDS_GET_PROFILE_SETTINGS_REQ_MSG GetProfileSettingsReq; QMIWDS_CREATE_PROFILE_SETTINGS_REQ_MSG CreatetProfileSettingsReq; QMIWDS_GET_PROFILE_LIST_REQ_MSG GetProfileListReq; QMIWDS_GET_PROFILE_LIST_RESP_MSG GetProfileListResp; #if 0 QMIWDS_GET_DATA_BEARER_REQ_MSG GetDataBearerReq; QMIWDS_GET_DATA_BEARER_RESP_MSG GetDataBearerResp; QMIWDS_DUN_CALL_INFO_REQ_MSG DunCallInfoReq; QMIWDS_DUN_CALL_INFO_RESP_MSG DunCallInfoResp; #endif QMIWDS_BIND_MUX_DATA_PORT_REQ_MSG BindMuxDataPortReq; // QMIDMS Messages #if 0 QMIDMS_GET_DEVICE_MFR_REQ_MSG GetDeviceMfrReq; QMIDMS_GET_DEVICE_MFR_RESP_MSG GetDeviceMfrRsp; QMIDMS_GET_DEVICE_MODEL_ID_REQ_MSG GetDeviceModeIdReq; QMIDMS_GET_DEVICE_MODEL_ID_RESP_MSG GetDeviceModeIdRsp; QMIDMS_GET_DEVICE_REV_ID_REQ_MSG GetDeviceRevIdReq; QMIDMS_GET_DEVICE_REV_ID_RESP_MSG GetDeviceRevIdRsp; QMIDMS_GET_MSISDN_REQ_MSG GetMsisdnReq; QMIDMS_GET_MSISDN_RESP_MSG GetMsisdnRsp; QMIDMS_GET_DEVICE_SERIAL_NUMBERS_REQ_MSG GetDeviceSerialNumReq; QMIDMS_GET_DEVICE_SERIAL_NUMBERS_RESP_MSG GetDeviceSerialNumRsp; QMIDMS_GET_DEVICE_CAP_REQ_MSG GetDeviceCapReq; QMIDMS_GET_DEVICE_CAP_RESP_MSG GetDeviceCapResp; QMIDMS_GET_BAND_CAP_REQ_MSG GetBandCapReq; QMIDMS_GET_BAND_CAP_RESP_MSG GetBandCapRsp; QMIDMS_GET_ACTIVATED_STATUS_REQ_MSG GetActivatedStatusReq; QMIDMS_GET_ACTIVATED_STATUS_RESP_MSG GetActivatedStatusResp; QMIDMS_GET_OPERATING_MODE_REQ_MSG GetOperatingModeReq; QMIDMS_GET_OPERATING_MODE_RESP_MSG GetOperatingModeResp; #endif QMIDMS_SET_OPERATING_MODE_REQ_MSG SetOperatingModeReq; QMIDMS_SET_OPERATING_MODE_RESP_MSG SetOperatingModeResp; #if 0 QMIDMS_UIM_GET_ICCID_REQ_MSG GetICCIDReq; QMIDMS_UIM_GET_ICCID_RESP_MSG GetICCIDResp; QMIDMS_ACTIVATE_AUTOMATIC_REQ_MSG ActivateAutomaticReq; QMIDMS_ACTIVATE_AUTOMATIC_RESP_MSG ActivateAutomaticResp; QMIDMS_ACTIVATE_MANUAL_REQ_MSG ActivateManualReq; QMIDMS_ACTIVATE_MANUAL_RESP_MSG ActivateManualResp; #endif QMIDMS_UIM_GET_PIN_STATUS_REQ_MSG UIMGetPinStatusReq; QMIDMS_UIM_GET_PIN_STATUS_RESP_MSG UIMGetPinStatusResp; QMIDMS_UIM_VERIFY_PIN_REQ_MSG UIMVerifyPinReq; QMIDMS_UIM_VERIFY_PIN_RESP_MSG UIMVerifyPinResp; #if 0 QMIDMS_UIM_SET_PIN_PROTECTION_REQ_MSG UIMSetPinProtectionReq; QMIDMS_UIM_SET_PIN_PROTECTION_RESP_MSG UIMSetPinProtectionResp; QMIDMS_UIM_CHANGE_PIN_REQ_MSG UIMChangePinReq; QMIDMS_UIM_CHANGE_PIN_RESP_MSG UIMChangePinResp; QMIDMS_UIM_UNBLOCK_PIN_REQ_MSG UIMUnblockPinReq; QMIDMS_UIM_UNBLOCK_PIN_RESP_MSG UIMUnblockPinResp; QMIDMS_SET_EVENT_REPORT_REQ_MSG DmsSetEventReportReq; QMIDMS_SET_EVENT_REPORT_RESP_MSG DmsSetEventReportResp; QMIDMS_EVENT_REPORT_IND_MSG DmsEventReportInd; #endif QMIDMS_UIM_GET_STATE_REQ_MSG UIMGetStateReq; QMIDMS_UIM_GET_STATE_RESP_MSG UIMGetStateResp; QMIDMS_UIM_GET_IMSI_REQ_MSG UIMGetIMSIReq; QMIDMS_UIM_GET_IMSI_RESP_MSG UIMGetIMSIResp; #if 0 QMIDMS_UIM_GET_CK_STATUS_REQ_MSG UIMGetCkStatusReq; QMIDMS_UIM_GET_CK_STATUS_RESP_MSG UIMGetCkStatusResp; QMIDMS_UIM_SET_CK_PROTECTION_REQ_MSG UIMSetCkProtectionReq; QMIDMS_UIM_SET_CK_PROTECTION_RESP_MSG UIMSetCkProtectionResp; QMIDMS_UIM_UNBLOCK_CK_REQ_MSG UIMUnblockCkReq; QMIDMS_UIM_UNBLOCK_CK_RESP_MSG UIMUnblockCkResp; #endif // QMIQOS Messages #if 1 QMI_QOS_SET_EVENT_REPORT_REQ_MSG QosSetEventReportReq; QMI_QOS_SET_EVENT_REPORT_RESP_MSG QosSetEventReportRsp; QMI_QOS_SET_EVENT_REPORT_IND_MSG QosSetEventReportInd; QMI_QOS_BIND_DATA_PORT_REQ_MSG QosBindDataPortReq; QMI_QOS_BIND_DATA_PORT_RESP_MSG QosBindDataPortRsp; QMI_QOS_INDICATION_REGISTER_REQ_MSG QosIndRegReq; QMI_QOS_INDICATION_REGISTER_RESP_MSG QosIndRegRsp; QMI_QOS_GLOBAL_QOS_FLOW_IND_MSG QosGlobalQosFlowInd; QMI_QOS_GET_QOS_INFO_REQ_MSG QosGetQosInfoReq; QMI_QOS_GET_QOS_INFO_RESP_MSG QosGetQosInfoRsp; #endif // QMIWMS Messages #if 0 QMIWMS_GET_MESSAGE_PROTOCOL_REQ_MSG GetMessageProtocolReq; QMIWMS_GET_MESSAGE_PROTOCOL_RESP_MSG GetMessageProtocolResp; QMIWMS_GET_SMSC_ADDRESS_REQ_MSG GetSMSCAddressReq; QMIWMS_GET_SMSC_ADDRESS_RESP_MSG GetSMSCAddressResp; QMIWMS_SET_SMSC_ADDRESS_REQ_MSG SetSMSCAddressReq; QMIWMS_SET_SMSC_ADDRESS_RESP_MSG SetSMSCAddressResp; QMIWMS_GET_STORE_MAX_SIZE_REQ_MSG GetStoreMaxSizeReq; QMIWMS_GET_STORE_MAX_SIZE_RESP_MSG GetStoreMaxSizeResp; QMIWMS_LIST_MESSAGES_REQ_MSG ListMessagesReq; QMIWMS_LIST_MESSAGES_RESP_MSG ListMessagesResp; QMIWMS_RAW_READ_REQ_MSG RawReadMessagesReq; QMIWMS_RAW_READ_RESP_MSG RawReadMessagesResp; QMIWMS_SET_EVENT_REPORT_REQ_MSG WmsSetEventReportReq; QMIWMS_SET_EVENT_REPORT_RESP_MSG WmsSetEventReportResp; QMIWMS_EVENT_REPORT_IND_MSG WmsEventReportInd; QMIWMS_DELETE_REQ_MSG WmsDeleteReq; QMIWMS_DELETE_RESP_MSG WmsDeleteResp; QMIWMS_RAW_SEND_REQ_MSG RawSendMessagesReq; QMIWMS_RAW_SEND_RESP_MSG RawSendMessagesResp; QMIWMS_MODIFY_TAG_REQ_MSG WmsModifyTagReq; QMIWMS_MODIFY_TAG_RESP_MSG WmsModifyTagResp; #endif // QMINAS Messages #if 0 QMINAS_GET_HOME_NETWORK_REQ_MSG GetHomeNetworkReq; QMINAS_GET_HOME_NETWORK_RESP_MSG GetHomeNetworkResp; QMINAS_GET_PREFERRED_NETWORK_REQ_MSG GetPreferredNetworkReq; QMINAS_GET_PREFERRED_NETWORK_RESP_MSG GetPreferredNetworkResp; QMINAS_GET_FORBIDDEN_NETWORK_REQ_MSG GetForbiddenNetworkReq; QMINAS_GET_FORBIDDEN_NETWORK_RESP_MSG GetForbiddenNetworkResp; QMINAS_GET_SERVING_SYSTEM_REQ_MSG GetServingSystemReq; #endif QMINAS_GET_SERVING_SYSTEM_RESP_MSG GetServingSystemResp; QMINAS_GET_SYS_INFO_RESP_MSG GetSysInfoResp; QMINAS_SYS_INFO_IND_MSG NasSysInfoInd; #if 0 QMINAS_SERVING_SYSTEM_IND_MSG NasServingSystemInd; QMINAS_SET_PREFERRED_NETWORK_REQ_MSG SetPreferredNetworkReq; QMINAS_SET_PREFERRED_NETWORK_RESP_MSG SetPreferredNetworkResp; QMINAS_SET_FORBIDDEN_NETWORK_REQ_MSG SetForbiddenNetworkReq; QMINAS_SET_FORBIDDEN_NETWORK_RESP_MSG SetForbiddenNetworkResp; QMINAS_PERFORM_NETWORK_SCAN_REQ_MSG PerformNetworkScanReq; QMINAS_PERFORM_NETWORK_SCAN_RESP_MSG PerformNetworkScanResp; QMINAS_INITIATE_NW_REGISTER_REQ_MSG InitiateNwRegisterReq; QMINAS_INITIATE_NW_REGISTER_RESP_MSG InitiateNwRegisterResp; QMINAS_SET_TECHNOLOGY_PREF_REQ_MSG SetTechnologyPrefReq; QMINAS_SET_TECHNOLOGY_PREF_RESP_MSG SetTechnologyPrefResp; QMINAS_GET_SIGNAL_STRENGTH_REQ_MSG GetSignalStrengthReq; QMINAS_GET_SIGNAL_STRENGTH_RESP_MSG GetSignalStrengthResp; QMINAS_SET_EVENT_REPORT_REQ_MSG SetEventReportReq; QMINAS_SET_EVENT_REPORT_RESP_MSG SetEventReportResp; QMINAS_EVENT_REPORT_IND_MSG NasEventReportInd; QMINAS_GET_RF_BAND_INFO_REQ_MSG GetRFBandInfoReq; QMINAS_GET_RF_BAND_INFO_RESP_MSG GetRFBandInfoResp; QMINAS_INITIATE_ATTACH_REQ_MSG InitiateAttachReq; QMINAS_INITIATE_ATTACH_RESP_MSG InitiateAttachResp; QMINAS_GET_PLMN_NAME_REQ_MSG GetPLMNNameReq; QMINAS_GET_PLMN_NAME_RESP_MSG GetPLMNNameResp; #endif // QMIUIM Messages QMIUIM_GET_CARD_STATUS_RESP_MSG UIMGetCardStatus; QMIUIM_VERIFY_PIN_REQ_MSG UIMUIMVerifyPinReq; QMIUIM_VERIFY_PIN_RESP_MSG UIMUIMVerifyPinResp; #if 0 QMIUIM_SET_PIN_PROTECTION_REQ_MSG UIMUIMSetPinProtectionReq; QMIUIM_SET_PIN_PROTECTION_RESP_MSG UIMUIMSetPinProtectionResp; QMIUIM_CHANGE_PIN_REQ_MSG UIMUIMChangePinReq; QMIUIM_CHANGE_PIN_RESP_MSG UIMUIMChangePinResp; QMIUIM_UNBLOCK_PIN_REQ_MSG UIMUIMUnblockPinReq; QMIUIM_UNBLOCK_PIN_RESP_MSG UIMUIMUnblockPinResp; #endif QMIUIM_READ_TRANSPARENT_REQ_MSG UIMUIMReadTransparentReq; QMIUIM_READ_TRANSPARENT_RESP_MSG UIMUIMReadTransparentResp; QMIUIM_SET_CARD_SLOT_REQ_MSG UIMSetCardSlotReq; QMIWDS_ADMIN_SET_DATA_FORMAT_REQ_MSG SetDataFormatReq; QMI_WDA_SET_LOOPBACK_CONFIG_REQ_MSG SetLoopBackReq; QMI_WDA_SET_LOOPBACK_CONFIG_IND_MSG SetLoopBackInd; }; } __attribute__ ((packed)) QMUX_MSG, *PQMUX_MSG; typedef struct _QCQMIMSG { QCQMI_HDR QMIHdr; union { QMICTL_MSG CTLMsg; QMUX_MSG MUXMsg; }; } __attribute__ ((packed)) QCQMIMSG, *PQCQMIMSG; #pragma pack(pop) #endif // QCQMUX_H