blob: 7944b5e1def15d260d1b965aff5e97fbf0156f28 [file] [log] [blame]
#ifndef LIBZTE_PBM
#define LIBZTE_PBM
//#include "comdef.h"
//typedef unsigned char uint8;
//typedef unsigned short uint16;
//typedef unsigned char boolean;
#ifndef uint8
#define uint8 unsigned char
#endif
#ifndef uint16
#define uint16 unsigned short
#endif
#ifndef boolean
#define boolean unsigned char
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
//db path
#ifdef _MBB_OS_UCLINUX
#define ZTE_PBM_DB_DIR "/mnt/jffs2/etc_rw/config"
#define ZTE_PBM_DB_PATH "/mnt/jffs2/etc_rw/config/pbm.db"
#else
#define ZTE_PBM_DB_DIR "/etc_rw/"
//#ifdef WEBS_SECURITY
#define ZTE_PBM_DB_PATH_SEC "/tmp/pbm.db"
//#else
#define ZTE_PBM_DB_PATH "/etc_rw/pbm.db"
//#endif
#endif
#define ZTE_DB_PBM_TABLE "pbm"
#define ZTE_DB_PBM_DEVICE_TABLE "pbm_device"
#define ZTE_DB_PBM_SIM_TABLE "pbm_sim"
#define ZTE_DB_PBM_SIM_CAPABILITY_TABLE "pbm_sim_capability"
#define ZTE_DB_PBM_DEVICE_CAPABILITY_TABLE "pbm_device_capability"
#define MAX_NUMBER_OF_BYTES_FOR_SQL 1024
//socket parameters
//socket path
#ifndef ZTE_PBM_PATH
#define ZTE_PBM_PATH "zte_pbm"
#endif
//socket buffer size
#ifndef ZTE_SOCKET_DATA_BUF_MAX
#define ZTE_SOCKET_DATA_BUF_MAX 1024
#endif
//socket max liscen num
#ifndef ZTE_SOCKET_MAX_LISCEN_NUM
#define ZTE_SOCKET_MAX_LISCEN_NUM 50
#endif
//web ui pbm
#ifndef PBM_MAX_DEL_LEN
#define PBM_MAX_DEL_LEN 50
#endif
#ifndef ZTE_PB_INDEX_MAX
#define ZTE_PB_INDEX_MAX 500
#endif
#ifndef ZTE_WEB_PBM_REC_LEN
#define ZTE_WEB_PBM_REC_LEN 5
#endif
#ifndef PBM_WEB_MAX_CHAR_LEN
#define PBM_WEB_MAX_CHAR_LEN ZTE_WEB_PBM_REC_LEN*ZTE_PB_INDEX_MAX
#endif
//number length
#ifndef PBM_MAX_NUM_LENGTH
#define PBM_MAX_NUM_LENGTH 40
#endif
#ifndef PBM_NUM_SIZE
#define PBM_NUM_SIZE (PBM_MAX_NUM_LENGTH+2) /* + and null for string */
#endif
//name length
#ifndef PBM_MAX_TEXT_LENGTH
#define PBM_MAX_TEXT_LENGTH 90
#endif
#ifndef PBM_TEXT_SIZE_CHARS
#define PBM_TEXT_SIZE_CHARS (PBM_MAX_TEXT_LENGTH+1) /* Null terminated string */
#endif
#ifndef PBM_TEXT_SIZE_BYTES
#define PBM_TEXT_SIZE_BYTES (PBM_TEXT_SIZE_CHARS*sizeof(uint16)) /* size in bytes */
#endif
//the max numbers of record in modem location
#define PBM_PC_MAX_RECORD 100
#define PBM_OPERATE_SUC "0"
#define PBM_LOADING "1"
#define PBM_NEWING "2"
#define PBM_DELING "3"
#define PBM_MUT_DELING "4"
#define PBM_ALL_DELING "5"
#define PBM_LOAD_ERROR "6"
#define PBM_NEW_ERROR "7"
#define PBM_DEL_ERROR "8"
#define PBM_NEW_ERROR_MEM_FULL "9"
#define PBM_ERROR_CONVERT_CHEST "10"
#define PBM_LOCATION_IS_NULL "11"
#define ZTE_SUPPORT_SIM_PBM "12"
#define ZTE_SUPPORT_USIM_PBM "13"
#define ZTE_PBM_ERROR "14"
#define PBM_MUL_DEL_PART_SUC "15"
#define ZTE_PBM_NVCFG_LEN 15
//the nvconfig of pbm module
#ifndef ZTE_PBM_NV
#define ZTE_PBM_NV "pbm_write_flag"
#endif
#ifndef ZTE_PBM_GROUP_NV
#define ZTE_PBM_GROUP_NV "pbm_group"
#endif
#ifndef ZTE_SUPPORT_PBM_NV
#define ZTE_SUPPORT_PBM_NV "support_pbm_flag"
#endif
#ifndef ZTE_PBM_INIT_NV
#define ZTE_PBM_INIT_NV "pbm_init_flag"
#endif
//the location of pbm in web ui
//#define PBM_LOCATION_DEVICE 1
//#define PBM_LOCATION_SIM 0
typedef enum
{
PBM_LOCATION_SIM = 0, //sim card only,exsit in database
PBM_LOCATION_DEVICE = 1, //device only,exit in database
PBM_LOCATION_ALL = 2, //sim card and device, not exsit in database, only use in pbm code
PBM_LOCATION_GROUP = 3, //group in device,for example:common,family and so on,not exsit in database, only use in pbm code
PBM_LOCATION_MAX
} zte_pbm_location_e_type;
typedef enum
{
ZTE_PBM_FAILURE = -1,
ZTE_PBM_SUCCESS = 0,
ZTE_PBM_NOT_SUPPORT = 1, //do not support web ui pbm
ZTE_PBM_MAX
} zte_pbm_return_e_type;
typedef struct
{
int sim_type;
int max_record_number;
int used_record_number;
int max_name_len;
int max_number_len;
int max_anr_num;
int max_anr_len;
int max_anr1_num;
int max_anr1_len;
int max_email_num;
int max_email_len;
int max_sne_len;
} zte_pbm_sim_capability_s_type;
typedef struct
{
int max_record_number;
int used_record_number;
} zte_pbm_device_capability_s_type;
//////*******///these structs must define in the libzte_mc.h begin
#ifndef ZTE_MC_PBM_TYPE
#define ZTE_MC_PBM_TYPE
#ifdef ZTE_MC_PBM_TYPE
typedef struct zte_pbm_create_ext_record_s_type
{
int zte_pbm_id; //the id in the pbm table,unique,ASC
int zte_pbm_index;
int zte_pbm_location;
char zte_pbm_name[PBM_TEXT_SIZE_BYTES];
char zte_pbm_number[PBM_NUM_SIZE];
int zte_pbm_type;
char zte_pbm_anr[PBM_NUM_SIZE];
char zte_pbm_anr1[PBM_NUM_SIZE];
char zte_pbm_email[PBM_TEXT_SIZE_BYTES];
//char zte_pbm_sne[PBM_TEXT_SIZE_BYTES];
//char zte_pbm_group[PBM_TEXT_SIZE_BYTES];
char zte_pbm_sne[32];// 91*2 ---> 32 ÔÝʱδÓõ½¸Ã²ÎÊý
char zte_pbm_group[32]; // 91*2 ---> 32
int zte_pbm_del_id;
} zte_pbm_create_ext_record_s_type;
typedef struct zte_pbm_del_multi_records_s_type
{
int zte_del_pbm_id[PBM_MAX_DEL_LEN];
int zte_del_pbm_total;
int zte_del_pbm_location;
int zte_del_pbm_index[PBM_MAX_DEL_LEN];
} zte_pbm_del_multi_records_s_type;
#endif
#endif
//////*******///these structs must define in the libzte_mc.h end
/*
typedef enum zte_pbm_cmd_e_type
{
ZTE_PBM_LOAD_REC_MSG=0,-
ZTE_PBM_WRITE_REC_MSG,-
ZTE_PBM_DEL_A_REC_MSG,-
ZTE_PBM_DEL_MUTI_REC_MSG,-
ZTE_PBM_DEL_ALL_REC_MSG,-
ZTE_PBM_SLEEP_MSG,
ZTE_PBM_WAKEUP_MSG,
ZTE_PBM_LOAD_WITHOUT_SIM_MSG,-
ZTE_PBM_MAX_MSG,
} zte_pbm_cmd_e_type;
*/
/*
typedef union zte_pbm_data_u_type
{
zte_pbm_create_ext_record_s_type zte_new_pbm_data;
zte_pbm_del_multi_records_s_type zte_del_pbm_data;
} zte_pbm_data_u_type;
*/
/*
typedef struct zte_pbm_msg_s_type
{
zte_pbm_cmd_e_type zte_pbm_msg;
zte_pbm_data_u_type zte_pbm_data;
} zte_pbm_msg_s_type;
*/
typedef struct zte_pbm_header_s_type
{
int zte_id; //the id in the pbm table,unique,ASC
int zte_index;
int zte_location;
} zte_pbm_header_s_type;
typedef struct
{
uint8 page;
uint8 num_per_page;
zte_pbm_location_e_type location;
boolean asc_flag;
uint8 order_by;
} zte_pbm_query_req_s_type;
typedef struct
{
uint8 count;
zte_pbm_create_ext_record_s_type data[0];/*lint !e1501*/
} zte_pbm_query_resp_s_type;
//////*******///these functions must define in the libzte_mc.h begin
#ifndef ZTE_MC_PBM_TYPE
#define ZTE_MC_PBM_TYPE
#ifdef ZTE_MC_PBM_TYPE
//void zte_mc_pbm_load_rec();
//void zte_mc_pbm_write_rec(zte_pbm_create_ext_record_s_type *pbm_recv_record);
//void zte_mc_pbm_del_a_rec(zte_pbm_del_multi_records_s_type *pbm_recv_record);
//void zte_mc_pbm_del_multi_recs(zte_pbm_del_multi_records_s_type *pbm_recv_record);
//void zte_mc_pbm_del_all_recs(zte_pbm_del_multi_records_s_type *pbm_recv_record);
//void zte_mc_pbm_load_if_no_sim();
void aaa(int i);
#endif
#endif
//////*******///these functions must define in the libzte_mc.h end
//void zte_mc_pbm_sleep_wakeup(zte_pbm_cmd_e_type pbm_msg_type);
//////the interface for get pbm data and capability for web server
int zte_libpbm_get_capability
(
zte_pbm_query_req_s_type *req,
zte_pbm_sim_capability_s_type *sim_para,
zte_pbm_device_capability_s_type *device_para
);
int zte_libpbm_get_rec_data (zte_pbm_query_req_s_type *req, zte_pbm_query_resp_s_type*resp);
int zte_libpbm_get_name_by_number(char *pbm_number, char *pbm_name);
#endif