📄 mfw_sim.c
字号:
/*
+--------------------------------------------------------------------+
| PROJECT: MMI-Framework (8417) $Workfile:: mfw_sim.c $|
| $Author: root $Revision: 1.1.1.1 $|
| CREATED: 13.10.98 $Modtime:: 22.03.00 17:21 $|
| STATE : code |
+--------------------------------------------------------------------+
MODULE : MFW_SIM
PURPOSE : This modul contains the functions for SIM management.
$History:: mfw_sim.c $
* * ***************** Version 43 *****************
* User: MC Date: 14.11.02 Time: 10:40
* Updated in $/BMI/Condat/MS/SRC/MFW
* Changed simlock functions into wrappers for aci_slock functions, and
* removed variables definitions and helper functions rendered obsolete.
*
* ***************** Version 43 *****************
* User: Vo Date: 22.03.00 Time: 17:29
* Updated in $/GSM/Condat/MS/SRC/MFW
* Add new parameter PIN type in structure T_MFW_SIM_STATUS to
* identify PIN type
* Change in SIM lock
*
* ***************** Version 42 *****************
* User: Es Date: 2.03.00 Time: 16:18
* Updated in $/GSM/Condat/MS/SRC/MFW
* use 'aci_delete()' instead of 'aci_ext_init()' to clear the
* primitive routing for mfw_sim. (because other routings may have to
* be preserved!)
*
* ***************** Version 41 *****************
* User: Vo Date: 22.12.99 Time: 16:03
* Updated in $/GSM/Condat/MS/SRC/MFW
* Remove maximum preferred PLMN records and used preferred PLMN
* records in local memory
*
* ***************** Version 40 *****************
* User: Vo Date: 2.12.99 Time: 13:18
* Updated in $/GSM/Condat/MS/SRC/MFW
* New: request of max/used perferred PLMN list
*
* ***************** Version 39 *****************
* User: Vo Date: 17.11.99 Time: 11:37
* Updated in $/GSM/Condat/MS/SRC/MFW
* Bug fix: de-personalisation for SIM lock
* New: SIM inserted
*
* ***************** Version 38 *****************
* User: Vo Date: 21.10.99 Time: 13:26
* Updated in $/GSM/Condat/MS/SRC/MFW
* add response of de-registration
|
| ***************** Version 37 *****************
| User: Le Date: 11.10.99 Time: 16:27
| Updated in $/GSM/Condat/MS/SRC/MFW
|
| ***************** Version 36 *****************
| User: Le Date: 8.10.99 Time: 13:38
| Updated in $/GSM/Condat/MS/SRC/MFW
|
| ***************** Version 35 *****************
| User: Le Date: 4.10.99 Time: 10:33
| Updated in $/GSM/Condat/MS/SRC/MFW
*
* ***************** Version 34 *****************
* User: Es Date: 29.09.99 Time: 11:20
* Updated in $/GSM/DEV/MS/SRC/MFW
* including CFUN_OK enhancement by AK, not fully implemented
*
* ***************** Version 33 *****************
* User: Es Date: 16.09.99 Time: 16:56
* Updated in $/GSM/DEV/MS/SRC/MFW
* reordered include statements due to addons in mfw_phb.h
*
* ***************** Version 32 *****************
* User: Vo Date: 13.09.99 Time: 12:05
* Updated in $/GSM/DEV/MS/SRC/MFW
* change comment
*
* ***************** Version 31 *****************
* User: Vo Date: 12.09.99 Time: 15:32
* Updated in $/GSM/DEV/MS/SRC/MFW
* Bug fix: change PIN
* Bug fix/New: SIM lock
* New: request of PIN status
* New: save preferred language
* New: read group identifier level 1 & 2
*
* ***************** Version 30 *****************
* User: Vo Date: 30.08.99 Time: 14:23
* Updated in $/GSM/DEV/MS/SRC/MFW
* bug fix
* new function
*
* ***************** Version 29 *****************
* User: Vo Date: 9.08.99 Time: 13:11
* Updated in $/GSM/DEV/MS/SRC/MFW
* PIN/PUK count
*
* ***************** Version 28 *****************
* User: Vo Date: 26.07.99 Time: 14:34
* Updated in $/GSM/DEV/MS/SRC/MFW
* Move include file mfw_cb.h
*
* ***************** Version 27 *****************
* User: Vo Date: 21.07.99 Time: 14:41
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 26 *****************
* User: Vo Date: 16.07.99 Time: 13:50
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 25 *****************
* User: Vo Date: 9.07.99 Time: 14:34
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 24 *****************
* User: Vo Date: 2.07.99 Time: 19:03
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 23 *****************
* User: Vo Date: 28.05.99 Time: 9:52
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 22 *****************
* User: Vo Date: 31.03.99 Time: 14:09
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 21 *****************
* User: Es Date: 15.03.99 Time: 18:21
* Updated in $/GSM/DEV/MS/SRC/MFW
* recode
*
* ***************** Version 20 *****************
* User: Vo Date: 25.02.99 Time: 16:47
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 19 *****************
* User: Vo Date: 17.02.99 Time: 19:03
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 18 *****************
* User: Vo Date: 12.02.99 Time: 18:05
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 17 *****************
* User: Vo Date: 12.02.99 Time: 17:46
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 16 *****************
* User: Vo Date: 9.02.99 Time: 14:54
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 15 *****************
* User: Vo Date: 12.01.99 Time: 14:27
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 14 *****************
* User: Es Date: 23.12.98 Time: 15:47
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 12 *****************
* User: Es Date: 18.12.98 Time: 13:05
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 11 *****************
* User: Vo Date: 17.12.98 Time: 14:31
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 10 *****************
* User: Es Date: 8.12.98 Time: 16:53
* Updated in $/GSM/DEV/MS/SRC/MFW
*
* ***************** Version 8 *****************
* User: Vo Date: 24.11.98 Time: 21:40
* Updated in $/GSM/DEV/MS/SRC/MFW
* first successful compilation of MFW
|
| ***************** Version 6 *****************
| User: Le Date: 11.11.98 Time: 13:35
| Updated in $/GSM/DEV/MS/SRC/MFW
|
| ***************** Version 5 *****************
| User: Le Date: 10.11.98 Time: 16:07
| Updated in $/GSM/DEV/MS/SRC/MFW
|
| ***************** Version 4 *****************
| User: Le Date: 10.11.98 Time: 11:08
| Updated in $/GSM/DEV/MS/SRC/MFW
|
| ***************** Version 3 *****************
| User: Le Date: 27.10.98 Time: 15:59
| Updated in $/GSM/DEV/MS/SRC/MFW
|
| ***************** Version 2 *****************
| User: Le Date: 21.10.98 Time: 16:20
| Updated in $/GSM/DEV/MS/SRC/MFW
*/
#define ENTITY_MFW
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#if defined (NEW_FRAME)
#include "typedefs.h"
#include "vsi.h"
#include "pei.h"
#include "custom.h"
#include "gsm.h"
#else
#include "stddefs.h"
#include "custom.h"
#include "gsm.h"
#include "vsi.h"
#endif
#include "p_sim.h"
#include "message.h"
#include "prim.h"
#include "aci_cmh.h"
#include "psa.h"
#include "psa_sim.h"
#include "pcm.h"
#include "mfw_mfw.h"
#include "mfw_nm.h"
#include "mfw_sim.h"
#include "mfw_sima.h"
#include "mfw_simi.h"
#include "mfw_nmi.h"
#include "mfw_nma.h"
#include "mfw_phb.h"
#include "mfw_cm.h"
#include "mfw_cmi.h"
#include "mfw_acie.h"
#include "mfw_sms.h"
#include "mfw_smsi.h"
#include "mfw_win.h"
#include "ksd.h"
#include "psa.h"
#if defined (FAX_AND_DATA)
#include "aci_fd.h"
#endif
#include "cmh.h"
#include "phb.h"
#include "cmh_phb.h"
#include "mfw_ss.h"
#include "mfw_ssi.h"
#include "aci_ext_pers.h" /*MC, SPR 1351 include ACI simlock files*/
#include "aci_slock.h"
#ifdef SIM_TOOLKIT
#include "mfw_sat.h"
#endif
extern BOOL sima_response_cb (ULONG opc, void * data);
extern void simDecodeIMSI (UBYTE *ci, UBYTE li, UBYTE *di);
static int simCommand (ULONG cmd, void *h); /* handle win commands */
extern UBYTE mfw_IMSI []; /* expanded IMSI (ASCIIZ) */
#ifdef SIM_TOOLKIT
char mfwSATLPRefresh;
#endif
static T_MFW_SIM_STATUS sim_status;
static T_MFW_SIM_CONFIG sim_config;
static int pin_flag;
static UBYTE pin_ident;
static UBYTE sim_service_table [10]; /* SIM service table */
static UBYTE sim_stat = SIM_NOT_ACTIVE;
UBYTE pin1_set = MFW_SIM_UNKNOWN;
UBYTE pin2_set = MFW_SIM_ENABLE;
static BOOL sat_update = FALSE;
static int pSlot; /* primitive handler slot */
CallbackCPRI mmi_cprs_cb;
EXTERN MfwHdr * current_mfw_elem;
#if defined (WIN32)
/*
* Only for windows to check several SIM lock combinations
*/
UBYTE sim_lock_mode = 0;
#endif
UBYTE sim_lock_field = NOT_PRESENT_8BIT; /* type of sim lock field */
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417) MODULE : MFW_SIM |
| STATE : code ROUTINE : sim_init |
+--------------------------------------------------------------------+
PURPOSE : initialize SIM manager
*/
int sim_init (void)
{
EF_SIMLCKEXT simlck;
TRACE_FUNCTION("sim_init()");
pin_flag = -1;
pin_ident = MFW_SIM_UNKNOWN;
/*
* install prim handler
*/
pSlot = aci_create(sima_response_cb,NULL);
mfwCommand[MfwTypSim] = (MfwCb) simCommand;
return TRUE;
}
/*
+---------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417) MODULE : MFW_SIM |
| STATE : code ROUTINE : sim_init_sim_insert |
+---------------------------------------------------------------------+
PURPOSE : initialize SIM manager
*/
void sim_init_sim_insert()
{
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417) MODULE : MFW_SIM |
| STATE : code ROUTINE : sim_exit |
+--------------------------------------------------------------------+
PURPOSE : finalize SIM manager
*/
void sim_exit (void)
{
TRACE_FUNCTION("sim_exit()");
/*
* remove prim handler
*/
aci_delete(pSlot);
sim_stat = SIM_NOT_ACTIVE;
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417) MODULE : MFW_SIM |
| STATE : code ROUTINE : sim_create |
+--------------------------------------------------------------------+
PURPOSE : create SIM event handler
*/
T_MFW_HND sim_create (MfwHnd hWin, MfwEvt event, MfwCb cbfunc)
{
MfwHdr *hdr;
T_MFW_SIM *sim_para;
MfwHdr *insert_status =0;
TRACE_FUNCTION("sim_create()");
hdr = (MfwHdr *) mfwAlloc(sizeof(MfwHdr));
sim_para = (T_MFW_SIM *) mfwAlloc(sizeof(T_MFW_SIM));
if (!hdr || !sim_para)
{
TRACE_ERROR("ERROR: sim_create() Mem Alloc Failed.");
if(hdr)
mfwFree((U8*)hdr,sizeof(MfwHdr));
if(sim_para)
mfwFree((U8*)sim_para,sizeof(T_MFW_SIM));
return 0;
}
sim_para->emask = event;
sim_para->handler = cbfunc;
hdr->data = sim_para;
hdr->type = MfwTypSim;
insert_status = mfwInsert((MfwHdr *) hWin,hdr);
if(!insert_status)
{
TRACE_ERROR("ERROR: sim_create() Failed to Install Handler. ");
mfwFree((U8*)hdr,sizeof(MfwHdr));
mfwFree((U8*)sim_para,sizeof(T_MFW_SIM));
return 0;
}
return insert_status;
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417) MODULE : MFW_SIM |
| STATE : code ROUTINE : sim_delete |
+--------------------------------------------------------------------+
PURPOSE : delete SIM event handler
*/
MfwRes sim_delete (MfwHnd h)
{
TRACE_FUNCTION("sim_delete()");
if (!h || !((MfwHdr *) h)->data)
return MfwResIllHnd;
if (!mfwRemove((MfwHdr *) h))
return MfwResIllHnd;
mfwFree((U8 *) ((MfwHdr *) h)->data,sizeof(T_MFW_SIM));
mfwFree((U8 *) h,sizeof(MfwHdr));
return MfwResOk;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -