| /*------------------------------------------------------------ |
| (C) Copyright [2006-2014] Marvell International Ltd. |
| All Rights Reserved |
| ------------------------------------------------------------*/ |
| #ifndef __VGC_XML_PARSER_H__ |
| #define __VGC_XML_PARSER_H__ |
| |
| #include <stdio.h> |
| #include <string.h> |
| #include <stdlib.h> |
| #include <sys/sendfile.h> |
| #include <sys/stat.h> |
| #include <fcntl.h> |
| #include <errno.h> |
| #include <unistd.h> |
| #include <telephony/cm.h> |
| #include "cm_def.h" |
| |
| #define CONFIG_LIBMXML (1) |
| #define CONFIG_LIBXML2 (0) |
| |
| #if CONFIG_LIBXML2 |
| #include <libxml/xmlmemory.h> |
| #include <libxml/parser.h> |
| #include <libxml/tree.h> |
| #include <libxml/xmlwriter.h> |
| #include <libxml/xmlreader.h> |
| #elif CONFIG_LIBMXML |
| #include <mxml.h> |
| #endif |
| |
| #if CONFIG_LIBMXML |
| typedef unsigned char xmlChar; |
| #define xmlStrcmp strcmp |
| #endif |
| ////////////////////////////////////////////////////////////////////// |
| // Structs |
| ////////////////////////////////////////////////////////////////////// |
| |
| enum apn_params{ |
| APN_PARAM_CARRIER, |
| APN_PARAM_MCC, |
| APN_PARAM_MNC, |
| APN_PARAM_APN, |
| APN_PARAM_USER, |
| APN_PARAM_SERVER, |
| APN_PARAM_PROXY, |
| APN_PARAM_PORT, |
| APN_PARAM_PASSWORD, |
| APN_PARAM_MMSC, |
| APN_PARAM_MMSPROXY, |
| APN_PARAM_MMSPORT, |
| APN_PARAM_AUTHTYPE, |
| APN_PARAM_TYPE, |
| APN_PARAM_PROTOCOL, |
| APN_PARAM_PCO, |
| APN_PARAM_VENDORSPECIFIC, |
| APN_PARAM_ROAMINGPROTOCOL, |
| APN_PARAM_BEARER, |
| APN_PARAM_LAST |
| }; |
| |
| enum extra_apn_params{ |
| EXTRA_APN_PARAM_AUTOCONNECT, |
| EXTRA_APN_PARAM_ALWAYSON, |
| EXTRA_APN_PARAM_LTEDEFAULT, |
| EXTRA_APN_PARAM_CONFIGONLY, |
| EXTRA_APN_PARAM_TETHERABLE, |
| EXTRA_APN_PARAM_ISHOST, |
| EXTRA_APN_PARAM_DATAONROAMING, |
| EXTRA_APN_PARAM_MTU, |
| EXTRA_APN_PARAM_LAST |
| }; |
| |
| typedef struct apn_data{ |
| enum apn_params entry; |
| char *str; |
| }apn_data; |
| |
| typedef struct extra_apn_data{ |
| enum extra_apn_params entry; |
| char *str; |
| }extra_apn_data; |
| |
| ////////////////////////////////////////////////////////////////////// |
| // Global Variables |
| ////////////////////////////////////////////////////////////////////// |
| #define EXTRA_XML_ROOT_COMPONENT "apns" |
| #define APNS_FULL_FILENAME "/etc/apn/apns-full-conf.xml" |
| #define APNS_OVERIDE_FILENAME "/etc/apn/apns-override.xml" |
| #define APNS_EXTRA_FILENAME "/etc/apn/apns-extra.xml" |
| #define APNS_DEFAULT_FILENAME "/etc/apn/apns-default.xml" |
| |
| ////////////////////////////////////////////////////////////////////// |
| // Prototypes |
| ////////////////////////////////////////////////////////////////////// |
| |
| int set_params(Apn_Info *ptr_apn,char *mcc ,char *mnc ,char *carrier ); |
| int get_default_params(char *docname,Extra_Apn_Info *ex_apn,const char *type); |
| int fillApnInfo (char *mcc,char* mnc,Mnc_Apn *mnc_data); |
| void printApnInfo (Mnc_Apn *mnc_data); |
| void printApn(Apn_Info *apn_ptr); |
| int get_apn_info_byMccMnc(char *docname,Mnc_Apn *get_apn, int option); |
| enum apn_params apn_param_str_to_enum(char *str); |
| enum extra_apn_params ex_apn_param_str_to_enum(char *str); |
| void attachDefaultParams(Mnc_Apn* mnc_data); |
| |
| #if CONFIG_LIBXML2 |
| int set_params(Apn_Info *ptr_apn,char *mcc ,char *mnc ,char *carrier ); |
| int remove_apn(char *mcc ,char *mnc ,char *carrier, int option); |
| void set_overide_props(xmlNodePtr node,Apn_Info *ptr_apn,char *mcc,char *mnc,char *type); |
| int is_file_existed(char *fname ); |
| void set_extra_props(xmlNodePtr node,Extra_Apn_Info *ex_apn,char *mcc,char *mnc,char *type); |
| int set_additional_params(Apn_Info *ptr_apn,char *mcc ,char *mnc ,char *type,int option ); |
| int get_mnc_length(char *docname,char *mcc); |
| #endif |
| #endif |