sde: Move utility functions to common header file

Move utility functions to common header file accesible from
SDE and HWC modules.

Change-Id: Id5183bb8f41a223273c973960f653f155e3c4c05
diff --git a/displayengine/include/utils/constants.h b/displayengine/include/utils/constants.h
index 04a5f77..6f98b07 100644
--- a/displayengine/include/utils/constants.h
+++ b/displayengine/include/utils/constants.h
@@ -53,6 +53,24 @@
 #define MAX(a, b) (((a) > (b)) ? (a) : (b))
 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
 
+template <class T>
+inline void Swap(T &a, T &b) {
+  T c(a);
+  a = b;
+  b = c;
+}
+
+// factor value should be in powers of 2(eg: 1, 2, 4, 8)
+template <class T1, class T2>
+inline T1 FloorToMultipleOf(const T1 &value, const T2 &factor) {
+  return (T1)(value & (~(factor - 1)));
+}
+
+template <class T1, class T2>
+inline T1 CeilToMultipleOf(const T1 &value, const T2 &factor) {
+  return (T1)((value + (factor - 1)) & (~(factor - 1)));
+}
+
 namespace sde {
 
   const int kThreadPriorityUrgent = -9;
diff --git a/displayengine/include/utils/rect.h b/displayengine/include/utils/rect.h
index 39494c2..f009cfd 100644
--- a/displayengine/include/utils/rect.h
+++ b/displayengine/include/utils/rect.h
@@ -33,11 +33,14 @@
 #include <stdint.h>
 #include <core/sde_types.h>
 #include <core/layer_stack.h>
+#include <utils/debug.h>
 
 namespace sde {
 
   bool IsValidRect(const LayerRect &rect);
   LayerRect GetIntersection(const LayerRect &rect1, const LayerRect &rect2);
+  void LogRect(DebugTag debug_tag, const char *prefix, const LayerRect &roi);
+  void NormalizeRect(const uint32_t &factor, LayerRect *rect);
 
 }  // namespace sde
 
diff --git a/displayengine/libs/core/res_config.cpp b/displayengine/libs/core/res_config.cpp
index cf2a5c7..7a21817 100644
--- a/displayengine/libs/core/res_config.cpp
+++ b/displayengine/libs/core/res_config.cpp
@@ -25,6 +25,7 @@
 #include <math.h>
 #include <utils/constants.h>
 #include <utils/debug.h>
+#include <utils/rect.h>
 
 #include "res_manager.h"
 
@@ -179,8 +180,8 @@
     float rot_scale_x = 1.0f, rot_scale_y = 1.0f;
     if (!IsValidDimension(layer.src_rect, layer.dst_rect)) {
       DLOGV_IF(kTagResources, "Input is invalid");
-      LogRectVerbose("input layer src_rect", layer.src_rect);
-      LogRectVerbose("input layer dst_rect", layer.dst_rect);
+      LogRect(kTagResources, "input layer src_rect", layer.src_rect);
+      LogRect(kTagResources, "input layer dst_rect", layer.dst_rect);
       return kErrorNotSupported;
     }
 
@@ -239,21 +240,21 @@
 
     DLOGV_IF(kTagResources, "layer = %d, left pipe_id = %x",
              i, layer_config->left_pipe.pipe_id);
-    LogRectVerbose("input layer src_rect", layer.src_rect);
-    LogRectVerbose("input layer dst_rect", layer.dst_rect);
+    LogRect(kTagResources, "input layer src_rect", layer.src_rect);
+    LogRect(kTagResources, "input layer dst_rect", layer.dst_rect);
     for (uint32_t k = 0; k < layer_config->num_rotate; k++) {
       DLOGV_IF(kTagResources, "rotate num = %d, scale_x = %.2f, scale_y = %.2f",
                k, rot_scale_x, rot_scale_y);
-      LogRectVerbose("rotate src", layer_config->rotates[k].src_roi);
-      LogRectVerbose("rotate dst", layer_config->rotates[k].dst_roi);
+      LogRect(kTagResources, "rotate src", layer_config->rotates[k].src_roi);
+      LogRect(kTagResources, "rotate dst", layer_config->rotates[k].dst_roi);
     }
-    LogRectVerbose("cropped src_rect", src_rect);
-    LogRectVerbose("cropped dst_rect", dst_rect);
-    LogRectVerbose("left pipe src", layer_config->left_pipe.src_roi);
-    LogRectVerbose("left pipe dst", layer_config->left_pipe.dst_roi);
+    LogRect(kTagResources, "cropped src_rect", src_rect);
+    LogRect(kTagResources, "cropped dst_rect", dst_rect);
+    LogRect(kTagResources, "left pipe src", layer_config->left_pipe.src_roi);
+    LogRect(kTagResources, "left pipe dst", layer_config->left_pipe.dst_roi);
     if (hw_layers->config[i].right_pipe.pipe_id) {
-      LogRectVerbose("right pipe src", layer_config->right_pipe.src_roi);
-      LogRectVerbose("right pipe dst", layer_config->right_pipe.dst_roi);
+      LogRect(kTagResources, "right pipe src", layer_config->right_pipe.src_roi);
+      LogRect(kTagResources, "right pipe dst", layer_config->right_pipe.dst_roi);
     }
   }
 
@@ -529,21 +530,4 @@
   }
 }
 
-void ResManager::LogRectVerbose(const char *prefix, const LayerRect &roi) {
-  DLOGV_IF(kTagResources, "%s: left = %.0f, top = %.0f, right = %.0f, bottom = %.0f",
-           prefix, roi.left, roi.top, roi.right, roi.bottom);
-}
-
-void ResManager::NormalizeRect(const uint32_t &factor, LayerRect *rect) {
-  uint32_t left = UINT32(ceilf(rect->left));
-  uint32_t top = UINT32(ceilf(rect->top));
-  uint32_t right = UINT32(floorf(rect->right));
-  uint32_t bottom = UINT32(floorf(rect->bottom));
-
-  rect->left = FLOAT(CeilToMultipleOf(left, factor));
-  rect->top = FLOAT(CeilToMultipleOf(top, factor));
-  rect->right = FLOAT(FloorToMultipleOf(right, factor));
-  rect->bottom = FLOAT(FloorToMultipleOf(bottom, factor));
-}
-
 }  // namespace sde
diff --git a/displayengine/libs/core/res_manager.h b/displayengine/libs/core/res_manager.h
index 926b2b7..ab9255c 100644
--- a/displayengine/libs/core/res_manager.h
+++ b/displayengine/libs/core/res_manager.h
@@ -187,7 +187,6 @@
   bool IsYuvFormat(LayerBufferFormat format) { return (format >= kFormatYCbCr420Planar); }
   bool IsRotationNeeded(float rotation)
          { return (UINT32(rotation) == 90 || UINT32(rotation) == 270); }
-  void LogRectVerbose(const char *prefix, const LayerRect &roi);
   void RotationConfig(const LayerTransform &transform, const float &scale_x,
                       const float &scale_y, LayerRect *src_rect,
                       struct HWLayerConfig *layer_config, uint32_t *rotate_count);
@@ -195,29 +194,10 @@
                               const uint32_t roate_cnt);
   void AssignRotator(HWRotateInfo *rotate, uint32_t *rotate_cnt);
   void ClearRotator(DisplayResourceContext *display_resource_ctx);
-  void NormalizeRect(const uint32_t &factor, LayerRect *rect);
   DisplayError AllocRotatorBuffer(Handle display_ctx, HWLayers *hw_layers);
   void SetRotatorOutputFormat(const LayerBufferFormat &input_format, bool bwc, bool rot90,
                               LayerBufferFormat *output_format);
 
-  template <class T>
-  inline void Swap(T &a, T &b) {
-    T c(a);
-    a = b;
-    b = c;
-  }
-
-  // factor value should be in powers of 2(eg: 1, 2, 4, 8)
-  template <class T1, class T2>
-  inline T1 FloorToMultipleOf(const T1 &value, const T2 &factor) {
-    return (T1)(value & (~(factor - 1)));
-  }
-
-  template <class T1, class T2>
-  inline T1 CeilToMultipleOf(const T1 &value, const T2 &factor) {
-    return (T1)((value + (factor - 1)) & (~(factor - 1)));
-  }
-
   Locker locker_;
   HWResourceInfo hw_res_info_;
   HWBlockContext hw_block_ctx_[kHWBlockMax];
diff --git a/displayengine/libs/utils/rect.cpp b/displayengine/libs/utils/rect.cpp
index 11131c3..2725750 100644
--- a/displayengine/libs/utils/rect.cpp
+++ b/displayengine/libs/utils/rect.cpp
@@ -27,7 +27,11 @@
 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
+#include <math.h>
 #include <utils/rect.h>
+#include <utils/constants.h>
+
+#define __CLASS__ "RectUtils"
 
 namespace sde {
 
@@ -55,5 +59,22 @@
   return res;
 }
 
+void LogRect(DebugTag debug_tag, const char *prefix, const LayerRect &roi) {
+  DLOGV_IF(debug_tag, "%s: left = %.0f, top = %.0f, right = %.0f, bottom = %.0f",
+           prefix, roi.left, roi.top, roi.right, roi.bottom);
+}
+
+void NormalizeRect(const uint32_t &factor, LayerRect *rect) {
+  uint32_t left = UINT32(ceilf(rect->left));
+  uint32_t top = UINT32(ceilf(rect->top));
+  uint32_t right = UINT32(floorf(rect->right));
+  uint32_t bottom = UINT32(floorf(rect->bottom));
+
+  rect->left = FLOAT(CeilToMultipleOf(left, factor));
+  rect->top = FLOAT(CeilToMultipleOf(top, factor));
+  rect->right = FLOAT(FloorToMultipleOf(right, factor));
+  rect->bottom = FLOAT(FloorToMultipleOf(bottom, factor));
+}
+
 }  // namespace sde