Profiler tools refinement

Add data analysis operations for profiler tools.

Signed-off-by: Summer Qin <summer.qin@arm.com>
Change-Id: I7aa5132ba9b72ef9780ff8b9af9fa4a4d6636a1c
diff --git a/profiler/export/prof_if_s.h b/profiler/export/prof_if_s.h
index 8438e85..e24b859 100644
--- a/profiler/export/prof_if_s.h
+++ b/profiler/export/prof_if_s.h
@@ -56,7 +56,7 @@
  * "current_counter" - "previous_counter" - "current_cali_value"
  * "current_cali_value" = PROF_GET_CALI_VALUE_FROM_TAG(current_tag)
  */
-#define PROF_GET_CALI_VALUE_FROM_TAG(tag) prof_get_cali_value_veneer(   \
+#define PROF_GET_CALI_VALUE_FROM_TAG(tag) prof_get_cali_value(          \
                                           PROF_GET_CALI_IDX_FROM_TAG(tag))
 
 /* Get data */
@@ -82,6 +82,39 @@
         prof_get_data_continue(tag, data,                               \
         PROF_MAKE_TIMING_TAG(cp, topic, 0, 0), PROF_MASK_TOPIC_CP)
 
+/* Data analysis with calibration */
+#define PROF_DATA_DIFF(cp_a, topic_a, cp_b, topic_b)                    \
+        prof_data_diff(PROF_MAKE_TIMING_TAG((cp_a), (topic_a),          \
+                                            PROF_CALI_IDX_S,            \
+                                            PROF_TYPE_TIMING_LOG),      \
+                       PROF_MAKE_TIMING_TAG((cp_b), (topic_b),          \
+                                            PROF_CALI_IDX_S,            \
+                                            PROF_TYPE_TIMING_LOG))
+
+#define PROF_DATA_DIFF_MIN(cp_a, topic_a, cp_b, topic_b)                \
+        prof_data_diff_min(PROF_MAKE_TIMING_TAG((cp_a), (topic_a),      \
+                                            PROF_CALI_IDX_S,            \
+                                            PROF_TYPE_TIMING_LOG),      \
+                           PROF_MAKE_TIMING_TAG((cp_b), (topic_b),      \
+                                            PROF_CALI_IDX_S,            \
+                                            PROF_TYPE_TIMING_LOG))
+
+#define PROF_DATA_DIFF_MAX(cp_a, topic_a, cp_b, topic_b)                \
+        prof_data_diff_max(PROF_MAKE_TIMING_TAG((cp_a), (topic_a),      \
+                                            PROF_CALI_IDX_S,            \
+                                            PROF_TYPE_TIMING_LOG),      \
+                           PROF_MAKE_TIMING_TAG((cp_b), (topic_b),      \
+                                            PROF_CALI_IDX_S,            \
+                                            PROF_TYPE_TIMING_LOG))
+
+#define PROF_DATA_DIFF_AVG(cp_a, topic_a, cp_b, topic_b)                \
+        prof_data_diff_avg(PROF_MAKE_TIMING_TAG((cp_a), (topic_a),      \
+                                            PROF_CALI_IDX_S,            \
+                                            PROF_TYPE_TIMING_LOG),      \
+                           PROF_MAKE_TIMING_TAG((cp_b), (topic_b),      \
+                                            PROF_CALI_IDX_S,            \
+                                            PROF_TYPE_TIMING_LOG))
+
 #ifdef __cplusplus
 }
 #endif