blob: c3c8da1dea7aa94c1d98621d2811f4183485bc3b [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2016
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (""MEDIATEK SOFTWARE"")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN ""AS-IS"" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35/*************************************************************
36*
37* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
38*
39* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
40*
41* Copyright (c) 1998-2010 VIA Telecom, Inc. All rights reserved.
42*
43*************************************************************/
44#ifndef _HLPDEF_H_
45#define _HLPDEF_H_
46/*****************************************************************************
47*
48* FILE NAME : hlpdef.h
49*
50* DESCRIPTION :
51*
52* This include file provides unit wide regional type declarations and
53* constants
54*
55* HISTORY :
56* See Log at end of file.
57*
58*****************************************************************************/
59
60/*----------------------------------------------------------------------------
61 Include Files
62----------------------------------------------------------------------------*/
63#include "valapi.h"
64#include "hlpcam.h"
65#include "do_rcpapi.h"
66#include "reg_base.h"
67#include "cssapi.h"
68#include "do_almpapi.h"
69#include "hlpem.h"
70#include "sim_exported_enum.h"
71
72/*----------------------------------------------------------------------------
73 Global Defines and Macros
74----------------------------------------------------------------------------*/
75#define MAX_SIZE_REVERSE_BUFFER 512
76#define MAX_NUM_DATA_PAGE 2
77#define MAX_NUMBER_OF_TIMERS 20
78#define MAX_NUM_DECODE_RESULTS 20
79#define WFR_HAND_OFF_HYST_TMR 10000
80
81#define START_DECODER_OPERATION 0x0001
82#define DEFAULT_DECODER_CONFIG 0x0350
83#define START_ENCODER_OPERATION 0x0001
84#define DEFAULT_ENCODER_CONFIG 0x0350
85
86#define PPPReMap(data) ((kal_uint32)(data))
87#define PPP_MAX_ENC0_SRC 75 /* 75 entries max. */
88#define PPP_MAX_ENC1_SRC 150 /* 150 entries max. */
89#define PPP_MAX_RESULT0 75 /* 75 entries max. */
90#define PPP_MAX_RESULT1 150 /* 150 entries max. */
91#define PPP_MAX_LLD0 480 /* 480 entries max. */
92#define PPP_MAX_LLD1 480 /* 480 entries max. */
93
94#define PPP_MAX_DEST0 0x8000 /* 32K bytes. */
95#define PPP_MAX_DEST1 0x4000 /* 64K bytes. */
96
97/*---------------------------------
98Foward path : ENC0 & DEC0
99Reverse path: ENC1 & DEC1
100----------------------------------*/
101#define PPPHA_BASE_ADDR BASE_MADDR_MDINFRA_PPPHA
102#define PPP_ENC0_SRC_ADR (PPPHA_BASE_ADDR + 0x0000)
103#define PPP_ENC0_DST_ADR (PPPHA_BASE_ADDR + 0x0004)
104#define PPP_ENC0_TRNSCNT (PPPHA_BASE_ADDR + 0x0008)
105#define PPP_ENC0_CNFG (PPPHA_BASE_ADDR + 0x000C)
106#define PPP_ENC0_CNTL (PPPHA_BASE_ADDR + 0x0010)
107#define PPP_ENC0_ACCM (PPPHA_BASE_ADDR + 0x0014)
108#define PPP_ENC0_BYTECNT (PPPHA_BASE_ADDR + 0x0018)
109#define PPP_ENC0_BYTES_TOT (PPPHA_BASE_ADDR + 0x001C)
110
111#define PPP_ENC1_SRC_ADR (PPPHA_BASE_ADDR + 0x0040)
112#define PPP_ENC1_DST_ADR (PPPHA_BASE_ADDR + 0x0044)
113#define PPP_ENC1_TRNSCNT (PPPHA_BASE_ADDR + 0x0048)
114#define PPP_ENC1_CNFG (PPPHA_BASE_ADDR + 0x004C)
115#define PPP_ENC1_CNTL (PPPHA_BASE_ADDR + 0x0050)
116#define PPP_ENC1_ACCM (PPPHA_BASE_ADDR + 0x0054)
117#define PPP_ENC1_BYTECNT (PPPHA_BASE_ADDR + 0x0058)
118#define PPP_ENC1_BYTES_TOT (PPPHA_BASE_ADDR + 0x005C)
119
120#define PPP_DEC0_LLD_ADR (PPPHA_BASE_ADDR + 0x0080)
121#define PPP_DEC0_DST_ADR (PPPHA_BASE_ADDR + 0x0084)
122#define PPP_DEC0_TRNSCNT (PPPHA_BASE_ADDR + 0x0088)
123#define PPP_DEC0_CNFG (PPPHA_BASE_ADDR + 0x008C)
124#define PPP_DEC0_CNTL (PPPHA_BASE_ADDR + 0x0090)
125#define PPP_DEC0_RES_ADR (PPPHA_BASE_ADDR + 0x0094)
126#define PPP_DEC0_MAX_ADR (PPPHA_BASE_ADDR + 0x0098)
127#define PPP_DEC0_CRT_ADR (PPPHA_BASE_ADDR + 0x009C)
128
129#define PPP_DEC1_LLD_ADR (PPPHA_BASE_ADDR + 0x00C0)
130#define PPP_DEC1_DST_ADR (PPPHA_BASE_ADDR + 0x00C4)
131#define PPP_DEC1_TRNSCNT (PPPHA_BASE_ADDR + 0x00C8)
132#define PPP_DEC1_CNFG (PPPHA_BASE_ADDR + 0x00CC)
133#define PPP_DEC1_CNTL (PPPHA_BASE_ADDR + 0x00D0)
134#define PPP_DEC1_RES_ADR (PPPHA_BASE_ADDR + 0x00D4)
135#define PPP_DEC1_MAX_ADR (PPPHA_BASE_ADDR + 0x00D8)
136#define PPP_DEC1_CRT_ADR (PPPHA_BASE_ADDR + 0x00DC)
137
138#define PPP_DMA_SUSPEND (PPPHA_BASE_ADDR + 0x00E0)
139
140/* #define PPP_SRAM_ACCESS 0xABC0001C */
141
142#define HLP_DEFAULT_ACCM 0xFFFFFFFF
143
144#define HLP_BURST_LENGTH_4
145#define HLP_HA_DEC_DST_BURST_LEN_MASK 0xFF3F
146
147#if defined(HLP_BURST_LENGTH_8) /* burst length 8 */
148#define HLP_DEFAULT_HA_ENC_CFG 0x03a0
149#define HLP_HA_32BIT_ENC_CFG 0x03a2
150#define HLP_HA_16BIT_ENC_CFG 0x03a1
151
152#define HLP_DEFAULT_HA_DEC_CFG 0x07a0
153#define HLP_HA_32BIT_DEC_CFG 0x07a2
154#define HLP_HA_16BIT_DEC_CFG 0x07a1
155
156#elif defined(HLP_BURST_LENGTH_4) /* burst length 4 */
157#define HLP_DEFAULT_HA_ENC_CFG 0x0350
158#define HLP_HA_16BIT_ENC_CFG 0x0351
159
160#define HLP_HA_32BIT_ENC_CFG 0x0368
161
162#define HLP_DEFAULT_HA_DEC_CFG 0x07a0
163#define HLP_HA_32BIT_DEC_CFG 0x07a2
164#define HLP_HA_16BIT_DEC_CFG 0x07a1
165
166#else /* non-burst 1 */
167#define HLP_DEFAULT_HA_CFG 0x0300
168#define HLP_HA_32BIT_CFG 0x0302
169#define HLP_HA_16BIT_CFG 0x0301
170#endif
171
172#define TCP_TAG_NOT_PURE_ACK 38
173#define TCP_TAG_PURE_ACK 49
174#define TCP_TAG_RETRANSMIT 50
175
176
177/* Define Macros that manages the PPP_DMA_SUSPEND register (This feature is not used) */
178#define PppDmaSuspend() HwdWrite(PPP_DMA_SUSPEND, 0x0001)
179#define PppDmaResume() HwdWrite(PPP_DMA_SUSPEND, 0x0000)
180
181#define HLP_UIM_MAX_PROFILE_NUM 16
182#define HLP_UIM_MAX_MIP_ADD_ACT_NAI_NUM 16
183
184#define WFR_PPP_RSP_TM 20000 /* 250 seconds, seems too long. changed to 10 seconds by Fenix */
185#define WFR_NWK_RSP_TM 15000
186#define WFR_USER_RSP_TM 60000 /*1 minute for call setup*/
187
188/* memory size occupied by ppp header, 2B as its data type is kal_uint16 */
189#define HLP_PPP_HEADER_DATA_TYPE_SIZE sizeof(kal_uint16)
190
191extern kal_spinlockid chlp_spinlock;
192
193#if defined (__SMP_ARCH__)
194#define CHLP_TAKE_SPINLOCK() kal_take_spinlock(chlp_spinlock, KAL_INFINITE_WAIT)
195#define CHLP_GIVE_SPINLOCK() kal_give_spinlock(chlp_spinlock)
196#else
197#define CHLP_TAKE_SPINLOCK()
198#define CHLP_GIVE_SPINLOCK()
199#endif /* __SMP_ARCH__ */
200
201enum
202{
203 HO_NULL,
204 HO_TO_DO,
205 HO_TO_1X,
206 HO_TO_EHRPD
207};
208
209typedef enum
210{
211 CAM_SYS_HSPD,
212 CAM_SYS_HRPD,
213 CAM_SYS_EHRPD,
214 CAM_SYS_MAX
215} CamSysTypeT;
216
217typedef enum
218{
219 PPPHA_NOT_INITIALIZED,
220 PPPHA_CLOSE_TO_END_DEC0,
221 PPPHA_CLOSE_TO_END_DEC1,
222 PPPHA_FLOW_CTRL_TURNED_ON,
223 PPPHA_BUF_FAIL,
224 PPPHA_CRC_FAIL,
225 PPPHA_DEST_ADDR_NULL,
226 PPPHA_STATUS_MAX
227} PpphaStatusT;
228
229typedef enum
230{
231 PPPHA_ENC0,/*Rev Encode*/
232 PPPHA_DEC0,/*Fwd Decode*/
233 PPPHA_ENC1,/*Fwd Encode*/
234 PPPHA_DEC1 /*Rev Decode*/
235} PpphaPhaseT;
236
237typedef enum
238{
239 DATA_SERVICE_SIP,
240 DATA_SERVICE_MIP,
241 DATA_SERVICE_HRPD,
242 DATA_SERVICE_3GPDEXT,
243 DATA_SERVICE_IPv6,
244 DATA_SERVICE_UST_ACL,
245 DATA_SERVICE_EST_ACL
246} DataServiceTypeT;
247
248typedef enum
249{
250 HLP_DATA_DIR_UL,
251 HLP_DATA_DIR_DL,
252 HLP_DATA_DIR_MAX
253}HlpDataDirEnum;
254
255typedef enum
256{
257 HLP_NV_IP_COUNTER_ERR,
258 HLP_NV_IP_COUNTER_LEN_ERR,
259 HLP_NV_HSPD_DATA_ERR,
260 HLP_NV_HSPD_DATA_LEN_ERR,
261 HLP_NV_HSPD_SECURE_ERR,
262 HLP_NV_HSPD_SECURE_LEN_ERR,
263 HLP_NV_EHRPD_DATA_ERR,
264 HLP_NV_EHRPD_DATA_LEN_ERR,
265 HLP_NV_DMU_PUBKEY_ERR,
266 HLP_NV_DMU_PUBKEY_LEN_ERR,
267 HLP_NV_ERR_MAX
268} HlpNvRdWtErrT;
269
270typedef enum
271{
272 NO_SILENTLY_RETRY, /*don't retry by modem, directly notify AP*/
273 SILENTLY_AFRESH_CONN,/*re-establish connection*/
274 SILENTLY_AFRESH_PS,/*re-establish connection and re-nego ppp*/
275 SILENTLY_PPP_RENEGO /*re-establish PPP*/
276} HlpRecoverFlagT;
277
278typedef enum
279{
280 HLP_PROTOCOL_COMPRESSION, /* Protocol Compression */
281 HLP_ADDRESS_CONTROL_COMPRESSION, /* Address/Control Compression */
282 HLP_PPP_HEADER_ENC_GETBUFF_NULL
283}HlpPppHeaderEncWarningT;
284
285typedef struct
286{
287 kal_uint16 tcpTag;
288 kal_uint32 tcpPort;
289 kal_uint32 srcIpAddr;
290 kal_uint32 dstIpAddr;
291}socketInfoT;
292
293typedef struct
294{
295 CpBufferT* sourceAddr;
296 CpBufferT* destAddr;
297 kal_uint8* directSrcAddr;
298 kal_uint32 xferCount;
299 kal_uint32 configReg;
300#ifdef SYS_OPTION_PPPHA_ENC_ENH
301 kal_uint8 leadingPad;
302 kal_uint8 tailingPad;
303#endif
304 kal_uint32 accmInUse;
305 kal_uint16 encodedLen;
306 kal_uint16 sourceOffset;
307 kal_bool isCpBufPtr;
308 AppSubTypeT AppSubType;
309 socketInfoT dstSocket;
310} HlpPPPHaEncTableT;
311
312typedef struct
313{
314 ExeRspMsgT RspInfo;
315} HlpGetIPServiceTypeMsgT;
316
317typedef struct
318{
319 kal_uint8 pureAckTagRateTD;
320 kal_uint8 pureAckTagRate;
321} HlpEtsPureAckRateMsgT;
322
323typedef struct
324{
325 kal_uint32 tmrStatusHspd;
326 kal_uint32 tmrSysIdHspd[MAX_NUM_SYS_TMR_ENTRY];
327 kal_uint32 tmrStatusHrpd;
328 kal_uint32 tmrSysIdHrpd[MAX_NUM_SYS_TMR_ENTRY];
329 kal_uint32 tmrStatusEhrpd;
330 kal_uint32 tmrSysIdEhrpd[MAX_NUM_SYS_TMR_ENTRY];
331} HlpEtsThrottlingTmrStatusMsgT;
332
333#define HLP_UIM_MAX_PROFILE_NUM 16
334#define HLP_UIM_MAX_MIP_ADD_ACT_NAI_NUM 16
335typedef struct
336{
337 kal_uint8 MaxNumNAI;
338 kal_uint8 MaxNAILen;
339 kal_uint8 MaxSSLen;
340 kal_uint8 AuthAlgo;
341} HlpUim3GPDSipCapT;
342
343typedef struct
344{
345 kal_uint8 MaxNumNAI;
346 kal_uint8 MaxNAILen;
347 kal_uint8 MaxMNAAASSLen;
348 kal_uint8 MNAAAAuthAlgo;
349 kal_uint8 MaxMNHASSLen;
350 kal_uint8 MNHAAuthAlgo;
351} HlpUim3GPDMipCapT;
352
353typedef struct
354{
355 kal_uint8 NAIEntryIndex;
356 kal_uint8 NAILen;
357 kal_uint8 NAI[MN_NAI_MAX_SIZE];
358 kal_uint8 AuthAlgo;
359} HlpSipUserProfileT;
360
361typedef struct
362{
363 kal_uint8 NumNAI;
364 HlpSipUserProfileT SipUserProfile[HLP_UIM_MAX_PROFILE_NUM];
365} HlpUim3GPDSipUserProfileT;
366
367typedef struct
368{
369 kal_uint8 NAIEntryIndex;
370 kal_uint8 NAILen;
371 kal_uint8 NAI[MN_NAI_MAX_SIZE];
372 kal_bool TBit;
373 kal_uint32 HomeAddress;
374 kal_uint32 PrimaryHomeAgent;
375 kal_uint32 SecondaryHomeAgent;
376 kal_uint8 MNAAAAuthAlgo;
377 kal_bool MNAAASpiInd;
378 kal_uint32 MNAAASpi;
379 kal_uint8 MNHAAuthAlgo;
380 kal_bool MNHASpiInd;
381 kal_uint32 MNHASpi;
382} HlpMipUserProfileT;
383
384typedef struct
385{
386 kal_bool RetryInfoIncluded;
387 kal_uint8 MaxNumRetry;
388 kal_uint8 FirstRetryTimeOut;
389 kal_uint8 ReregThreshold;
390 kal_uint8 NumNAI;
391 HlpMipUserProfileT MipUserProfile[HLP_UIM_MAX_PROFILE_NUM];
392} HlpUim3GPDMipUserProfileT;
393
394typedef struct
395{
396 kal_uint8 ActNAIEntryIndex;
397 kal_uint8 NumAddActNAI;
398 kal_uint8 AddActNaiEntryIndex[HLP_UIM_MAX_MIP_ADD_ACT_NAI_NUM];
399} HlpUim3GPDMipStatusT;
400
401typedef struct
402{
403 kal_uint8 ActNAIEntryIndex;
404 kal_uint8 SSLen;
405 kal_uint8 SS[32];
406} HlpSipPapSSParmsT;
407
408typedef struct
409{
410 kal_uint8 NumNAI;
411 HlpSipPapSSParmsT SipPapSSParms[HLP_UIM_MAX_PROFILE_NUM];
412} HlpUim3GPDSipPapSSParmsT;
413
414typedef struct
415{
416 kal_uint8 NAIEntryIndex;
417 kal_uint32 Application;
418 kal_uint8 Priority;
419 kal_uint8 DataRateMode;
420 kal_uint8 DataBearer;
421} HlpUserProfileExtParamsT;
422
423typedef struct
424{
425 kal_uint8 NumNAI;
426 HlpUserProfileExtParamsT UppExtParams[HLP_UIM_MAX_PROFILE_NUM];
427} HlpUim3GPDUserProfileExtT;
428
429typedef struct
430{
431 kal_uint16 InitNeighborSolicitDelayTime;
432 kal_uint16 SolicitInterval;
433 kal_uint16 ReSolicitInterval;
434 kal_uint16 MaxSolicitAttempt;
435 kal_uint16 MaxReSolicitAttempt;
436 kal_uint16 PreRAExpiryReSolicitTime;
437 kal_uint8 IidInfo[8];
438 kal_uint8 Flags;
439} HlpUim3GPDIpv6capT;
440
441typedef struct
442{
443 kal_uint8 Flags;
444 kal_uint8 KeepAliveIdleTimer;
445} HlpUim3GPDTcpConfigT;
446
447typedef struct
448{
449 kal_uint8 DataDormTimer;
450 kal_uint8 EpzidTypeInfo;
451 kal_uint8 HystActTime;
452} HlpUim3GPDDgcT;
453
454typedef struct
455{
456 kal_uint8 MaxNaiLen;
457 kal_uint8 MaxSsLen;
458 kal_uint8 AuthAlgo;
459} HlpUimHrpdAccessAuthCapT;
460
461typedef struct
462{
463 kal_uint8 NaiLen;
464 kal_uint8 Nai[HLP_MAX_USRID_LEN];
465 kal_uint8 AuthAlgo;
466} HlpUimHrpdAccessAuthUppT;
467
468typedef struct
469{
470 /* this field indicates the EFcst, EFust, EFest file be used or not
471 * used only for UIM file test critical checking
472 * KAL_FALSE, not use the files
473 * KAL_TRUE, use the files
474 * default value should be KAL_FALSE
475 */
476 kal_bool TurnOnCheck;
477 kal_bool SipEnabled;
478 kal_bool MipEnabled;
479 kal_bool HrpdEnabled;
480 kal_bool Msg3gpdExtEnabled;
481 kal_bool Ipv6Enabled;
482 /* EFust, 6F38, byte5.bit3 */
483 kal_bool UstAclEnabled;
484 /* EFest, 6F56, byte1.bit3 */
485 kal_bool EstAclEnabled;
486} HlpUimServiceTableT;
487
488typedef struct
489{
490 kal_bool Flag;
491 kal_uint16 FileId[2];
492 kal_bool IsNeededForCTCard;
493} HlpUimFileTableT;
494
495typedef struct
496{
497 /*-------------card status----------------*/
498 kal_uint8 CardStatus;
499 /*-------------card index----------------*/
500 sim_interface_enum sim_index;
501 /*-------------card type-----------------*/
502 kal_bool is_uicc_card;
503 kal_bool is_omh_card;
504 kal_bool is_ct_card;
505 /*-------------file read flag-------------*/
506 /* read index point to next file index */
507 kal_uint8 ReadIndex;
508 kal_bool ReadDone;
509 /* this flag is ugly! to solve the duplicated 0x6F56 EF ID
510 * in RUIM/CSIM, it's EFhrpdcap, in USIM, it's EFest
511 * in HLP_UIM_FILE_CHANGED_MSG, if 0x6F56 received, both files are read
512 * EFhrpdcap will always be handled before EFest
513 * default value is KAL_FALSE, once EFhrpdcap is handled, this flag is set to KAL_TRUE
514 * after the whole read procedure is finished, this flag is reset to KAL_FALSE
515 */
516 kal_bool Cur6F56IsUsimFile;
517
518 /*-------------service table--------------*/
519 HlpUimServiceTableT srvtbl;
520
521 /*-------------operation mode-------------*/
522 /* EFme3gpdopc */
523 kal_uint8 opc;
524 /* EF3gpdopm */
525 kal_uint8 opm;
526
527 /*----------------simpe IP----------------*/
528 /* EFsipsp */
529 kal_uint8 sipsp;
530 /* EFsipcap */
531 HlpUim3GPDSipCapT sipcap;
532 /* EFsipupp */
533 HlpUim3GPDSipUserProfileT sipupp;
534 /* EFsippapss */
535 HlpUim3GPDSipPapSSParmsT sippapss;
536
537 /*----------------mobile IP----------------*/
538 /* EFmipsp */
539 HlpUim3GPDMipStatusT mipsp;
540 /* EFmipcap */
541 HlpUim3GPDMipCapT mipcap;
542 /* EFmipupp */
543 HlpUim3GPDMipUserProfileT mipupp;
544
545 /*-------------extension files-------------*/
546 /* EFmipflags */
547 kal_uint8 mipflags;
548 /* EF3gpduppext */
549 HlpUim3GPDUserProfileExtT uppext;
550 /* EFtcpconfig */
551 HlpUim3GPDTcpConfigT tcpcfg;
552 /* EFdgc */
553 HlpUim3GPDDgcT dgc;
554 /* EFipv6cap */
555 HlpUim3GPDIpv6capT ipv6cap;
556
557 /*---------HRPD Access Auth files---------*/
558 /* EFhrpdcap */
559 HlpUimHrpdAccessAuthCapT hrpdcap;
560 /* EFhrpdupp */
561 HlpUimHrpdAccessAuthUppT hrpdupp;
562 /* EFimsi */
563 IMSIType imsi;
564 kal_bool bUSIMIMSINeedUpdate;
565 /* EFad */
566 kal_uint8 MncLen;
567} HlpUimFilesT;
568
569typedef void (*hlp_timer_expiry_func)(hlp_timer_enum timer_id);
570
571typedef struct
572{
573 eventid id;
574 hlp_timer_enum timer_id;
575 kal_bool pending;
576 kal_uint32 duration_ms;
577 hlp_timer_expiry_func expiry_func;
578}hlp_es_struct;
579
580typedef struct
581{
582 peer_buff_struct *head;
583 peer_buff_struct *tail;
584}hlp_sll_ul_queue_struct;
585
586typedef struct
587{
588 peer_buff_struct *head;
589 peer_buff_struct *tail;
590 kal_uint8 pdn_id;
591}hlp_sll_dl_queue_struct;
592
593/*----------------------------------------------------------------------------
594 Global Variable Declarations
595----------------------------------------------------------------------------*/
596extern kal_bool PppRenego;
597
598/*----------------------------------------------------------------------------
599 Function Declarations
600----------------------------------------------------------------------------*/
601void HlpConnectionIndMsg(void *MsgDataP, kal_bool atDONetwork);
602void Hlp1XMTConnInNullStIndMsg(void *MsgDataP);
603void HlpConnectionReleasedIndMsg(void *MsgDataP);
604void HlpConnectionFailedIndMsg(void *MsgDataP);
605void HlpPppConnectReqMsg(void *MsgDataP);
606void HlpPppDisconnectReqMsg(void *MsgDataP);
607void HlpPppUpdateReqMsg(void *MsgDataP);
608void HlpPppReleaseReqMsg(void *MsgDataP);
609void HlpPppStatusMsg(void *MsgDataP);
610void HlpUmAppInstance(void * MsgDataPtr);
611void HlpPppAnswerReqMsg(void *MsgDataP);
612void HlpRlpResetIndMsg(void *MsgDataP);
613void HlpFwdDataIndSig(void);
614void HlpRevDataIndSig(void);
615void HlpRlpRevDataRspMsg(void *MsgDataP);
616void HlpRlpIdleIndMsg(void *MsgDataP);
617void HlpRlpOpenFailedMsg(void *MsgDataP);
618void HlpRlpRevDataRspMsg(void *MsgDataP);
619void HlpUpbConnStatusMsg(void *MsgDataP);
620void HlpUpbConnReqMsg(void* MsgDataP);
621void HlpAiwBeginUdpMsg(void* MsgDataP);
622void HlpUpbEndMsg(void* MsgDataP);
623void HlpUpbSendDataMsg(void* MsgDataP);
624void HlpUpbDormantReq(void *MsgDataP);
625void HlpUpbRecvDataRspMsg(void *MsgDataP);
626void HlpRmPppBeginMsg(void* MsgDataP);
627void HlpRmDisconnectInd(void *MsgDataP);
628void HlpRmConnectStatusMsg(void *MsgDataP);
629void HlpServiceStatusMsg(void *MsgDataPtr);
630void HlpUmPppBeginMsg(void* MsgDataP);
631void HlpUmRestartRlpMsg(void* MsgDataP);
632void HlpUmDisconnMsg(void* MagDataP);
633void HlpDormantReconnectReqMsg(void* MagDataP);
634void HlpUmAbortReqMsg(void* MagDataP);
635void HlpMipUmPppStatusMsg(void * MsgDataP);
636void HlpPktZoneIdMsg(void* MagDataP);
637void HlpTimerExpiredMsg(void* MsgDataP);
638void HlpTestBrowserConnectMsg(void* MsgDataP);
639void HlpTcpbConnReqMsg(void* MsgDataP);
640void HlpTcpbConnEndMsg(void* MsgDataP);
641void HlpTcpbDataSendReqMsg(void* MsgDataP);
642void HlpTcpbDataRecvRspMsg(void *MsgDataP);
643void HlpSocketCreateMsg(void *MsgDataP);
644void HlpSocketBindMsg(void *MsgDataP);
645void HlpSocketConnectMsg(void *MsgDataP);
646void HlpSocketCloseMsg(void *MsgDataP);
647void HlpSocketSendReqMsg(void *MsgDataP);
648void HlpSocketListenMsg(void *MsgDataP);
649void HlpSocketOptionMsg(void *MsgDataP);
650void HlpSocketShutDownMsg(void *MsgDataP);
651void HlpSocketLingerMsg(void *MsgDataP);
652void HlpUartReadyMsg(void *MsgDataP);
653void HlpMipInit(void);
654void HlpMipRrpMsg(void *MsgDataP);
655void HlpMipAgentAdvMsg(void *MsgDataP);
656void HlpMipUmPppStatusMsg(void *MsgDataP);
657void HlpOosaIndMsg(void *MsgDataPtr);
658void HlpSystemQueryRspMsg(void* MsgDataPtr);
659void HlpSysSelPrefSetMsg(void* MsgDataPtr);
660void HlpUmPppReNegotiationMsg(void *MsgDataPtr);
661void HlpSetNetworkOrRelayModeMsg(void *MsgDataPtr);
662void HlpAlmpConnReleased(void);
663void HlpAlmpConnFailed(void);
664void HlpXoffRspRcvdMsg(void);
665#ifdef KDDI_EXTENSIONS
666extern void HlpDORetryTmrExp(void);
667#endif
668void HlpDormantReqMsg(void);
669void HlpValCtaUpdateReqMsg(HlpValCtaUpdateReqMsgT* MsgDataPtr);
670void HlpSetHoFlag(kal_uint8 direction);
671kal_uint8 HlpGetHoFlag(void);
672extern void HlpVoiceCallReleaseIndMsg(void);
673#ifdef MTK_DEV_C2K_IRAT
674void HlpSetHO21xFlag(kal_bool bHO21xEnabledFlag);
675kal_bool HlpGetHO21xFlag(void);
676void HlpSetByPassThresholdCheckFlag(kal_bool bNewFlag);
677kal_bool HlpGetByPassThresholdCheckFlag(void);
678#endif /* MTK_DEV_C2K_IRAT */
679void HlpValDMUVSetMsg(void *MsgDataPtr);
680void HlpDOInactivityExprMsg(void);
681#ifdef MTK_DEV_C2K_IRAT
682void HlpSendPppMtu2Val(void);
683#endif
684HlpDataChRetStatus HlpWrite(RmDataCpBuffDescT *Buff);
685HlpDataChRetStatus HlpRead(RmDataCpBuffDescT *Buff);
686kal_uint16 GetRevHlpDataSize(void);
687kal_uint16 HlpCheckRxReadyStatus(void);
688void HlpAccessStreamStart(void);
689void HlpGetPPPConnParams(PppConnParamsT *connPtr);
690
691/* System ID Change message function prototypes */
692void HlpSidNidChangeIndMsg(void *MsgDataPtr);
693void HlpPktZoneIdChangeIndMsg(void *MsgDataPtr);
694void HlpSubnetIdChangeIndMsg(void *MsgDataPtr);
695void HlpColorCodeIndMsg(void *MsgDataP);
696
697/* Hlpdbm function prototypes */
698void HlpDbmHspdSegInitReq(void);
699void HlpNvHspdSegDataReadHandler(void);
700void HlpParmSetMsg(void *MsgDataPtr);
701void hlp_elt_set_parm_msg(ilm_struct* ilm_ptr, HlpParmOperationId ParmId);
702
703void HlpNvSecureDataReadHandler(void);
704void HlpParmGetMsg(void *MsgDataPtr);
705void hlp_elt_get_parm_msg(ilm_struct* ilm_ptr, HlpParmOperationId ParmId);
706void HlpDbmGetEsnMeidRspMsg(void *MsgDataPtr);
707void HlpDmuSecureDataChangedMsg(void *MsgDataP);
708void HlpPswMDNUpdatedMsg(void *MsgDataPtr);
709void HlpSetMipPasswordMsg(void *MsgDataPtr);
710kal_uint8 HlpDbmGetMipMode(void);
711kal_uint8 HlpDbmGetHaAuthMode(void);
712kal_uint8 HlpDbmGetVJCompressionEnabled(void);
713void HlpDbmGetPppUmCfg(HlpPppUmCfg_APIStruct *HlpPppUmCfg);
714void HlpDbmGetPppRmCfg(HlpPppRmCfg_APIStruct *HlpPppRmCfg);
715void HlpDbmGetTcpCfg(HlpTcpCfg_APIStruct *HlpTcpCfg);
716kal_bool HlpDbmGetHspdLocked(void);
717void HlpNvEHrpdDataReadHandler(void);
718
719void HlpDormancyTimersSetMsg(void *MsgDataPtr);
720void HlpDORetryTimersSetMsg(void *MsgDataPtr);
721
722/* Timer expiration function prototypes */
723void HlpTimerStartReq(hlp_timer_enum timer_id);
724void HlpTimerKillReq(hlp_timer_enum timer_id);
725void HlpTimerSetDuration(hlp_timer_enum timer_id, kal_uint32 duration);
726void HlpTimerSetPending(hlp_timer_enum timer_id, kal_bool pending);
727kal_bool HlpTimerIsActive(hlp_timer_enum timer_id);
728kal_bool HlpTimerIsPending(hlp_timer_enum timer_id);
729kal_uint32 HlpTimerGetDuration(hlp_timer_enum timer_id);
730void WfrFastConnTimeUp(hlp_timer_enum timer_id);
731void HlpWfsSysRspTimeup(hlp_timer_enum timer_id);
732void HlpWfrUimAuthRspTimeup(hlp_timer_enum timer_id);
733void WfrRmConnectionTimeUp(hlp_timer_enum timer_id);
734void DataRetryTimeUp(hlp_timer_enum timer_id);
735void DoRetryTimeUp(hlp_timer_enum timer_id);
736void HlpWaitForIratReleaseTimerExp(hlp_timer_enum timer_id);
737void HlpWfrFallBack1XConnectTimeUp(hlp_timer_enum timer_id);
738void HlpSetC109LowExp(hlp_timer_enum timer_id);
739void HlpProcThrottlingTmrExp(hlp_timer_enum timer_id);
740void DormantReconnectBackOffTimerUp(hlp_timer_enum timer_id);
741void HlpPppConnectBackOffTimerExp (hlp_timer_enum timer_id);
742void HlpFiveMinsTimeOut(hlp_timer_enum timer_id);
743void HlpForceCpIdle(hlp_timer_enum timer_id);
744void HlpCloseConnAtDO(hlp_timer_enum timer_id);
745void HlpMipTimerRrpRegTimeUp(hlp_timer_enum timer_id);
746void HlpMipTimerRrpDeregTimeUp(hlp_timer_enum timer_id);
747void HlpMipTimerRrqRegTimeUp(hlp_timer_enum timer_id);
748void HlpMipTimerAgentAdvTimeUp(hlp_timer_enum timer_id);
749void HlpMipTimerLifetimeTimeUp(hlp_timer_enum timer_id);
750void HlpIp6TestTmrExp(hlp_timer_enum timer_id);
751void natTimerExpire(hlp_timer_enum timer_id);
752void HlpPendingRedailA12TmrExp(hlp_timer_enum timer_id);
753void HlpSetPendingRedailA12Flag(kal_bool flag);
754kal_bool HlpGetPendingRedailA12Flag(void);
755void HlpRsvasAbortReqTimeUp(hlp_timer_enum timer_id);
756
757/* Throttling function prototypes */
758void HlpThrottSetEnable(kal_bool enable);
759kal_bool HlpThrottGetEnable(void);
760void HlpThrottSetCurrSys(CamSysTypeT system);
761CamSysTypeT HlpThrottGetCurrSys(void);
762kal_bool HlpThrottIsActive(CamSysTypeT SystemType);
763void HlpThrottLogSysId(CamSysTypeT SystemType);
764void HlpThrottInit(void);
765void HlpThrottResetAll(void);
766void HlpThrottStop(CamSysTypeT SystemType);
767void HlpThrottStart(void);
768
769/* IPv6 function prototypes */
770#ifdef CBP7_EHRPD
771kal_bool EapAkaFailureByNwkRejFlagGet(void);
772void EapAkaFailureByNwkRejFlagSet(kal_bool bRejByNetworkNotification);
773#endif
774
775void HlpFwdPktDataIndSig( void );
776
777/* PPP free mode support */
778void HLPRouteTypeSet(HlpPppRouteTypeE type);
779HlpPppRouteTypeE HLPRouteTypeGet(void);
780/* TCP/IP filter-mux function prototypes */
781void IP_Add_TCP_FilterMux(MuxInfo *Info, kal_uint32 address, kal_uint16 port);
782void IP_Delete_TCP_FilterMux(MuxInfo *Info, kal_uint32 address, kal_uint16 port);
783kal_bool CheckTcpPacketWithTcpFilterMux(MuxInfo *Info, kal_uint32 address, kal_uint16 port, kal_bool fragmentIpPkt);
784void IP_Init_TCP_FilterMux(MuxInfo *Info);
785
786/* UIM function prototypes */
787void HlpUimNotifyRegisterMsg(void *MsgDataPtr);
788void HlpDbmPowerCycleMsg(void);
789void HlpUim3GPDDataUpdate(void);
790void HlpUimGet3GPDOpcRspMsg(void *MsgDataPtr);
791void HlpUimUpdate3GPDOpcRspMsg(void *MsgDataPtr);
792void HlpUimGet3GPDOpmRspMsg(void *MsgDataPtr);
793void HlpUimUpdate3GPDOpmRspMsg(void *MsgDataPtr);
794void HlpUimGet3GPDSipCapRspMsg(void *MsgDataPtr);
795void HlpUimGet3GPDMipCapRspMsg(void *MsgDataPtr);
796void HlpUimGet3GPDSipUPPRspMsg(void *MsgDataPtr);
797void HlpUimGet3GPDMipUPPRspMsg(void *MsgDataPtr);
798void HlpUimGet3GPDSipSPRspMsg(void *MsgDataPtr);
799void HlpUimUpdate3GPDSipSPRspMsg(void *MsgDataPtr);
800void HlpUimGet3GPDMipSPRspMsg(void *MsgDataPtr);
801void HlpUimUpdate3GPDMipSPRspMsg(void *MsgDataPtr);
802void HlpUimGet3GPDSipPapSSRspMsg(void *MsgDataPtr);
803void HlpUimUpdate3GPDSipPapSSRspMsg(void *MsgDataPtr);
804void HlpUimUpdate3GPDImsiRspMsg(void *MsgDataPtr, kal_bool NeedToReadOtherFile);
805void HlpUimUpdate3GPDAdRspMsg(void *MsgDataPtr);
806kal_uint8 HlpUimGetMipMnHaAuthAlgorithm(void);
807
808/* System ID function prototypes */
809void HlpSetCurrentSidNid(kal_uint16 sid, kal_uint16 nid);
810void HlpSetCurrentPid(kal_uint8 pid);
811kal_uint8 *HlpGetCurrentSidPid(void);
812void HlpSetCurrentSubnetId(kal_uint8 *pSubnetId);
813kal_uint8 *HlpGetCurrentSubnetId(void);
814void HlpColorCodeIndMsg(void *MsgDataP);
815kal_uint16 HlpGetDormancyTimer(kal_bool bForRDUD);
816IMSIType HlpGetImsiInfoInUimCntx(void);
817kal_uint8 HlpGetMncLenInUimCntx(void);
818kal_bool HlpCheckImsiInfoNeedUpdate(void);
819void HlpWaitForExtMsg(kal_uint32 expMsgId, ilm_struct *ilm);
820#ifdef CBP7_EHRPD
821void HlpGetImsiFromUsim(void);
822#endif
823void HlpSendTchSetupStatusToCss(CssTchSetupStatusT status);
824void HlpSendConnStatusMsg2Val(ValWmcConnStatusT connStatus);
825void HlpSendPppConnStatusMsg2Val(ValHlpPppConnStatusMsgT *ConnStatus);
826void HlpSendPppConnStatusMsg2ValAtc(ValHlpPppConnStatusMsgT *ConnStatus);
827
828void hlp_nvram_read_cnf_handler(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
829void hlp_nvram_write_cnf_handler(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
830void HlpProcessRevDataFromHIF(void* MsgDataP);
831AlmpStateT HlpGetAlmpState(void);
832void HlpTcpPacketTagPureAck(kal_uint8 *pIpPacket, socketInfoT *dstSocketPtr);
833kal_uint16 PPP_HeaderEncode_CopyFree(kal_uint16 prot, kal_uint8 *data, kal_bool acomp, kal_bool pcomp, kal_uint8 pdn_id);
834void HlpHandleDnsQueryNoNwRsp(kal_uint8 *pIpPacket, kal_bool *pToRelPpp);
835HlpRecoverFlagT HlpGetRecoverFlag(void);
836void HlpSetRecoverFlag(HlpRecoverFlagT value);
837kal_bool HlpTransferToLower(char* pStrIn, char* pStrOut, kal_uint32 nLen);
838DialingInfoT* HlpCallInfoGet(void);
839void HlpSendXonXoffToFcp(kal_bool bXOnOff, StreamType StreamID);
840kal_uint8 HlpGetPPPConnParamsCid(void);
841kal_bool HlpUimIsUiccCard(void);
842kal_bool HlpUimIsOmhCard(void);
843void HlpConnectionSuspendCmd(void);
844void HlpConnectionResumeCmd(void);
845void HlpConnectionDisableCmd(void);
846void HlpConnectionResetCmd(void);
847void HlpConnectionFallbackCmd(void);
848
849void HlpSetHOEHRPDEnableFlag(kal_bool bEnable);
850kal_bool HlpGetHOEHRPDEnableFlag(void);
851sim_interface_enum HlpUimGetCurSimIndex(void);
852kal_uint16 HlpRmCheckRxReadyStatus(void);
853
854/*****************************************************************************
855* End of File
856*****************************************************************************/
857#endif
858