blob: 7e0703c808a24a951dda22cef6e0af6d5a473a4f [file] [log] [blame]
#ifndef _MRS_COMMON_SEARCH_H
#define _MRS_COMMON_SEARCH_H
#include "mrs_common_capability.h"
#include "mrs_as_struct.h"
#include "mcc_recog_train_data.h"
#define MAX_PREDICT_FREQ_NUM 64 // Only output 64 predict arfcn
typedef struct {
LOCAL_PARA_HDR
kal_uint32 arfcn_table_num;
kal_uint32 arfcn_table[350];
} mrs_arfcn_predict_util_ut_result_ind_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint32 arfcn_table_num;
kal_uint32 arfcn_table[MAX_PREDICT_FREQ_NUM];
kal_bool is_test_mode_on;
} mrs_arfcn_predict_util_config_struct;
typedef struct{
kal_uint32 *table_ptr;
kal_uint32 table_max_num;
kal_uint32 table_valid_num;
kal_uint32 cur_idx;
} mrs_freq_table_struct;
typedef struct{
mrs_freq_table_struct *arfcn_table;
mrs_freq_table_struct *skip_freq_table;
mrs_freq_table_struct *output_table;
kal_uint32 band_list_num;
kal_uint16 *band_list;
} mrs_compose_freq_table_by_bands_struct;
typedef enum
{
MRS_SEARCH_PRIORITY_ENUM_ENDC,
MRS_SEARCH_PRIORITY_ENUM_SIGNAL_LEVEL,
MRS_SEARCH_PRIORITY_ENUM_LARGE_BANDWIDTH,
MRS_SEARCH_PRIORITY_ENUM_LOW_LATENCY,
MRS_SEARCH_PRIORITY_ENUM_WITH_NR_NEIGHBOR,
MRS_SEARCH_PRIORITY_ENUM_NUM,
MRS_SEARCH_PRIORITY_ENUM_INVALID
} mrs_search_priority_enum;
typedef struct{
mrs_search_priority_enum priority;
kal_bool is_enable;
} mrs_search_priority_struct;
typedef struct{
mrs_search_priority_struct index[MRS_SEARCH_PRIORITY_ENUM_NUM];
} mrs_search_priority_list_struct;
typedef struct {
LOCAL_PARA_HDR
kal_int8 input[MCC_RECOG_LTE_DATA_LEN];
maif_mcc_enum maif_mcc;
} mrs_mcc_ai_result_ind_struct;
kal_int32 mrs_freq_compare(const void *a, const void *b);
void mrs_plmn_to_l3_inc_plmn(const mrs_plmn_id *mrs_plmn, plmn_id_struct *nwsel_plmn);
kal_bool mrs_freq_tbl_append_item(mrs_freq_table_struct *freq_table, kal_uint32 input_freq);
extern void mrs_dump_arfcn_predict_result(kal_uint32 *arfcn_table, kal_uint32 arfcn_table_num);
extern void mrs_compose_freq_table_by_bands(rat_enum target_rat,mrs_freq_table_struct *skip_freq_table,mrs_freq_table_struct *output_table,kal_uint32 band_list_num,const kal_uint16 *band_list,MRS_SIM_INDEX sim_index);
extern kal_bool mrs_is_supported_band(MRS_SIM_INDEX sim_index, kal_uint16 band, rat_enum rat);
extern kal_bool mrs_compose_freq_table(mrs_freq_table_struct *input_table, mrs_freq_table_struct *skip_table, mrs_freq_table_struct *output_table);
extern void mrs_remove_duplicate_freq_table_entry(mrs_freq_table_struct *freq_table);
extern void mrs_get_predict_test_table_by_band(kal_uint32 nr_band, mrs_freq_table_struct *arfcn_table);
extern void mrs_search_read_nvram_cnf_handler(kal_uint16 nvram_file_id, kal_uint8 *data, kal_uint16 len);
extern void mrs_search_get_search_priority_list(mrs_search_priority_list_struct *p_list);
extern void mrs_search_set_search_priority_list(mrs_search_priority_list_struct *p_list);
#endif