| #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 |