FreeCalypso > hg > fc-magnetite
diff src/aci2/mfw/mfw_nm.h @ 3:93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 26 Sep 2016 00:29:36 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/aci2/mfw/mfw_nm.h Mon Sep 26 00:29:36 2016 +0000 @@ -0,0 +1,306 @@ +/* ++--------------------------------------------------------------------+ +| PROJECT: MMI-Framework (8417) $Workfile:: mfw_nm.h $| +| $Author:: Es $Revision:: 1 $| +| CREATED: 07.10.98 $Modtime:: 20.01.00 18:48 $| +| STATE : code | ++--------------------------------------------------------------------+ + + PURPOSE: Type definitions for network management + + HISTORY: + + Feb 15, 2006 ER: OMAPS00065203 x0pleela + Description: Cingular Operator Name Prioritization implementation required + Solution: Incorporated review comments + - Implemented prototypes of 2 new functions set_opn_sel_done() and + get_opn_sel_done() to set and get the current status of the operator selection + - Added T_MFW_NM_OPN opn_read_from as part of T_MFW_NETWORK_STRUCT + structure to avoid use of global variable as per review comments + + Feb 09, 2006 ER: OMAPS00065203 x0pleela + Description: Cingular Operator Name Prioritization implementation required + Solution: Added new enumeration T_MFW_NM_OPN + Added new event E_NM_OPN + Added prototype of newly incorporated functions + + July 14, 2005 REF: CRR 31916 x0021334 + Description: rCI_PercentCOPS() and rAT_PercentCOPS() is not implemented + Solution: rAT_PercentCOPS() is implemented. +*/ + +#ifndef DEF_MFW_NM +#define DEF_MFW_NM + + + +/* #include "phb.h" RSA 20/12/01 - Removed */ +#include"mfw_phb.h" //RSA 20/12/01 - Added +#ifdef FF_2TO1_PS +#include "prim.h" +#else +#include "p_mmreg.val" +#endif +/* + * global constants + */ +#define NM_AUTOMATIC 0 /* automatic mode set */ +#define NM_MANUAL 1 /* manual mode is set */ + + +/* permit maximal value */ + +#define MAX_PLMN 12 /* maximal PLMN number */ + +#define LONG_NAME 26 +#define SHORT_NAME 10 +#define SP_NAME 17 +#define NUMERIC_LENGTH 7 /* 3 digits MCC + 3 digits MNC + '\0' */ + +#define MFW_PLMN_AVAILABLE 0 /* a permitted PLMN */ +#define MFW_PLMN_FORBIDDEN 1 /* a forbidden PLMN */ + +#define MFW_FULL_SERVICE 1 /* definition for services */ +#define MFW_LIMITED_SERVICE 2 +#define MFW_SEARCH_NETWORK 3 +#define MFW_NO_SERVICE 0 + +typedef enum +{ + NEW_PREF_PLMN = 1, /* Add a new entry to the end of the list */ + CHANGE_PREF_PLMN, /* Change the place of two entries */ + INSERT_PREF_PLMN, /* Add a new entry to the list at a given index */ + REPLACE_PREF_PLMN, /* Overwrite an existing entry at a given index */ + DELETE_PREF_PLMN /* Delete an entry from the list */ +} T_MFW_PPLMN_MODE; + +typedef enum +{ + NM_ERR, + NM_OK +} T_MFW_NM_RETURN; + +//x0pleela 08 Feb, 2006 ER: OMAPS00065203 +typedef enum +{ + NM_ROM, /* operator name read from ROM */ + NM_EONS, /* operator name read from EONS */ + NM_CPHS, /* operator name read from ONS */ + NM_NITZ, /* operator name read from NITZ */ + NM_NONE = 255 /* no operator name */ +}T_MFW_NM_OPN; + +//x0pleel 8 Feb, 2006 ER: OMAPS00065203 +#define E_NM_OPN 0x4000 /* Event sent by MFW when operator name is obtained */ + +/* + * events are organised as bitmaps + */ +#define E_NM_FULL_SERVICE 0x0001 +#define E_NM_NO_SERVICE 0x0002 +#define E_NM_LIMITED_SERVICE 0x0004 +#define E_NM_SEARCH_NETWORK 0x0008 +#define E_NM_PLMN_LIST 0x0010 +#define E_NM_NO_NETWORK 0x0020 +#define E_NM_DEREGISTRATION 0x0040 +#define E_NM_PREF_PLMN_LIST 0x0080 +#define E_NM_CHANGE_PPLMN_OK 0x0100 +#define E_NM_CHANGE_PPLMN_ERR 0x0200 +#define E_NM_PPLMN_MEM 0x0400 +#define E_MFW_NET_IND 0x0800 +#define E_MFW_TIME_IND 0x1000 +#define E_NM_CELL_SELECT 0x1001 +#define E_NM_BAND 0x2000 /*SPR919 - SH - added */ + +#define E_NM_ALL_SERVICES /*0x0FFF*/ 0xFFFF /* SPR919 - SH - changed */ + +/* Structures */ + +/* Cell Reselection Structure API 16-04-02 */ +typedef struct +{ + USHORT ci; /* cell identification */ + USHORT lid; /* location identification */ +}T_MFW_CELL_STRUCT; + +typedef struct /* LONG NAME */ +{ + UBYTE dcs; + UBYTE len; /* length of string data */ + UBYTE data[LONG_NAME]; /* string data */ +} T_MFW_LNAME; + +typedef struct /* SHORT NAME */ +{ + UBYTE dcs; + UBYTE len; /* length of string data */ + UBYTE data[SHORT_NAME]; /* string data */ +} T_MFW_SNAME; + +typedef struct /* SERVICE PROVIDER NAME */ +{ + UBYTE dcs; + UBYTE len; /* length of string data */ + UBYTE data[SP_NAME]; /* string data */ + UBYTE dummy; +} T_MFW_SP_NAME; + +typedef struct +{ + SHORT index; +#ifdef NO_ASCIIZ + T_MFW_SP_NAME service_provider; /* service provider name */ + T_MFW_LNAME network_long; /* operator name in long format */ + T_MFW_SNAME network_short; /* operator name in short format */ +#else + UBYTE service_provider[LONG_NAME]; /* service provider name */ + UBYTE network_long [LONG_NAME]; /* operator name in long format */ + UBYTE network_short[SHORT_NAME]; /* operator name in short format */ +#endif + UBYTE network_numeric[NUMERIC_LENGTH]; /* operator name in numeric format */ + UBYTE display_condition; + UBYTE roaming_indicator; /* PLMN in HPLMN or not */ + UBYTE forbidden_indicator; /* PLMN is member of the forbidden PLMN list */ + UBYTE *fieldstrength; /* fieldstrength of PLMN */ + //x0pleela 15 Feb, 2006 ER: OMAPS00065203 + //Added as part of this structure to avoid use of global variable as per review comments + T_MFW_NM_OPN opn_read_from; /* Holds the source id from where operator name was read */ +} T_MFW_NETWORK_STRUCT; + +typedef struct { + UBYTE count; /* number of entries in perferred PLMN list */ + T_MFW_NETWORK_STRUCT *plmn; /* plmn identifications */ +} T_MFW_PREF_PLMN_LIST; /* prefered PLMN list*/ + +typedef struct +{ + UBYTE count; /* number of available PLMNs */ + T_MFW_NETWORK_STRUCT plmn[MAX_PLMN]; /* plmn identifications */ +} T_MFW_PLMN_LIST; + +typedef struct +{ + UBYTE maxRcd; /* maximum preferred PLMN records in SIM card */ + UBYTE usedRcd; /* used preferred PLMN records in SIM card */ +} T_MFW_PPLMN_MEM; + +typedef struct /* data for network name */ +{ + UBYTE dcs; + UBYTE add_ci; + UBYTE num_spare; + UBYTE len; +#ifdef FF_2TO1_PS + UBYTE data[MMREG_MAX_TEXT_LEN]; +#else + UBYTE data[MMR_MAX_TEXT_LEN]; +#endif +} T_MFW_NET_NAME; + +typedef struct /* data buffer for network name */ +{ +#ifdef FF_2TO1_PS + UBYTE mcc[PS_SIZE_MCC]; /* mobile country code */ + UBYTE mnc[PS_SIZE_MNC_MAX]; /* mobile network code */ +#else + UBYTE mcc[SIZE_MCC]; /* mobile country code */ + UBYTE mnc[SIZE_MNC]; /* mobile network code */ +#endif + T_MFW_NET_NAME long_name; /* Network name, long format */ + T_MFW_NET_NAME short_name; /* Network name, short format */ +} T_MFW_NET_IND; + +typedef struct /* data for timer zone */ +{ + UBYTE year; + UBYTE month; + UBYTE day; + UBYTE hour; + UBYTE minute; + UBYTE second; + UBYTE timezone; +} T_MFW_TIME_IND; + +/* + * Network Parameter + */ +typedef union +{ + T_MFW_NETWORK_STRUCT ident; + T_MFW_PLMN_LIST plmns; + T_MFW_PREF_PLMN_LIST pplmns; + T_MFW_PPLMN_MEM pplmn_mem; + T_MFW_NET_IND net_info; + T_MFW_TIME_IND tim_info; + T_MFW_CELL_STRUCT cell_info; /* sbh 29-04-02 - Cell reselection */ +} T_MFW_NM_PARA; + + + +/* + * Prototypes + */ + +int nm_init (void); +MfwHnd nm_create (MfwHnd hWin, MfwEvt event, MfwCb cbfunc); +MfwRes nm_delete (MfwHnd hWin); +void nm_set_mode (U8 mode); +T_MFW nm_get_mode (void); +T_MFW nm_reg_status (void); +void nm_select_plmn (U8 *network); +void nm_avail_plmn_list (void); +void nm_home_plmn (T_MFW_NETWORK_STRUCT *hplmn); +int nm_plnm_list(T_MFW_NETWORK_STRUCT *plmn_list, int start, int count); + +int nm_plnm_list_longnames(char**plmn_ln_list, int start, int count); /*SPR 2635.*/ + +void nm_pref_plmn_list(T_MFW_NETWORK_STRUCT *pplmn, UBYTE count, SHORT start); +T_MFW_NM_RETURN nm_change_pref_plmn(T_MFW_PPLMN_MODE mode, + SHORT index, SHORT index2, + UBYTE *network_numeric); + +T_MFW_NM_RETURN nm_change_pref_plmn_longname(T_MFW_PPLMN_MODE mode,/*SPR 2635.*/ + SHORT index, SHORT index2, + char* network_long); + +T_MFW nm_registration (U8 mode, U8 freq_bands, U8 limited); +void nm_deregistration (void); +void nm_abort_avail_plmn(void); +void nm_exit (void); +T_MFW_NM_RETURN nm_pplmn_mem_req(void); + +//x0pleela 09 Feb, 2006 ER: OMAPS00065203 +//Conversion from ACI souce Id type to MFW souceid type +#ifndef NEPTUNE_BOARD +int nm_decodeSourceId( UBYTE sourceId); +#endif +//To update plmn data after querying COPN +void nm_update_plmn_data( T_MFW_NETWORK_STRUCT *plmn_ident, + T_ACI_OPER_NTRY oper_ntry); +//To query COPN +void nm_get_COPN( T_MFW_NETWORK_STRUCT *plmn_ident ); +//Get operator name from other sources (CPHS or NITZ or ROM) +void nm_get_opername(T_MFW_NETWORK_STRUCT * plmn_ident); +//gets operator name from network +void nm_get_network_data(T_MFW_NETWORK_STRUCT *plmn_netw_data); + +//x0pleela 15 Feb, 2006 ER: OMAPS00065203 +//sets opn_sel_done flag to TRUE or FALSE +void set_opn_sel_done( UBYTE opn_selected ); +//returns the current value of flag opn_sel_done +UBYTE get_opn_sel_done( void ); + +#ifdef NO_ASCIIZ +void nm_get_spn (T_MFW_SP_NAME *spn); +#else +/* PATCH PMC 000804 */ +void nm_get_spn (char *); +/* END PATCH PMC */ +#endif +void nm_abort_registraion(void); + +// July 14, 2005 REF: CRR 31916 x0021334 +// Prototype for new common function 'nm_Plus_Percent_COPS()' +void nm_Plus_Percent_COPS (S16 last_ind, T_ACI_COPS_OPDESC *operLst); +#endif +