COMPMID-518 - Bare metal support

Change-Id: Ida6d3dc46476fd9a67b5860e5e5bf8b848a8ac23
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/85981
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Reviewed-by: Moritz Pflanzer <moritz.pflanzer@arm.com>
diff --git a/arm_compute/core/CPP/kernels/CPPCornerCandidatesKernel.h b/arm_compute/core/CPP/kernels/CPPCornerCandidatesKernel.h
index 0866d4e..28edb48 100644
--- a/arm_compute/core/CPP/kernels/CPPCornerCandidatesKernel.h
+++ b/arm_compute/core/CPP/kernels/CPPCornerCandidatesKernel.h
@@ -26,9 +26,9 @@
 
 #include "arm_compute/core/IArray.h"
 #include "arm_compute/core/NEON/INEKernel.h"
+#include "support/Mutex.h"
 
 #include <cstdint>
-#include <mutex>
 
 namespace arm_compute
 {
@@ -65,10 +65,10 @@
     void run(const Window &window) override;
 
 private:
-    int32_t          *_num_corner_candidates;   /**< Number of corner candidates */
-    std::mutex        _corner_candidates_mutex; /**< Mutex to preventing race conditions */
-    const IImage     *_input;                   /**< Source image - Harris score */
-    InternalKeypoint *_output;                  /**< Array of NEInternalKeypoint */
+    int32_t           *_num_corner_candidates;   /**< Number of corner candidates */
+    arm_compute::Mutex _corner_candidates_mutex; /**< Mutex to preventing race conditions */
+    const IImage      *_input;                   /**< Source image - Harris score */
+    InternalKeypoint *_output;                   /**< Array of NEInternalKeypoint */
 };
 } //namespace arm_compute
 #endif /* __ARM_COMPUTE_CPPCORNERCANDIDATESKERNEL_H__ */
diff --git a/arm_compute/core/NEON/kernels/NEHOGDetectorKernel.h b/arm_compute/core/NEON/kernels/NEHOGDetectorKernel.h
index e56d1e5..b6b9d34 100644
--- a/arm_compute/core/NEON/kernels/NEHOGDetectorKernel.h
+++ b/arm_compute/core/NEON/kernels/NEHOGDetectorKernel.h
@@ -27,8 +27,7 @@
 #include "arm_compute/core/IArray.h"
 #include "arm_compute/core/IHOG.h"
 #include "arm_compute/core/NEON/INEKernel.h"
-
-#include <mutex>
+#include "support/Mutex.h"
 
 namespace arm_compute
 {
@@ -80,7 +79,7 @@
     size_t                 _detection_window_width;
     size_t                 _detection_window_height;
     size_t                 _max_num_detection_windows;
-    std::mutex             _mutex;
+    arm_compute::Mutex     _mutex;
 };
 }
 
diff --git a/arm_compute/core/NEON/kernels/NEHistogramKernel.h b/arm_compute/core/NEON/kernels/NEHistogramKernel.h
index c4dbbea..2c0f34b 100644
--- a/arm_compute/core/NEON/kernels/NEHistogramKernel.h
+++ b/arm_compute/core/NEON/kernels/NEHistogramKernel.h
@@ -25,10 +25,10 @@
 #define __ARM_COMPUTE_NEHISTOGRAMKERNEL_H__
 
 #include "arm_compute/core/NEON/INEKernel.h"
+#include "support/Mutex.h"
 
 #include <cstddef>
 #include <cstdint>
-#include <mutex>
 
 namespace arm_compute
 {
@@ -122,7 +122,7 @@
     IDistribution1D              *_output;
     uint32_t                     *_local_hist;
     uint32_t                     *_window_lut;
-    std::mutex                    _hist_mtx;
+    arm_compute::Mutex            _hist_mtx;
     static constexpr unsigned int _max_range_size{ 256 }; ///< 256 possible pixel values as we handle only U8 images
 };
 }
diff --git a/arm_compute/core/NEON/kernels/NEMeanStdDevKernel.h b/arm_compute/core/NEON/kernels/NEMeanStdDevKernel.h
index 9c72b20..ce2c5eb 100644
--- a/arm_compute/core/NEON/kernels/NEMeanStdDevKernel.h
+++ b/arm_compute/core/NEON/kernels/NEMeanStdDevKernel.h
@@ -25,9 +25,9 @@
 #define __ARM_COMPUTE_NEMEANSTDDEVKERNEL_H__
 
 #include "arm_compute/core/NEON/INEKernel.h"
+#include "support/Mutex.h"
 
 #include <cstdint>
-#include <mutex>
 
 namespace arm_compute
 {
@@ -67,13 +67,13 @@
     BorderSize border_size() const override;
 
 private:
-    const IImage *_input;
-    float        *_mean;
-    float        *_stddev;
-    uint64_t     *_global_sum;
-    uint64_t     *_global_sum_squared;
-    std::mutex    _mtx;
-    BorderSize    _border_size;
+    const IImage      *_input;
+    float             *_mean;
+    float             *_stddev;
+    uint64_t          *_global_sum;
+    uint64_t          *_global_sum_squared;
+    arm_compute::Mutex _mtx;
+    BorderSize         _border_size;
 };
 }
 #endif /* __ARM_COMPUTE_NEMEANSTDDEVKERNEL_H__ */
diff --git a/arm_compute/core/NEON/kernels/NEMinMaxLocationKernel.h b/arm_compute/core/NEON/kernels/NEMinMaxLocationKernel.h
index 7b2748d..ddaa017 100644
--- a/arm_compute/core/NEON/kernels/NEMinMaxLocationKernel.h
+++ b/arm_compute/core/NEON/kernels/NEMinMaxLocationKernel.h
@@ -26,9 +26,9 @@
 
 #include "arm_compute/core/IArray.h"
 #include "arm_compute/core/NEON/INEKernel.h"
+#include "support/Mutex.h"
 
 #include <cstdint>
-#include <mutex>
 
 namespace arm_compute
 {
@@ -92,10 +92,10 @@
     template <typename T>
     void update_min_max(T min, T max);
 
-    const IImage *_input; /**< Input image. */
-    void         *_min;   /**< Minimum value. */
-    void         *_max;   /**< Maximum value. */
-    std::mutex    _mtx;   /**< Mutex used for result reduction. */
+    const IImage      *_input; /**< Input image. */
+    void              *_min;   /**< Minimum value. */
+    void              *_max;   /**< Maximum value. */
+    arm_compute::Mutex _mtx;   /**< Mutex used for result reduction. */
 };
 
 /** Interface for the kernel to find min max locations of an image. */