blob: 7e0703c808a24a951dda22cef6e0af6d5a473a4f [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001#ifndef _MRS_COMMON_SEARCH_H
2#define _MRS_COMMON_SEARCH_H
3
4
5#include "mrs_common_capability.h"
6#include "mrs_as_struct.h"
7#include "mcc_recog_train_data.h"
8
9#define MAX_PREDICT_FREQ_NUM 64 // Only output 64 predict arfcn
10
11
12typedef struct {
13 LOCAL_PARA_HDR
14 kal_uint32 arfcn_table_num;
15 kal_uint32 arfcn_table[350];
16} mrs_arfcn_predict_util_ut_result_ind_struct;
17
18typedef struct {
19 LOCAL_PARA_HDR
20 kal_uint32 arfcn_table_num;
21 kal_uint32 arfcn_table[MAX_PREDICT_FREQ_NUM];
22 kal_bool is_test_mode_on;
23} mrs_arfcn_predict_util_config_struct;
24
25typedef struct{
26 kal_uint32 *table_ptr;
27 kal_uint32 table_max_num;
28 kal_uint32 table_valid_num;
29 kal_uint32 cur_idx;
30} mrs_freq_table_struct;
31
32typedef struct{
33 mrs_freq_table_struct *arfcn_table;
34 mrs_freq_table_struct *skip_freq_table;
35 mrs_freq_table_struct *output_table;
36 kal_uint32 band_list_num;
37 kal_uint16 *band_list;
38} mrs_compose_freq_table_by_bands_struct;
39
40typedef enum
41{
42 MRS_SEARCH_PRIORITY_ENUM_ENDC,
43 MRS_SEARCH_PRIORITY_ENUM_SIGNAL_LEVEL,
44 MRS_SEARCH_PRIORITY_ENUM_LARGE_BANDWIDTH,
45 MRS_SEARCH_PRIORITY_ENUM_LOW_LATENCY,
46 MRS_SEARCH_PRIORITY_ENUM_WITH_NR_NEIGHBOR,
47 MRS_SEARCH_PRIORITY_ENUM_NUM,
48 MRS_SEARCH_PRIORITY_ENUM_INVALID
49} mrs_search_priority_enum;
50
51typedef struct{
52 mrs_search_priority_enum priority;
53 kal_bool is_enable;
54} mrs_search_priority_struct;
55
56typedef struct{
57 mrs_search_priority_struct index[MRS_SEARCH_PRIORITY_ENUM_NUM];
58} mrs_search_priority_list_struct;
59
60typedef struct {
61 LOCAL_PARA_HDR
62 kal_int8 input[MCC_RECOG_LTE_DATA_LEN];
63 maif_mcc_enum maif_mcc;
64} mrs_mcc_ai_result_ind_struct;
65
66kal_int32 mrs_freq_compare(const void *a, const void *b);
67void mrs_plmn_to_l3_inc_plmn(const mrs_plmn_id *mrs_plmn, plmn_id_struct *nwsel_plmn);
68kal_bool mrs_freq_tbl_append_item(mrs_freq_table_struct *freq_table, kal_uint32 input_freq);
69extern void mrs_dump_arfcn_predict_result(kal_uint32 *arfcn_table, kal_uint32 arfcn_table_num);
70extern 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);
71extern kal_bool mrs_is_supported_band(MRS_SIM_INDEX sim_index, kal_uint16 band, rat_enum rat);
72extern kal_bool mrs_compose_freq_table(mrs_freq_table_struct *input_table, mrs_freq_table_struct *skip_table, mrs_freq_table_struct *output_table);
73extern void mrs_remove_duplicate_freq_table_entry(mrs_freq_table_struct *freq_table);
74extern void mrs_get_predict_test_table_by_band(kal_uint32 nr_band, mrs_freq_table_struct *arfcn_table);
75extern void mrs_search_read_nvram_cnf_handler(kal_uint16 nvram_file_id, kal_uint8 *data, kal_uint16 len);
76extern void mrs_search_get_search_priority_list(mrs_search_priority_list_struct *p_list);
77extern void mrs_search_set_search_priority_list(mrs_search_priority_list_struct *p_list);
78#endif