gralloc: Add support for IMapper/IAllocator 4.0

* Add QtiMapper and QtiAllocator 4.0
* Implement IMapper 4.0 APIs: get, set,
  getFromBufferDescriptorInfo, flushLockedBuffer,
  rereadLockedBuffer, listSupportedMetadataTypes,
  dumpBuffer, dumpBuffers, and getReservedRegion

CRs-Fixed: 2633272
Change-Id: Ica42e485e426b366ffb41f30f1ea2cf395901356
Signed-off-by: Baldev Sahu <bsahu@codeaurora.org>
diff --git a/gralloc/gr_buf_mgr.h b/gralloc/gr_buf_mgr.h
index 1ff5455..e2daa12 100644
--- a/gralloc/gr_buf_mgr.h
+++ b/gralloc/gr_buf_mgr.h
@@ -21,20 +21,20 @@
 #define __GR_BUF_MGR_H__
 
 #include <pthread.h>
+
 #include <mutex>
 #include <unordered_map>
 #include <unordered_set>
 #include <utility>
+#include <vector>
 
 #include "gr_allocator.h"
-#include "gr_utils.h"
 #include "gr_buf_descriptor.h"
+#include "gr_utils.h"
 #include "gralloc_priv.h"
 
 namespace gralloc {
-
-using android::hardware::graphics::mapper::V3_0::Error;
-
+using gralloc::Error;
 class BufferManager {
  public:
   ~BufferManager();
@@ -49,6 +49,13 @@
   Error ValidateBufferSize(private_handle_t const *hnd, BufferInfo info);
   Error IsBufferImported(const private_handle_t *hnd);
   static BufferManager *GetInstance();
+  Error GetMetadata(private_handle_t *handle, int64_t metadatatype_value, hidl_vec<uint8_t> *out);
+  Error SetMetadata(private_handle_t *handle, int64_t metadatatype_value, hidl_vec<uint8_t> in);
+  Error GetReservedRegion(private_handle_t *handle, void **reserved_region,
+                          uint64_t *reserved_region_size);
+  Error FlushBuffer(const private_handle_t *handle);
+  Error RereadBuffer(const private_handle_t *handle);
+  Error GetAllHandles(std::vector<const private_handle_t *> *out_handle_list);
 
  private:
   BufferManager();