+#ifdef STATISTIC_MODE
+uint16_t nr5g_fapi_statistic_info_set(
+ nr5g_fapi_performance_statistic_t * fapi_statis_info,
+ uint64_t * tick_val_in,
+ uint16_t start_flag)
+{
+
+ uint64_t tick_val = *tick_val_in;
+ uint64_t cnt = fapi_statis_info->count;
+
+ if (start_flag) {
+ if (cnt) {
+ if (tick_val < fapi_statis_info->min_cycle) {
+ fapi_statis_info->min_cycle = tick_val;
+ } else if (tick_val > fapi_statis_info->max_cycle) {
+ fapi_statis_info->max_cycle = tick_val;
+ }
+
+ fapi_statis_info->avg_cycle += tick_val;
+ fapi_statis_info->count++;
+
+ } else {
+ fapi_statis_info->avg_cycle = tick_val;
+ fapi_statis_info->min_cycle = tick_val;
+ fapi_statis_info->max_cycle = tick_val;
+ fapi_statis_info->count++;
+ }
+ }
+ *tick_val_in = 0;
+ return 0;
+}
+
+uint16_t nr5g_fapi_statistic_info_set_all(
+ )
+{
+
+ nr5g_fapi_statistic_info_set(&fapi_statis_info_wls_get_dl,
+ &tick_total_wls_get_per_tti_dl, g_statistic_start_flag);
+ nr5g_fapi_statistic_info_set(&fapi_statis_info_parse_dl,
+ &tick_total_parse_per_tti_dl, g_statistic_start_flag);
+ nr5g_fapi_statistic_info_set(&fapi_statis_info_wls_send_dl,
+ &tick_total_wls_send_per_tti_dl, g_statistic_start_flag);
+ nr5g_fapi_statistic_info_set(&fapi_statis_info_wls_get_ul,
+ &tick_total_wls_get_per_tti_ul, g_statistic_start_flag);
+ nr5g_fapi_statistic_info_set(&fapi_statis_info_parse_ul,
+ &tick_total_parse_per_tti_ul, g_statistic_start_flag);
+ nr5g_fapi_statistic_info_set(&fapi_statis_info_wls_send_ul,
+ &tick_total_wls_send_per_tti_ul, g_statistic_start_flag);
+
+ return 0;
+}
+
+uint16_t nr5g_fapi_statistic_info_init(
+ )
+{
+
+ NR5G_FAPI_MEMSET(&fapi_statis_info_wls_get_dl,
+ sizeof(nr5g_fapi_performance_statistic_t), 0,
+ sizeof(nr5g_fapi_performance_statistic_t));
+ NR5G_FAPI_MEMSET(&fapi_statis_info_parse_dl,
+ sizeof(nr5g_fapi_performance_statistic_t), 0,
+ sizeof(nr5g_fapi_performance_statistic_t));
+ NR5G_FAPI_MEMSET(&fapi_statis_info_wls_send_dl,
+ sizeof(nr5g_fapi_performance_statistic_t), 0,
+ sizeof(nr5g_fapi_performance_statistic_t));
+ NR5G_FAPI_MEMSET(&fapi_statis_info_wls_get_ul,
+ sizeof(nr5g_fapi_performance_statistic_t), 0,
+ sizeof(nr5g_fapi_performance_statistic_t));
+ NR5G_FAPI_MEMSET(&fapi_statis_info_parse_ul,
+ sizeof(nr5g_fapi_performance_statistic_t), 0,
+ sizeof(nr5g_fapi_performance_statistic_t));
+ NR5G_FAPI_MEMSET(&fapi_statis_info_wls_send_ul,
+ sizeof(nr5g_fapi_performance_statistic_t), 0,
+ sizeof(nr5g_fapi_performance_statistic_t));
+ return 0;
+
+}
+
+uint16_t nr5g_fapi_statistic_info_print(
+ )
+{
+
+ printf("\n");
+ printf
+ ("dl wls get Kcycle (count, min, max, avg) : %d %9.2f %9.2f %9.2f \n",
+ fapi_statis_info_wls_get_dl.count,
+ fapi_statis_info_wls_get_dl.min_cycle / 1000.,
+ fapi_statis_info_wls_get_dl.max_cycle / 1000.,
+ fapi_statis_info_wls_get_dl.avg_cycle /
+ fapi_statis_info_wls_get_dl.count / 1000.);
+ printf
+ ("dl FAPI parse Kcycle (count, min, max, avg): %d %9.2f %9.2f %9.2f \n",
+ fapi_statis_info_parse_dl.count,
+ fapi_statis_info_parse_dl.min_cycle / 1000.,
+ fapi_statis_info_parse_dl.max_cycle / 1000.,
+ fapi_statis_info_parse_dl.avg_cycle / fapi_statis_info_parse_dl.count /
+ 1000.);
+ printf
+ ("dl wls send Kcycle(count, min, max, avg) : %d %9.2f %9.2f %9.2f \n",
+ fapi_statis_info_wls_send_dl.count,
+ fapi_statis_info_wls_send_dl.min_cycle / 1000.,
+ fapi_statis_info_wls_send_dl.max_cycle / 1000.,
+ fapi_statis_info_wls_send_dl.avg_cycle /
+ fapi_statis_info_wls_send_dl.count / 1000.);
+
+ printf
+ ("ul wls get Kcycle(count, min, max, avg) : %d %9.2f %9.2f %9.2f \n",
+ fapi_statis_info_wls_get_ul.count,
+ fapi_statis_info_wls_get_ul.min_cycle / 1000.,
+ fapi_statis_info_wls_get_ul.max_cycle / 1000.,
+ fapi_statis_info_wls_get_ul.avg_cycle /
+ fapi_statis_info_wls_get_ul.count / 1000.);
+ printf
+ ("ul FAPI parse Kcycle(count, min, max, avg) : %d %9.2f %9.2f %9.2f \n",
+ fapi_statis_info_parse_ul.count,
+ fapi_statis_info_parse_ul.min_cycle / 1000.,
+ fapi_statis_info_parse_ul.max_cycle / 1000.,
+ fapi_statis_info_parse_ul.avg_cycle / fapi_statis_info_parse_ul.count /
+ 1000.);
+ printf
+ ("ul wls send Kcycle(count, min, max, avg) : %d %9.2f %9.2f %9.2f \n",
+ fapi_statis_info_wls_send_ul.count,
+ fapi_statis_info_wls_send_ul.min_cycle / 1000.,
+ fapi_statis_info_wls_send_ul.max_cycle / 1000.,
+ fapi_statis_info_wls_send_ul.avg_cycle /
+ fapi_statis_info_wls_send_ul.count / 1000.);
+ return 0;
+
+}
+#else
+uint16_t nr5g_fapi_statistic_info_set(
+ nr5g_fapi_performance_statistic_t * fapi_statis_info,
+ uint64_t * tick_val_in,
+ uint16_t start_flag)
+{
+
+ fapi_statis_info->avg_cycle = 0;
+ *tick_val_in = 0;
+ if(start_flag) *tick_val_in = 0;
+ return 0;
+}
+
+uint16_t nr5g_fapi_statistic_info_set_all(
+ )
+{
+
+
+ return 0;
+}
+
+uint16_t nr5g_fapi_statistic_info_init(
+ )
+{
+
+
+ return 0;
+
+}
+
+uint16_t nr5g_fapi_statistic_info_print(
+ )
+{
+
+ return 0;
+
+}