1#ifndef __QMI_OPER_H__ 2#define __QMI_OPER_H__ 3 4#include "qmi_header.h" 5#define DEBUG 6 7enum 8{ 9 QMI_GET_CLIENT_ID = 0, 10 QMI_RELEASE_CLIENT_ID, 11 QMI_CONNECT, 12 QMI_DISCONNECT, 13 QMI_GET_IP_ADDR, 14 QMI_SET_DATA_FORMAT, 15 QMI_SET_INSTANCE, 16 QMI_GET_VERSION, 17 QMI_MODIFY_PRO, 18}; 19 20typedef struct _NDIS_QMI_STATUS{ 21 UInt32 fPacketHandle; 22 UInt32 fPacketHandle1; 23 bool fIPPacketSupport; 24 bool fDisconnecting; 25 bool fConnecting; 26 bool fGetVersioning; 27 bool fIPModeEnabled; 28 int fConnectionStatus; 29 int fSetInstanceIdFail; 30 UInt32 fQMI_ID; 31 UInt32 fIPAddress; 32 UInt16 fConnectionError; 33 UInt8 fQMIType; 34 UInt8 fClientID; 35 UInt8 fLinkStatus; 36 char fVersion[64]; 37} NDIS_QMI_STATUS; 38/******************************************************************** 39 * 40 * Name: printk_hex 41 * Description: print data buffer with hex which is lined by 16 bytes 42 * Input: buf:the data buffer to be print of 43 * buf_size:the data buffer length. 44 * Return: null 45 * Notes: 46 ********************************************************************/ 47void printk_hex(UInt8 *buf,int buf_size); 48/******************************************************************** 49 * 50 * Name: QCTL_GetClientID 51 * Description: get a qmi client ID 52 * Input: qmiType:the type of qmi,there are QMUX_TYPE_WDS 53 * length:the pMsgBuff max length. 54 * Output: pMsgBuff : the buf used to generate a package. 55 * Return: -1 : call faled. 56 * >0 : call success,the package length used. 57 * Notes: 58 ********************************************************************/ 59int QCTL_GetClientID(UInt8 * pMsgBuff,UInt32 length,UInt8 qmiType); 60/******************************************************************** 61 * 62 * Name: QCTL_ReleaseClientID 63 * Description: relase a qmi client ID 64 * Input: length:the pMsgBuff max length. 65 * pndis_status : the input global parameters. 66 * Output: pMsgBuff : the buf used to generate a package. 67 * Return: -1 : call faled. 68 * >0 : call success,the package length used. 69 * Notes: 70 ********************************************************************/ 71int QCTL_ReleaseClientID(UInt8* pMsgBuff,UInt32 length,NDIS_QMI_STATUS* pndis_status); 72/******************************************************************** 73 * 74 * Name: QCTL_GetVersionReq 75 * Description: GET a qmi version info 76 * Input: length:the pMsgBuff max length. 77 * Output: pMsgBuff : the buf used to generate a package. 78 * Return: -1 : call faled. 79 * >0 : call success,the package length used. 80 * Notes: 81 ********************************************************************/ 82int QCTL_GetVersionReq(UInt8* pMsgBuff,UInt32 length); 83/******************************************************************** 84 * 85 * Name: QCTL_SetDataFormatReq 86 * Description: set a qmi data format 87 * Input: length:the pMsgBuff max length. 88 * Output: pMsgBuff : the buf used to generate a package. 89 * Return: -1 : call faled. 90 * >0 : call success,the package length used. 91 * Notes: 92 ********************************************************************/ 93int QCTL_SetDataFormatReq(UInt8* pMsgBuff,UInt32 length); 94/******************************************************************** 95 * 96 * Name: QCTL_SetInstanceId 97 * Description: set a qmi Instance ID 98 * Input: length:the pMsgBuff max length. 99 * Output: pMsgBuff : the buf used to generate a package. 100 * Return: -1 : call faled. 101 * >0 : call success,the package length used. 102 * Notes: 103 ********************************************************************/ 104int QCTL_SetInstanceId(UInt8* pMsgBuff,UInt32 length); 105/******************************************************************** 106 * 107 * Name: QC_WDS_GetIPAddress 108 * Description: get qmi ip address 109 * Input: length:the pMsgBuff max length. 110 * fClientID:the current clientID 111 * Output: pMsgBuff : the buf used to generate a package. 112 * Return: -1 : call faled. 113 * >0 : call success,the package length used. 114 * Notes: 115 ********************************************************************/ 116int QC_WDS_GetIPAddress(UInt8* pMsgBuff,UInt32 length,UInt8 fClientID); 117 118/******************************************************************** 119 * 120 * Name: QC_WDS_ModifyProfile 121 * Description: modify profile for support ipv6 adn dulIP 122 * Input: length:the pMsgBuff max length; 123 * fClientID:the current clientID 124 * char ConnectIpMode 0 for ipv4 1 for ipv6 2 for dul 125 * compression: auth type. 126 * Output: pMsgBuff : the buf used to generate a package. 127 * Return: -1 : call faled. 128 * >0 : call success,the package length used. 129 * Notes: 130 ********************************************************************/ 131int QC_WDS_ModifyProfile(UInt8* pMsgBuff, 132 UInt32 length, 133 NDIS_QMI_STATUS* pndis_status,//fClientID 134 char *accessString, 135 char *userName, 136 char *passWord, 137 UInt8 compression, 138 UInt32 ConnectIpMode); 139 140 141/******************************************************************** 142 * 143 * Name: QC_WDS_Connect 144 * Description: use apn dail to internet through qmi 145 * Input: length:the pMsgBuff max length; 146 * fClientID:the current clientID 147 * accessString:apn; 148 * userName: user name; 149 * passWord: password; 150 * compression: auth type. 151 * Output: pMsgBuff : the buf used to generate a package. 152 * Return: -1 : call faled. 153 * >0 : call success,the package length used. 154 * Notes: 155 ********************************************************************/ 156int QC_WDS_Connect(UInt8* pMsgBuff, 157 UInt32 length, 158 UInt8 fClientID, 159 char *accessString, 160 char *userName, 161 char *passWord, 162 UInt8 compression, 163 UInt32 ConnectIpMode); 164/******************************************************************** 165 * 166 * Name: QC_WDS_Disconnect 167 * Description: disconnect from qmi internet. 168 * Input: length:the pMsgBuff max length. 169 * pndis_status:ndis global status parameters. 170 * Output: pMsgBuff : the buf used to generate a package. 171 * Return: -1 : call faled. 172 * >0 : call success,the package length used. 173 * Notes: 174 ********************************************************************/ 175int QC_WDS_Disconnect(UInt8* pMsgBuff,UInt32 length,NDIS_QMI_STATUS* pndis_status,UInt8 flag); 176/******************************************************************** 177 * 178 * Name: QCTL_Procecess_GetClient_ID_Response 179 * Description: QCTL Procecess GetClient ID Response 180 * Input: pQmi:the package message get from qmi server. 181 * Output: fClientID : client ID getted from the package. 182 * fQMIType : fQMIType getted from the package. 183 * Return: -1 : call faled. 184 * >0 : call success,the package length used. 185 * Notes: 186 ********************************************************************/ 187int QCTL_Procecess_GetClient_ID_Response(QCQMI * pQmi,UInt8* fClientID,UInt8* fQMIType); 188/******************************************************************** 189 * 190 * Name: QCTL_Procecess_SetDataFormat_Response 191 * Description: QCTL Procecess SetDataFormat Response. 192 * Input: pQmi:the package message get from qmi server. 193 * Output: pndis_status : qmi global status parameters. 194 * Return: -1 : call faled. 195 * >0 : call success,the package length used. 196 * Notes: 197 ********************************************************************/ 198int QCTL_Procecess_SetDataFormat_Response(QCQMI* pQmi,NDIS_QMI_STATUS* pndis_status); 199/******************************************************************** 200 * 201 * Name: QCTL_Procecess_SetInstanceId_Response 202 * Description: QCTL Procecess SetInstanceId Response. 203 * Input: pQmi:the package message get from qmi server. 204 * Output: fSetInstanceIdFail : if get qmi id return -1,else return 1. 205 * fQMI_ID : QMI_ID 206 * Return: -1 : call faled. 207 * >0 : call success,the package length used. 208 * Notes: 209 ********************************************************************/ 210int QCTL_Procecess_SetInstanceId_Response(QCQMI* pQmi,int* fSetInstanceIdFail,UInt32* fQMI_ID); 211/******************************************************************** 212 * 213 * Name: QCTL_Procecess_ReleaseClient_ID_Response 214 * Description: QCTL Procecess ReleaseClient ID Response. 215 * Input: pQmi:the package message get from qmi server. 216 * Output: fClientID : client ID getted from the package. 217 * fQMIType : fQMIType getted from the package. 218 * Return: -1 : call faled. 219 * >0 : call success,the package length used. 220 * Notes: 221 ********************************************************************/ 222int QCTL_Procecess_ReleaseClient_ID_Response(QCQMI* pQmi,UInt8* fClientID,UInt8* fQMIType); 223/******************************************************************** 224 * 225 * Name: QCTL_Procecess_GetVersion_Respons 226 * Description: QCTL Procecess GetVersion Respons. 227 * Input: pQmi:the package message get from qmi server. 228 * Output: pndis_status : qmi global status parameters. 229 * Return: -1 : call faled. 230 * 0 : call success 231 * Notes: 232 ********************************************************************/ 233int QCTL_Procecess_GetVersion_Respons(QCQMI* pQmi,NDIS_QMI_STATUS* pndis_status); 234 /******************************************************************** 235 * 236 * Name: QCQMI_ProcessQMUXWDSResponse 237 * Description: QCQMI Process QMUX WDS Response 238 * Input: pQmi:the data buffer to be print of 239 * Output: pndis_status: ndis global status parameters. 240 * Return: null 241 * Notes: 242 ********************************************************************/ 243int QCQMI_ProcessQMUXWDSResponse(QCQMI* pQmi,NDIS_QMI_STATUS* pndis_status); 244/******************************************************************** 245 * 246 * Name: QC_WDS_Process_GetRunTimeSettings_Respons 247 * Description: QC WDS Process Get RunTime Settings Respons 248 * Input: pQMuxMsg:the data getted from qmi server 249 * Output: pndis_status: ndis global status parameters. 250 * Return: -1 : call faled. 251 * 0 : call success 252 * Notes: 253 ********************************************************************/ 254 int QC_WDS_Process_GetRunTimeSettings_Respons(QCQMUX_MSG_HDR* pQMuxMsg,NDIS_QMI_STATUS* pndis_status); 255 /******************************************************************** 256 * 257 * Name: processQMIResponse 258 * Description: process QMI Respons 259 * Input: buffer:the data getted from qmi server 260 * Output: pndis_status: ndis global status parameters. 261 * Return: -1 : call faled. 262 * QMI_GET_CLIENT_ID--QMI_GET_VERSION : call success 263 * Notes: 264 ********************************************************************/ 265int processQMIResponse(void *buffer,NDIS_QMI_STATUS* pndis_status); 266/******************************************************************** 267 * 268 * Name: QCQMI_ProcessQMUXWDSIndication 269 * Description: QCQMI Process QMUX WDS Indication 270 * Input: pQmi:the data getted from qmi server 271 * Output: pndis_status: ndis global status parameters. 272 * Return: -1 : call faled. 273 * 0 : call success 274 * Notes: 275 ********************************************************************/ 276int QCQMI_ProcessQMUXWDSIndication(QCQMI* pQmi,NDIS_QMI_STATUS* pndis_status); 277#endif 278